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