ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) "ऑब्जेक्ट्स" की अवधारणा पर आधारित एक प्रोग्रामिंग प्रतिमान है, जिसमें फ़ील्ड के रूप में डेटा हो सकता है, जिसे अक्सर विशेषताओं के रूप में जाना जाता है; और कोड, प्रक्रियाओं के रूप में, जिसे अक्सर विधियों के रूप में जाना जाता है। उदाहरण के लिए, एक व्यक्ति एक वस्तु है जिसमें कुछ गुण होते हैं जैसे कि ऊंचाई, लिंग, आयु, आदि। इसके कुछ तरीके भी हैं जैसे कि चलना, बात करना आदि।
वस्तु
यह वस्तु-उन्मुख प्रोग्रामिंग की मूल इकाई है। यानी डेटा पर काम करने वाले डेटा और फ़ंक्शन दोनों को एक इकाई के रूप में बंडल किया जाता है जिसे ऑब्जेक्ट कहा जाता है।
कक्षा
जब आप किसी वर्ग को परिभाषित करते हैं, तो आप किसी वस्तु के लिए एक खाका परिभाषित करते हैं। यह वास्तव में किसी भी डेटा को परिभाषित नहीं करता है, लेकिन यह परिभाषित करता है कि वर्ग के नाम का क्या अर्थ है, अर्थात, कक्षा की किसी वस्तु में क्या होगा और ऐसी वस्तु पर कौन से संचालन किए जा सकते हैं।
OOP की चार बुनियादी अवधारणाएं हैं जिन पर यह पूरी तरह से आधारित है। आइए उन पर अलग-अलग नज़र डालें -
- अमूर्तन - इसका तात्पर्य बाहरी दुनिया को केवल आवश्यक जानकारी प्रदान करना और उनकी पृष्ठभूमि के विवरण को छिपाना है। उदाहरण के लिए, एक वेब सर्वर छुपाता है कि वह प्राप्त होने वाले डेटा को कैसे संसाधित करता है, अंतिम उपयोगकर्ता केवल एंडपॉइंट्स को हिट करता है और डेटा वापस प्राप्त करता है।
- एनकैप्सुलेशन − एनकैप्सुलेशन डेटा सदस्यों (चर, गुण) और सदस्य कार्यों (विधियों) को एक इकाई में बांधने की एक प्रक्रिया है। यह कुछ संपत्तियों या घटकों तक पहुंच को प्रतिबंधित करने का एक तरीका भी है। एनकैप्सुलेशन के लिए सबसे अच्छा उदाहरण एक वर्ग है।
- वंशानुक्रम - मौजूदा वर्ग से एक नया वर्ग बनाने की क्षमता को वंशानुक्रम कहा जाता है। इनहेरिटेंस का उपयोग करके, हम पैरेंट क्लास से चाइल्ड क्लास बना सकते हैं जैसे कि यह पैरेंट क्लास के गुणों और विधियों को इनहेरिट करता है और इसके अपने अतिरिक्त गुण और तरीके हो सकते हैं। उदाहरण के लिए, यदि हमारे पास एक क्लास व्हीकल है जिसमें कलर, प्राइस आदि जैसे गुण हैं, तो हम इसमें से 2 क्लासेस जैसे बाइक और कार बना सकते हैं, जिसमें वे 2 प्रॉपर्टीज और अतिरिक्त प्रॉपर्टीज हैं जो उनके लिए विशिष्ट हैं जैसे कार में नंबरऑफविंडो है जबकि ए बाइक नहीं कर सकता। विधियों पर भी यही लागू होता है।
- बहुरूपता - बहुरूपता शब्द का अर्थ है अनेक रूपों का होना। आमतौर पर, बहुरूपता तब होती है जब वर्गों का एक पदानुक्रम होता है और वे वंशानुक्रम से संबंधित होते हैं। C++ बहुरूपता का अर्थ है कि किसी सदस्य फ़ंक्शन को कॉल करने से फ़ंक्शन को आमंत्रित करने वाले ऑब्जेक्ट के प्रकार के आधार पर एक भिन्न फ़ंक्शन निष्पादित किया जाएगा।