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