ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग एक प्रकार की प्रोग्रामिंग है जो वस्तुओं का उपयोग करती है और इसके कामकाज को वर्गीकृत करती है। ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग इनहेरिटेंस, पॉलीमॉर्फिज्म, डेटा छुपाने आदि जैसी वास्तविक दुनिया की संस्थाओं पर आधारित है। इसका उद्देश्य इन डेटा सेट पर डेटा और फ़ंक्शन कार्य को एक साथ बांधना है ताकि उनके उपयोग को प्रतिबंधित किया जा सके।
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की कुछ बुनियादी अवधारणाएं हैं -
- कक्षा
- वस्तुएं
- एनकैप्सुलेशन
- बहुरूपता
- विरासत
- अमूर्त
कक्षा - एक वर्ग एक डेटा-प्रकार है जिसके अपने सदस्य होते हैं यानी डेटा सदस्य और सदस्य कार्य। यह ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज में किसी ऑब्जेक्ट का ब्लूप्रिंट है। यह c++ में ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का बेसिक बिल्डिंग ब्लॉक है। कक्षा का एक उदाहरण बनाकर एक वर्ग के सदस्यों को प्रोग्रामिंग भाषा में एक्सेस किया जाता है।
वर्ग के कुछ महत्वपूर्ण गुण हैं -
-
कक्षा एक उपयोगकर्ता-परिभाषित डेटा-प्रकार है।
-
एक वर्ग में डेटा सदस्य और सदस्य फ़ंक्शन जैसे सदस्य होते हैं।
-
डेटा सदस्य वर्ग के चर हैं।
-
सदस्य कार्य करता है वे तरीके हैं जिनका उपयोग डेटा सदस्यों में हेरफेर करने के लिए किया जाता है।
-
डेटा सदस्य वर्ग के गुणों को परिभाषित करते हैं जबकि सदस्य कार्य वर्ग के व्यवहार को परिभाषित करते हैं।
एक वर्ग में कई ऑब्जेक्ट हो सकते हैं जिनमें ऐसे गुण और व्यवहार होते हैं जो उन सभी के लिए समान होते हैं।
सिंटैक्स
class class_name { data_type data_name; return_type method_name(parameters); }
ऑब्जेक्ट - एक वस्तु एक वर्ग का एक उदाहरण है। यह विशेषताओं और व्यवहार वाली एक इकाई है जिसका उपयोग ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में किया जाता है। एक वस्तु वह इकाई है जिसे स्मृति आवंटित करने के लिए बनाया गया है। एक वर्ग जब परिभाषित किया जाता है तो उसके पास स्मृति खंड नहीं होता है जिसे जैसे ही ऑब्जेक्ट बनाया जाएगा आवंटित किया जाएगा।
सिंटैक्स
class_name object_name;
उदाहरण
#include<iostream> using namespace std; class calculator { int number1; int number2; char symbol; public : void add() { cout<<"The sum is "<<number1 + number2 ; } void subtract() { cout<<"The subtraction is "<<number1 - number2 ; } void multiply() { cout<<"The multiplication is "<<number1 * number2 ; } void divide() { cout<<"The division is "<<number1 / number2 ; } calculator (int a , int b , char sym) { number1 = a; number2 = b; symbol = sym; switch(symbol){ case '+' : add(); break; case '-' : add(); break; case '*' : add(); break; case '/' : add(); break; default : cout<<"Wrong operator"; } } }; int main() { calculator c1(12 , 34 , '+'); }
आउटपुट
The sum is 46
एनकैप्सुलेशन ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में, एनकैप्सुलेशन एक इकाई में डेटा और सूचना को एक साथ लपेटने की अवधारणा है। इनकैप्सुलेशन की एक औपचारिक परिभाषा होगी:इनकैप्सुलेशन डेटा और संबंधित फ़ंक्शन को इकट्ठा करने के लिए बाध्यकारी है जो डेटा में हेरफेर कर सकता है।
आइए इस विषय को एक आसान वास्तविक जीवन के उदाहरण से समझते हैं,
हमारे कॉलेजों में, हमारे पास कंप्यूटर विज्ञान, सूचना तकनीक जैसे प्रत्येक पाठ्यक्रम के लिए विभाग हैं। , इलेक्ट्रॉनिक्स, आदि। इन विभागों में से प्रत्येक के अपने स्वयं के छात्र और विषय हैं जिन पर नज़र रखी जाती है और पढ़ाया जा रहा है। आइए प्रत्येक विभाग को एक वर्ग के रूप में सोचें जो उस विभाग के छात्रों और पढ़ाए जाने वाले विषयों के बारे में डेटा को समाहित करता है। इसके अलावा एक विभाग के कुछ निश्चित नियम और दिशानिर्देश हैं जिनका छात्रों को पालन करना होता है कि पाठ्यक्रम जैसे समय, सीखने के दौरान उपयोग किए जाने वाले तरीके आदि। यह वास्तविक जीवन में इनकैप्सुलेशन है, डेटा हैं और डेटा में हेरफेर करने के तरीके हैं।
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में इनकैप्सुलेशन की अवधारणा के कारण एक और बहुत महत्वपूर्ण अवधारणा संभव है, यह डेटा एब्स्ट्रैक्शन या डेटा हिडिंग है। यह संभव है क्योंकि इनकैप्सुलेटिंग डेटा को केवल उसी जानकारी को दिखाता है जिसे प्रदर्शित करने की आवश्यकता होती है।
बहुरूपता नाम परिभाषित करता है बहुरूपता कई रूपों है। जिसका अर्थ है बहुरूपता कई रूपों का उपयोग करके कुछ काम करने के लिए वस्तु उन्मुख प्रोग्रामिंग की क्षमता है। विधि का व्यवहार उस प्रकार या स्थिति पर निर्भर करता है जिसमें विधि कहा जाता है।
आइए एक वास्तविक जीवन का उदाहरण लें, स्थिति के आधार पर एक व्यक्ति के एक से अधिक व्यवहार हो सकते हैं। एक महिला की तरह एक माँ, प्रबंधक और एक बेटी और यह उसके व्यवहार को परिभाषित करता है। यहीं से बहुरूपता की अवधारणा आई।
सी ++ प्रोग्रामिंग भाषा में, बहुरूपता दो तरीकों से प्राप्त की जाती है। वे ऑपरेटर ओवरलोडिंग और फंक्शन ओवरलोडिंग हैं।
ऑपरेटर ओवरलोडिंग ऑपरेटर ओवरलोडिंग में और ऑपरेटर के उपयोग के विभिन्न उदाहरणों में कई व्यवहार हो सकते हैं।
फंक्शन ओवरलोडिंग एक ही नाम के फंक्शन जो किसी शर्त के आधार पर कई तरह के काम कर सकते हैं।
विरासत यह एक वर्ग की अन्य वर्ग के गुणों या विशेषताओं को प्राप्त करने या प्राप्त करने की क्षमता है। यह बहुत महत्वपूर्ण और वस्तु उन्मुख कार्यक्रम है क्योंकि यह पुन:प्रयोज्यता की अनुमति देता है यानी विरासत का उपयोग करके किसी अन्य वर्ग में परिभाषित विधि का उपयोग करना। वह वर्ग जो अन्य वर्ग से गुण प्राप्त करता है उसे बाल वर्ग या उपवर्ग के रूप में जाना जाता है और जिस वर्ग से गुण विरासत में मिले हैं वह आधार वर्ग या मूल वर्ग है।
सी प्लस प्लस प्रोग्रामिंग भाषा निम्नलिखित प्रकार की विरासत का समर्थन करती है
- एकल विरासत
- एकाधिक विरासत
- बहु स्तरीय विरासत
- पदानुक्रमित विरासत
- संकर वंशानुक्रम
अमूर्त डेटा एब्स्ट्रैक्शन या डेटा छिपाना डेटा छिपाने और अंतिम उपयोगकर्ता को केवल प्रासंगिक डेटा दिखाने की अवधारणा है। यह एक महत्वपूर्ण हिस्सा वस्तु उन्मुख प्रोग्रामिंग भी है।
आइए अवधारणा को बेहतर ढंग से समझने के लिए वास्तविक जीवन का उदाहरण लें, जब हम बाइक की सवारी करते हैं तो हम केवल यह जानते हैं कि ब्रेक दबाने से बाइक रुक जाएगी और थ्रॉटल को घुमाने में तेजी आएगी लेकिन आप नहीं जानते कि यह कैसे काम करता है और यह भी नहीं लगता कि हमें पता होना चाहिए यही कारण है कि यह अवधारणा डेटा एब्स्ट्रैक्शन के समान ही किया जाता है।
सी प्लस प्लस प्रोग्रामिंग भाषा में दो तरह से लिखें जिसके उपयोग से हम डेटा एब्स्ट्रैक्शन को पूरा कर सकते हैं -
- कक्षा का उपयोग करना
- हेडर फ़ाइल का उपयोग करना