Chapter 8 ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग
बहुविकल्पीय प्रश्न (1 अंक)
प्रश्न 1
निम्न में से कौन-सी OOP पर आधारित भाषा है?
(a) FORTRAN
(b) C++
(c) PASCAL
(d) BASIC
उत्तर:
(b) C++
प्रश्न 2
OOPa किस प्रक्रिया पर कार्य करती है?
(a) Top – to – bottom
(b) Bottom – to – top
(c) Left – to – right
(d) Right – to – left
उत्तर:
(b) Bottom – to – top
प्रश्न 3
किसके द्वारा हम दूसरी क्लास के डाटा को एक्सेस कर सकते हैं?
(a) ऑब्जेक्ट
(b) पॉलीमॉरफिज्म
(c) क्लास
(d) डाटा एब्सट्रैक्शन
उत्तर:
(d) ऑब्जेक्ट
प्रश्न 4
क्लास किसका संयोजन रूप है?
(a) केवल डाटा
(b) केवल फंक्शन
(c) डाटा एवं फंक्शन
(d) इनमें से कोई नहीं
उत्तर:
(c) डाटा एवं फंक्शन
प्रश्न 5
एक क्लास के गुणों को दूसरी क्लास में प्रयोग करना क्या कहलाता है?
(a) डाटा एब्सट्रैक्शन
(b) डाटा हाइडिंग
(c) इनहेरिटेन्स
(d) एनकैप्सूलेशन
उत्तर:
(c) इनहेरिटेन्स
अतिलघु उत्तरीय प्रश्न (1 अंक)
प्रश्न 1
OOP को समझाइए।
उत्तर:
यह ऑब्जेक्ट पर आधारित है, जिसकी सहायता से हम किसी क्लास के डाटा को क्लास के बाहर भी एक्सेस कर सकते हैं।
प्रश्न 2
ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग भाषा के कोई दो उदाहरण लिखिए।
उत्तर:
C++ तथा JAVA
प्रश्न 3
ऑब्जेक्ट की एक वाक्य में व्याख्या कीजिए। [2017, 16]
उत्तर:
किसी भी क्लास के डाटा तथा फंक्शन्स को एक्सेस करने के लिए ऑब्जेक्ट का प्रयोग किया जाता है।
प्रश्न 4
क्लास की व्याख्या केवल एक वाक्य में कीजिए। [2018]
उत्तर:
क्लास, डाटा तथा फंक्शन्स का संयोजन रूप है। क्लास एक यूजर डिफाइन डेटा टाइप है।
प्रश्न 5
इनहेरिटेन्स क्या है?
उत्तर:
वह प्रक्रिया, जिसके द्वारा एक क्लास के ऑब्जेक्ट, दूसरी क्लास के ऑब्जेक्ट को प्राप्त कर सकते हैं, इनहेरिटेन्स कहलाता है।
प्रश्न 6
ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग भाषा के कोई दो उपयोग लिखिए।
उत्तर:
ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग भाषा के निम्न दो उपयोग हैं।
- एक्सपर्ट सिस्टम में
- रियल टाइम सिस्टम में
लघु उत्तरीय प्रश्न I (2 अंक)
प्रश्न 1
उदाहरण सहित ऑब्जेक्ट का अर्थ समझाइए। [2009,07]
उत्तर:
कोई ऑब्जेक्ट, ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग का मुख्य आधार होता है। किसी भी क्लास में डाटा व फंक्शन को घोषित करने के लिए ऑब्जेक्ट को ध्यान में रखा जाता है। वास्तव में, ऑब्जेक्ट क्लास के वैरिएबल होते हैं। ऑब्जेक्ट के बिना क्लास में किसी भी डाटा का कोई मान नहीं होता। ऑब्जेक्ट मेमोरी में स्थान घेरते हैं, जिनका मेमोरी में एक निश्चित एड्रेस होता है। उदाहरण-टी.वी., कम्प्यूटर आदि सभी ऑब्जेक्ट्स हैं।
प्रश्न 2
क्लास से क्या तात्पर्य है? [2014]
उत्तर:
डाटा तथा उससे सम्बन्धित फंक्शनों के समूह को क्लास कहते हैं। क्लास एक यूजर-डिफाइण्ड डाटा टाइप है। एक बार क्लास बनाने के पश्चात् हम उस क्लास के अनेक ऑब्जेक्ट्स बना सकते हैं। समान गुणों के आधार पर ऑब्जेक्ट को समान वर्ग में रखा जा सकता है तथा यह वर्ग ऑब्जेक्ट क्लास कहलाता है। एक क्लास अपने अन्तर्गत विभिन्न क्लासेस को रख सकती है।
प्रश्न 3
एब्सट्रैक्शन तथा एनकैप्सूलेशन में अन्तर बताइए।
उत्तर:
एब्सट्रेक्शन तथा एनकैप्सूलेशन में अन्तर इस प्रकार हैं।

प्रश्न 4
कोड के पुनः प्रयोग से आप क्या समझते हैं? OOPs में इसे किस प्रकार किया जा सकता है? समझाइए। [2010]
उत्तर:
कोड को पुनः प्रयोग करने से समय की बचत होती है OOPs में यह सुविधा इनहेरिटेन्स उपलब्ध कराता है, जिसके प्रयोग से कोड को बार-बार लिखने की आवश्यकता नहीं होती। कोड को एक बार लिखने के बाद उसे आवश्यकतानुसार पूरे प्रोग्राम में कहीं भी प्रयोग कर सकते हैं। इसमें जिस क्लास के गुणों को इनहेरिट किया जाता है, उसे बेस या पेरे! क्लास कहा जाता है और जिसमें इनहेरिट किया जाता है, उसे डिराइव या चाइल्ड क्लास कहा जाता है।
प्रश्न 5
ऑपरेटर ओवरलोडिंग को उदाहरण सहित संक्षेप में लिखिए। [2017]
उत्तर:
ऑपरेटर ओवरलोडिंग ऑपरेटर को पॉलीमॉरफिज्म का गुण प्रदान करना अर्थात् एक ही ऑपरेटर का विभिन्न प्रकार से प्रयोग करना ही ‘ऑपरेटर ओवरलोडिंग’ कहलाता है। जब किसी ऑपरेटर को ओवरलोड किया जाता है, तब उसका वास्तविक अर्थ एवं कार्य नष्ट नहीं होता है, वे ओवरलोडिंग के कारण छिप जाते हैं।
प्रश्न 6
स्ट्रक्चर्ड प्रोग्रामिंग व ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग में तुलना [2013, 09, 07]
उत्तर:
स्ट्रक्चर्ड प्रोग्रामिंग और ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग में अन्तर निम्न हैं।

लघु उत्तरीय प्रश्न II (3 अंक)
प्रश्न 1
ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग का संक्षिप्त वर्णन कीजिए। [2016, 12]
उत्तर:
ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग तकनीक को संक्षिप्त में OOP भी कहा जाता है। इस तकनीक का मुख्य तत्त्व ऑब्जेक्ट होता है। C++, JAVA आदि भाषाओं के द्वारा इस तकनीक पर आधारित प्रोग्राम तैयार किए जाते हैं। ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग में विभिन्न प्रोग्रामिंग भाषाओं के सभी उत्तम गुणों का समावेश किया जाता है। इसके अतिरिक्त इसमें अनेक नए गुणों का समावेश भी किया जाता है। पुरानी सभी भाषाओं में फंक्शन की क्रियाविधि पर विशेष महत्त्व दिया जाता था। 00P में ऑब्जेक्ट्स को विशेष महत्त्व दिया जाता है। इस प्रोग्रामिंग में डाटा को सीधे प्रयोग नहीं किया जाता है और न ही बाह्य फंक्शनों द्वारा बदला जा सकता है। 00P में समस्या के हल के लिए ऑब्जेक्ट का निर्माण करते हैं तथा इन्हीं ऑब्जेक्ट के अनुरूप डाटा व फंक्शन बनाए जाते हैं।
प्रश्न 2
क्लास और ऑब्जेक्ट में अन्तर स्पष्ट कीजिए। [2014, 10]
उत्तर:
क्लास और ऑब्जेक्ट में अन्तर इस प्रकार हैं।
प्रश्न 3
इनहेरिटेन्स क्या है? इसके विभिन्न रूपों का वर्णन कीजिए। [2016, 12]
उत्तर:
इनहेरिटेन्स, ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग भाषा का प्रमुख गुण है, एक क्लास के गुणों को दूसरी क्लास में प्रयोग करना इनहेरिटेन्स कहलाता है। जिस क्लास से गुण इनहेरिट होते हैं, वह बेस क्लास या पेरेण्ट क्लास कहलाती है तथा जिस क्लास में ये गुण इनहेरिट होते हैं वो सब क्लास या चाइल्ड क्लास कहलाती है। इससे एक कोड को पुनः लिखने की आवश्यकता नहीं होती।
उदाहरण
इसके विभिन्न रूप निम्न हैं।
- सिंगल लेवल इनहेरिटेन्स
- मल्टीलेवल इनहेरिटेन्स
- मल्टीपल इनहेरिटेन्स
- हाइब्रिड इनहेरिटेन्स
- हाइरारकिकल इनहेरिटेन्स
प्रश्न 4
OOP के लाभ बताइए। [2015, 08]
अथवा
OOP की विशेषताओं की व्याख्या संक्षेप में कीजिए।
उत्तर:
ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग (OOP) के लाभ निम्नलिखित हैं
- OOP द्वारा बड़े प्रोग्रामों को बनाना आसान होता है।
- इनहेरिटेन्स के द्वारा कोड को दोबारा लिखने की आवश्यकता नहीं होती अर्थात् हम ऑब्जेक्ट के द्वारा एक क्लास को दूसरी क्लास में डिराइव कर सकते हैं।
- OOP में प्रोग्राम बनाने से समय की बचत होती है।
- OOP में बने प्रोग्रामों को सरलता से अपग्रेड किया जा सकता है।
- यह सॉफ्टवेयर डेवलपमेण्ट की प्रोडेक्टिविटी को बढ़ाता है।
- किसी प्रोजेक्ट के कार्य का ऑब्जेक्ट के रूप में विभाजन करता है।
- प्रोग्राम को फंक्शन के स्थान पर ऑब्जेक्ट के द्वारा, विभाजित किया जाता है।
- प्रोग्राम में bottom-up approach का प्रयोग किया जाता है।
दीर्घ उत्तरीय प्रश्न (5 अंक)
प्रश्न 1
OOP (Object Oriented Programming) को समझाइए तथा इसके विभिन्न तत्त्व भी लिखिए।
अथवा
क्लासेस तथा ऑब्जेक्ट्स का वर्णन कीजिए। [2009]
अथवा
निम्नलिखित को उदाहरण देकर समझाइए [2018, 12, 06]
(i) ऑब्जेक्ट
(ii) क्लास
(iii) इनहेरिटेन्स
(iv) ऑपरेटर ओवरलोडिंग
उत्तर:
ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग में विभिन्न प्रोग्रामिंग भाषाओं के सभी उत्तम गुणों का समावेश किया गया है। इसके अतिरिक्त इसमें अनेक नए गुण भी हैं। पुरानी सभी भाषाओं में फंक्शन की क्रियाविधि पर विशेष महत्त्व दिया जाता था, लेकिन OOP में ऑब्जेक्ट को विशेष महत्त्व दिया जाता है। इस प्रोग्रामिंग में डाटा को सीधे प्रयोग नहीं किया जाता। OOP में समस्या के हल के लिए ऑब्जेक्ट का निर्माण करते हैं तथा इन्हीं ऑब्जेक्ट्स के अनुरूप डाटा व फंक्शन बनाए जाते हैं।
निम्न चित्र में डाटा, फंक्शन तथा ऑब्जेक्ट का सम्बन्ध दिखाया गया है।
ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग के तत्त्व
ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग के तत्त्व निम्न हैं।
(i) ऑब्जेक्ट्स ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग का मुख्य आधार ऑब्जेक्ट होता है। किसी भी क्लास में डाटा व फंक्शन को घोषित करने के लिए ऑब्जेक्ट को ध्यान में रखा जाता है। ऑब्जेक्ट के बिना क्लास में किसी भी डाटा का कोई मान नहीं होता। ऑब्जेक्ट मैमोरी में स्थान घेरते हैं, जिनको मैमोरी में एक निश्चित एड्स होता है। किसी भी क्लास के एक से ज्यादा ऑब्जेक्ट्स बनाए जा सकते हैं, जो यूजर की आवश्यकता पर निर्भर करते हैं। यह हमारे सामान्य जीवन का एक हिस्सा होते हैं। हमारे चारों ओर प्रत्येक जगह अनेक प्रकार के ऑब्जेक्ट्स हैं-टी.वी., कम्प्युटर आदि सभी ऑब्जेक्ट्स हैं। हमेशा डाटा तथा फंक्शन को हमेशा क्लास के अन्तर्गत घोषित करते हैं, लेकिन वास्तविक डाटा, ऑब्जेक्ट पर ही निर्भर करता है। ऑब्जेक्ट की सहायता से क्लास के सदस्यों का प्रयोग करने के लिए डॉट (.) ऑपरेटर का प्रयोग किया जाता है।
(ii) क्लास क्लास, डाटा तथा फंक्शन का संयोजन रूप है। डाटा तथा उस पर प्रयोग होने वाले फंक्शन्स को एक इकाई में घोषित किया जाता है, यह इकाई ही क्लास कहलाती है। वास्तव में, ऑब्जेक्ट क्लास के वैरिएबल होते हैं। एक बार क्लास बनाने के बाद उस क्लास के अनेक ऑब्जेक्ट्स बनाए जा सकते हैं। किसी भी ऑब्जेक्ट ओरिएण्टेड प्रोग्रामिंग में कम-से-कम एक क्लास का घोषित किया जाना आवश्यक होता है, जिसके द्वारा प्रोग्रामिंग भाषा C में तैयार किए गए प्रोग्राम को C++ में भी चलाया जा सकता है।
उदाहरण:
Car क्लास के दो ऑब्जेक्ट्स Ford तथा Toyota का चित्रण इस प्रकार हैं।
(iii) इनहेरिटेन्स वह प्रक्रिया जिसके द्वारा एक क्लास के ऑब्जेक्ट, दूसरी क्लास के ऑब्जेक्ट के गुण प्राप्त कर सकते हैं, इनहेरिटेन्स कहलाते हैं। इस प्रक्रिया में हम एक क्लास से दूसरी क्लास को डिराइव (Derive) कर सकते हैं। डिराइव हुई क्लास में प्रथम क्लास के सभी गुण होते हैं तथा इसके अतिरिक्त उसमें स्वयं के भी कुछ गुण हो सकते हैं। इस प्रकार प्रथम क्लास जिससे दूसरी क्लास डिराइव हुई है, उसे वह पेरेण्ट क्लास यो सुपर क्लास कहते हैं बेस क्लास तथा दूसरी क्लास जो डिराइव्ड हुई है, सब क्लास, चाइल्ड क्लास या डिराइब्ड क्लास कहलाती है।
उदाहरण

डिराइल्ड क्लास Dog अपने बेस क्लास Animal की प्रोपर्टी इनहेरिट करेगा।
(iv) पॉलीमॉरफिज्म Polymorphism, poly तथा morphous दो शब्दों से मिलकर बना है। Poly का अर्थ है ‘अनेक’ तथा morphous का अर्थ है। ‘रूप’। अतः पॉलीमॉरफिज्म का अर्थ है एक ही तत्त्व के अनेक रूप’।
पॉलीमॉरफिज्म दो प्रकार के होते हैं।
ऑपरेटर ओवरलोडिंग ऑपरेटर को पॉलीमॉरफिज्म का गुण प्रदान करना अर्थात् एक ही ऑपरेटर का विभिन्न प्रकार से प्रयोग करना ही ‘ऑपरेटर ओवरलोडिंग’ कहलाता है। जब किसी ऑपरेटर को ओवरलोड़ किया जाता है, तब उसका वास्तविक अर्थ एवं कार्य नष्ट नहीं होता है, वे
ओवरलोडिंग के कारण छिप जाते हैं।
उदाहरण + ऑपरेटर का प्रयोग दो इण्टीजर को जोड़ने के लिए किया जा सकता है; जैसे- int a=5, b=2; ints = a + b; cout << s;
आउटपुट 7 इस प्रकार, + ऑपरेटर का प्रयोग दो स्ट्रिग्स को कॉनकोटेनेट (Concatenate) करने के लिए भी किया जा सकता है; जैसे
str = “Hello”;
str 1 = “World”;
str 2 = str + strl;
आउटपुट Helloworld
फंक्शन ओवरलोडिंग फंक्शन ओवरलोडिंग का अर्थ है कि किसी एक फंक्शन नाम से विभिन्न परिस्थितियों में विभिन्न कार्य कराना, जिससे एक फंक्शन के कोड को पुन: नहीं लिखना पड़ता और समय की बचत होती है। इसका प्रयोग करके हम फंक्शन को समान नाम से किन्तु अलग-अलग argument list से डिक्लेयर तथा परिभाषित कर सकते हैं।
(v) डाटा एब्सट्रैक्शन इसका प्रयोग क्लास में डाटा को छिपाने के लिए किया जाता है। इस प्रक्रिया को डाटा हाइडिंग (Data hiding) भी कहते हैं। डाटा हाइडिंग का अर्थ है कि हम class में घोषित प्राइवेट डाटा को सीधे प्रोग्राम में प्रयोग नहीं कर सकते।
(vii) एनकैप्सूलेशन एनकैप्सूलेशन, 00P का मुख्य गुण है। यह डाटा तथा फंक्शन को एक यूनिट में एकत्रित कर नया ऑब्जेक्ट बनाने की सुविधा प्रदान करता है। एनकैप्सूलेशन का मुख्य उद्देश्य क्लास को इस प्रकार स्वतन्त्र रूप देना है, जिससे उन्हें अन्य प्रोग्रामों को संशोधित किए बिना पुन: उपयोग में लाया जा सकें।