ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के चार स्तंभ:
ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) एक सॉफ्टवेयर डिजाइन प्रतिमान है जहां प्रोग्राम अनुक्रमिक प्रक्रियाओं और तर्क के बजाय डेटा (ऑब्जेक्ट्स) और असतत कार्यों (विधियों) के आसपास व्यवस्थित होते हैं। प्रक्रियात्मक प्रोग्रामिंग (उदाहरण के लिए, सी या पास्कल) के विपरीत, ओओपी वास्तविक दुनिया की इकाइयों को राज्य और व्यवहार वाली कम्प्यूटेशनल इकाइयों में मॉडल करता है।
| OOP सिद्धांत | परिभाषा एवं संकल्पनात्मक तंत्र | रियल-वर्ल्ड सादृश्य और जावा सिंटैक्स |
|---|---|---|
| एनकैप्सुलेशन | डेटा (फ़ील्ड/वेरिएबल) और उस डेटा पर काम करने वाली विधियों को एक इकाई (क्लास) में लपेटना, एक्सेस स्पेसिफायर (डेटा छिपाना) के माध्यम से सीधे बाहरी पहुंच को प्रतिबंधित करना। | एक मेडिकल कैप्सूल जिसमें औषधीय तत्व होते हैं। जावा में, इंस्टेंस वेरिएबल private घोषित करना और public गेटर और सेटर विधियां प्रदान करना। |
| अमूर्त | पृष्ठभूमि विवरण या आंतरिक कार्यान्वयन जटिलताओं को शामिल किए बिना आवश्यक सुविधाओं का प्रतिनिधित्व करने का कार्य। | ईंधन इंजेक्शन या अंतर गियर अनुपात को समझने की आवश्यकता के बिना एक्सीलेटर और स्टीयरिंग दबाकर ऑटोमोबाइल चलाना। जावा में, इंटरफेस और एब्सट्रैक्ट क्लासेस के माध्यम से हासिल किया गया। |
| विरासत | वह तंत्र जिसके द्वारा एक वर्ग (उपवर्ग/बच्चा) मौजूदा वर्ग (सुपरक्लास/पैरेंट) की स्थिति और व्यवहार प्राप्त करता है, कोड पुन: प्रयोज्यता को बढ़ावा देता है। | एक बच्चा जिसे जैविक माता-पिता से शारीरिक गुण विरासत में मिलते हैं। जावा में extends कीवर्ड का उपयोग करके कार्यान्वित किया गया (उदाहरण के लिए, क्लास कार एक्सटेंड्स)। |
| बहुरूपता | किसी संदेश, फ़ंक्शन या विधि को एक से अधिक रूपों में प्रदर्शित करने की क्षमता (ग्रीक से ली गई: poly = अनेक, morf = रूप). | एक व्यक्ति घर पर, कक्षा में और अस्पताल में अलग-अलग व्यवहार कर रहा है। जावा में, संकलन-समय पर मेथड ओवरलोडिंग के माध्यम से और रनटाइम पर मेथड ओवरराइडिंग. | के माध्यम से हासिल किया गया।
प्रक्रियात्मक बनाम वस्तु-उन्मुख प्रतिमान:
- प्रक्रियात्मक: टॉप-डाउन दृष्टिकोण, फ़ंक्शंस/एल्गोरिदम पर जोर, डेटा सिस्टम के चारों ओर फ़ंक्शन से फ़ंक्शन तक खुले तौर पर घूमता है, कम सुरक्षा और प्रोग्राम स्केल के रूप में बनाए रखना मुश्किल है।
- ऑब्जेक्ट-ओरिएंटेड: बॉटम-अप दृष्टिकोण, डेटा सुरक्षा पर जोर, डेटा तक पहुंच को क्लास विधियों, अत्यधिक मॉड्यूलर, पुन: प्रयोज्य और स्केलेबल के माध्यम से सख्ती से विनियमित किया जाता है।