मुख्य सामग्री पर जाएं
GK24
GK नोट्सकंप्यूटर ज्ञानऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की अवधारणाएं

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग: क्लास, ऑब्जेक्ट और स्तंभ

परीक्षा के लिए ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के संपूर्ण नोट्स: क्लास और ऑब्जेक्ट, चार स्तंभ, कंस्ट्रक्टर, इनहेरिटेंस के प्रकार तथा भाषाएं और उनके निर्माता।

लेखक · प्रकाशित · 5 मिनट

Read in English
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग: क्लास, ऑब्जेक्ट और स्तंभ — GK24 title card
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग: क्लास, ऑब्जेक्ट और स्तंभ — GK24 title card

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग, जिसे संक्षेप में ओओपी कहा जाता है, सॉफ्टवेयर लिखने की वह शैली है जिसमें प्रोग्राम ऐसे ऑब्जेक्ट से बनता है जो डेटा और उस डेटा पर काम करने वाली क्रियाएं, दोनों अपने भीतर रखते हैं; अलग-अलग चरों पर काम करने वाले निर्देशों की लंबी सूची नहीं लिखी जाती। बड़े सॉफ्टवेयर के लिए यही शैली मानक बन गई, क्योंकि इसमें संबंधित वस्तुएं एक साथ रहती हैं और कोड का पुनः उपयोग संभव होता है। प्रतियोगी परीक्षाओं में यह अध्याय लगभग पूरी तरह परिभाषा आधारित है: एक पंक्ति का विवरण देकर विशेषता पूछी जाती है, या विशेषता देकर भाषा अथवा उसका निर्माता पूछा जाता है। चार मूल स्तंभों को एक-एक उदाहरण के साथ और भाषाओं तथा उनके निर्माताओं की छोटी तालिका को याद कर लेना इस अध्याय के लगभग सभी प्रश्नों के लिए पर्याप्त है।

प्रक्रियात्मक से ऑब्जेक्ट ओरिएंटेड तक

प्रक्रियात्मक प्रोग्रामिंग में, जैसे सी, फोरट्रान या कोबोल में, समस्या को फंक्शन में बांटा जाता है और डेटा उनके बीच भेजा जाता है, इसलिए कोई भी फंक्शन किसी भी ग्लोबल चर को बदल सकता है। ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में समस्या को ऑब्जेक्ट में बांटा जाता है; ऑब्जेक्ट का डेटा सामान्यतः प्राइवेट रखा जाता है और उसे उसी ऑब्जेक्ट की मेथड ही बदल सकती हैं। इससे डेटा में आकस्मिक गड़बड़ी कम होती है, बड़े प्रोग्राम का रखरखाव आसान होता है और पुनः उपयोग सरल हो जाता है। प्रक्रियात्मक कोड को फंक्शन केंद्रित और ऑब्जेक्ट ओरिएंटेड कोड को डेटा केंद्रित कहा जाता है, और परीक्षक इसी शब्दावली में प्रश्न बनाते हैं।

क्लास और ऑब्जेक्ट: मूल जोड़ी

क्लास एक खाका या टेम्पलेट है, जो यह तय करती है कि उसके सदस्यों में कौन-कौन से डेटा मेंबर और मेंबर फंक्शन होंगे; केवल क्लास लिख देने से डेटा मेंबर के लिए मेमोरी आरक्षित नहीं होती। ऑब्जेक्ट क्लास का इंस्टेंस है, जो उसी खाके से बनता है और मेमोरी लेता है। विद्यार्थी एक क्लास हो सकती है, जबकि राहुल और मीना उसके ऑब्जेक्ट। भीतर के चर डेटा मेंबर या एट्रिब्यूट कहे जाते हैं और फंक्शन मेंबर फंक्शन या मेथड। एक क्लास के कितने भी ऑब्जेक्ट बन सकते हैं। जब एक ऑब्जेक्ट दूसरे ऑब्जेक्ट की मेथड बुलाता है, तो पुरानी पुस्तकें उसे मैसेज पासिंग कहती हैं।

ओओपी के चार स्तंभ

विशेषताअर्थसरल उदाहरण
एनकैप्सुलेशनडेटा और उस पर काम करने वाली मेथड को एक इकाई, यानी क्लास, में लपेटना और डेटा को प्राइवेट रखनादवा को समेटे हुए कैप्सूल; वह बैंक खाता जिसका बैलेंस केवल जमा और निकासी मेथड से बदले
एब्स्ट्रैक्शनउपयोगकर्ता को केवल आवश्यक विशेषताएं दिखाना और भीतरी बनावट छिपानाकार का एक्सेलरेटर: इंजन की बनावट जाने बिना आप उसे दबाते हैं
इनहेरिटेंसनई क्लास द्वारा किसी पुरानी क्लास के गुण और व्यवहार प्राप्त करना, जिससे पुनः उपयोग होता हैवाहन क्लास से कार और बस का बनना
पॉलीमॉर्फिज्मएक ही नाम का भिन्न परिस्थितियों में भिन्न व्यवहार, ग्रीक में अनेक रूपवृत्त और आयत दोनों के लिए एक ही नाम की मेथड क्षेत्रफल

कई पुस्तकें इस सूची में डेटा हाइडिंग और मॉड्यूलरिटी भी जोड़ती हैं, पर जब प्रश्न पत्र ओओपी की मूल विशेषताएं पूछता है तो अपेक्षित उत्तर ऊपर के चार ही हैं।

अंक दिलाने वाले शब्द

  • कंस्ट्रक्टर: क्लास के नाम वाला विशेष मेंबर फंक्शन, जो ऑब्जेक्ट बनते समय स्वतः बुलाया जाता है और सामान्यतः उसे प्रारंभिक मान देता है। यह कोई मान नहीं लौटाता, void भी नहीं।
  • डिस्ट्रक्टर: वह मेंबर फंक्शन जो ऑब्जेक्ट नष्ट होते समय स्वतः चलता है और सी प्लस प्लस में क्लास के नाम से पहले टिल्ड चिह्न लगाकर लिखा जाता है।
  • फंक्शन ओवरलोडिंग: एक ही क्लास में एक ही नाम के कई फंक्शन, पर पैरामीटर भिन्न। इसका निर्णय कंपाइलर करता है, इसलिए इसे कंपाइल टाइम या स्टैटिक पॉलीमॉर्फिज्म कहते हैं।
  • फंक्शन ओवरराइडिंग: डिराइव्ड क्लास द्वारा बेस क्लास की मेथड को फिर से लिखना। इसका निर्णय प्रोग्राम चलते समय होता है, इसलिए इसे रन टाइम या डायनामिक पॉलीमॉर्फिज्म कहते हैं, जो सी प्लस प्लस में वर्चुअल फंक्शन से प्राप्त होता है।
  • एक्सेस स्पेसिफायर: प्राइवेट सदस्य केवल क्लास के भीतर, प्रोटेक्टेड सदस्य डिराइव्ड क्लास में भी और पब्लिक सदस्य कहीं से भी उपलब्ध रहते हैं। सी प्लस प्लस की क्लास में डिफॉल्ट प्राइवेट होता है।
  • एब्स्ट्रैक्ट क्लास: वह क्लास जिसका ऑब्जेक्ट नहीं बनाया जा सकता और जो केवल इनहेरिट करने के लिए होती है; सी प्लस प्लस में इसमें कम से कम एक प्योर वर्चुअल फंक्शन होता है और जावा में इंटरफेस यही काम करता है।

इनहेरिटेंस के प्रकार

सिंगल इनहेरिटेंस में एक बेस और एक डिराइव्ड क्लास होती है। मल्टीपल इनहेरिटेंस में एक डिराइव्ड क्लास की दो या अधिक बेस क्लास होती हैं। मल्टीलेवल इनहेरिटेंस में शृंखला बनती है, A से B और B से C। हायरार्किकल इनहेरिटेंस में एक बेस क्लास से कई डिराइव्ड क्लास बनती हैं। हाइब्रिड इनहेरिटेंस इन रूपों का मिश्रण है। जिस क्लास से गुण लिए जाते हैं वह बेस, पैरेंट या सुपर क्लास है और नई क्लास डिराइव्ड, चाइल्ड या सब क्लास। सी प्लस प्लस मल्टीपल इनहेरिटेंस का समर्थन करता है, जावा क्लास के माध्यम से नहीं करता और वही काम इंटरफेस से कराता है; यही अंतर परीक्षा में बार-बार पूछा जाता है।

भाषाएं और उनके निर्माता

भाषानिर्माताविशेष बात
सिमुला 67ओले-योहान डाल और क्रिस्टन निगार्डपहली ऑब्जेक्ट ओरिएंटेड भाषा मानी जाती है; क्लास और ऑब्जेक्ट की शुरुआत इसी से
स्मॉलटॉकएलन के और उनकी टीम, जेरॉक्स पार्कऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग शब्द एलन के ने दिया; यह पूर्णतः ऑब्जेक्ट ओरिएंटेड भाषा है
सी प्लस प्लसब्यार्ने स्ट्रॉस्ट्रप, बेल प्रयोगशालाआरंभ सी विद क्लासेज के रूप में हुआ और 1983 में नाम सी प्लस प्लस पड़ा; प्रक्रियात्मक तथा ऑब्जेक्ट ओरिएंटेड दोनों शैलियां
जावाजेम्स गोसलिंग, सन माइक्रोसिस्टम्स1995 में जारी, पहला नाम ओक; जावा वर्चुअल मशीन के कारण प्लेटफॉर्म स्वतंत्र
पायथनगुइडो वान रोसम1991 में जारी; ऑब्जेक्ट ओरिएंटेड सहित कई शैलियों का समर्थन
सी शार्पमाइक्रोसॉफ्टडॉट नेट प्लेटफॉर्म के लिए बनी; आरंभ से ही ऑब्जेक्ट ओरिएंटेड

ओओपी क्यों पसंद की जाती है और उसकी कीमत

ऑब्जेक्ट दूसरे प्रोग्राम में भी काम आ जाते हैं, डेटा आकस्मिक परिवर्तन से बचा रहता है, टीम के सदस्य अलग-अलग क्लास पर एक साथ काम कर सकते हैं और जब तक क्लास का इंटरफेस वही रहे, उसके भीतर किया गया बदलाव बाकी प्रोग्राम को नहीं बिगाड़ता। कीमत यह है कि ऑब्जेक्ट ओरिएंटेड प्रोग्राम सामान्यतः बड़े होते हैं, कोडिंग से पहले अधिक डिजाइन मांगते हैं और कसे हुए प्रक्रियात्मक कोड से कुछ धीमे चल सकते हैं। सी प्लस प्लस और पायथन जैसी भाषाएं, जो दोनों शैलियां चलने देती हैं, हाइब्रिड या मल्टी-पैराडाइम भाषाएं कहलाती हैं, जबकि स्मॉलटॉक को शुद्ध ऑब्जेक्ट ओरिएंटेड भाषा का उदाहरण माना जाता है।

परीक्षा की दृष्टि से

इस अध्याय से तीन प्रकार के प्रश्न आते हैं। पहला, परिभाषा से शब्द: डेटा और फंक्शन एक इकाई में एनकैप्सुलेशन, भीतरी बनावट छिपाना एब्स्ट्रैक्शन, पुनः उपयोग इनहेरिटेंस, अनेक रूप पॉलीमॉर्फिज्म। दूसरा, भाषा और निर्माता: सिमुला के साथ डाल एवं निगार्ड, स्मॉलटॉक के साथ एलन के, सी प्लस प्लस के साथ ब्यार्ने स्ट्रॉस्ट्रप, जावा के साथ जेम्स गोसलिंग, पायथन के साथ गुइडो वान रोसम। तीसरा, सूक्ष्म अंतर: ओवरलोडिंग और ओवरराइडिंग, क्लास और ऑब्जेक्ट, प्राइवेट और प्रोटेक्टेड तथा यह तथ्य कि जावा क्लास से मल्टीपल इनहेरिटेंस नहीं देता। प्रश्न एक पंक्ति के होते हैं और कोडिंग की आवश्यकता नहीं होती।

महत्वपूर्ण तथ्य

पहली ओओपी भाषासिमुला 67, ओले-योहान डाल और क्रिस्टन निगार्ड द्वारा
शब्द किसने दियाएलन के, जिन्होंने जेरॉक्स पार्क में स्मॉलटॉक का नेतृत्व किया
चार स्तंभएनकैप्सुलेशन, एब्स्ट्रैक्शन, इनहेरिटेंस, पॉलीमॉर्फिज्म
सी प्लस प्लसब्यार्ने स्ट्रॉस्ट्रप, बेल प्रयोगशाला; 1983 में सी प्लस प्लस नाम
जावाजेम्स गोसलिंग, सन माइक्रोसिस्टम्स; 1995 में जारी, पहला नाम ओक
पायथनगुइडो वान रोसम, 1991 में जारी
कंस्ट्रक्टरक्लास के नाम वाला, ऑब्जेक्ट बनने पर स्वतः चले, कोई मान न लौटाए
कंपाइल टाइम पॉलीमॉर्फिज्मफंक्शन और ऑपरेटर ओवरलोडिंग
रन टाइम पॉलीमॉर्फिज्मफंक्शन ओवरराइडिंग, सी प्लस प्लस में वर्चुअल फंक्शन से
इनहेरिटेंस के प्रकारसिंगल, मल्टीपल, मल्टीलेवल, हायरार्किकल, हाइब्रिड
सी प्लस प्लस क्लास में डिफॉल्ट एक्सेसप्राइवेट

इस टॉपिक पर अभ्यास MCQ

Q1.कंप्यूटर ज्ञानआसान

निम्नलिखित में से किसे पहली ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषा माना जाता है?

  1. A.सिमुला 67
  2. B.फोरट्रान
  3. C.कोबोल
  4. D.बेसिक
उत्तर देखें
सही उत्तर: A. सिमुला 67

ओले-योहान डाल और क्रिस्टन निगार्ड द्वारा बनाई गई सिमुला 67 ने क्लास, ऑब्जेक्ट और इनहेरिटेंस की अवधारणाएं दीं, इसलिए इसे पहली ऑब्जेक्ट ओरिएंटेड भाषा माना जाता है और बाद में सी प्लस प्लस तथा जावा ने इसी से विचार लिए।

पूरी व्याख्या पढ़ें →
Q2.कंप्यूटर ज्ञानमध्यम

निम्नलिखित में से कौन ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की चार मूल विशेषताओं में नहीं गिना जाता?

  1. A.एब्स्ट्रैक्शन
  2. B.इनहेरिटेंस
  3. C.रिकर्शन
  4. D.पॉलीमॉर्फिज्म
उत्तर देखें
सही उत्तर: C. रिकर्शन

रिकर्शन प्रोग्रामिंग की सामान्य तकनीक है जिसमें फंक्शन स्वयं को बुलाता है और यह सी जैसी प्रक्रियात्मक भाषाओं में भी उतना ही चलता है, इसलिए यह ऑब्जेक्ट ओरिएंटेड शैली की विशेषता नहीं है।

पूरी व्याख्या पढ़ें →
Q3.कंप्यूटर ज्ञानआसान

डेटा और उस डेटा पर काम करने वाले फंक्शन को एक ही इकाई में लपेटने की क्रिया क्या कहलाती है?

  1. A.इनहेरिटेंस
  2. B.एनकैप्सुलेशन
  3. C.ओवरलोडिंग
  4. D.कंपाइलेशन
उत्तर देखें
सही उत्तर: B. एनकैप्सुलेशन

एनकैप्सुलेशन का अर्थ है डेटा मेंबर और उन पर काम करने वाले मेंबर फंक्शन को एक इकाई, यानी क्लास, में बांध देना तथा डेटा को प्राइवेट रखना, जिससे उस तक पहुंच केवल दी गई मेथड से हो; इसका मानक उदाहरण दवा समेटे हुए कैप्सूल है।

पूरी व्याख्या पढ़ें →
Q4.कंप्यूटर ज्ञानमध्यम

उपयोगकर्ता को ऑब्जेक्ट की केवल आवश्यक विशेषताएं दिखाना और भीतरी विवरण छिपाना क्या कहलाता है?

  1. A.एब्स्ट्रैक्शन
  2. B.एनकैप्सुलेशन
  3. C.इनहेरिटेंस
  4. D.इंस्टैंशिएशन
उत्तर देखें
सही उत्तर: A. एब्स्ट्रैक्शन

एब्स्ट्रैक्शन उपयोगकर्ता को केवल आवश्यक भाग दिखाता है, जैसे कार का एक्सेलरेटर और ब्रेक, और भीतरी कार्यप्रणाली सामने नहीं आने देता; सी प्लस प्लस में यह प्योर वर्चुअल फंक्शन वाली एब्स्ट्रैक्ट क्लास से और जावा में इंटरफेस तथा एब्स्ट्रैक्ट क्लास से प्राप्त होता है।

पूरी व्याख्या पढ़ें →
Q5.कंप्यूटर ज्ञानआसान

सी प्लस प्लस प्रोग्रामिंग भाषा का विकास किसने किया?

  1. A.डेनिस रिची
  2. B.जेम्स गोसलिंग
  3. C.ब्यार्ने स्ट्रॉस्ट्रप
  4. D.गुइडो वान रोसम
उत्तर देखें
सही उत्तर: C. ब्यार्ने स्ट्रॉस्ट्रप

ब्यार्ने स्ट्रॉस्ट्रप ने बेल प्रयोगशाला में इस भाषा को सी विद क्लासेज के रूप में आरंभ किया और 1983 में इसे सी प्लस प्लस नाम दिया; यह सी की प्रक्रियात्मक शक्ति बनाए रखते हुए क्लास, इनहेरिटेंस और पॉलीमॉर्फिज्म जोड़ती है, इसलिए इसे हाइब्रिड भाषा कहा जाता है।

पूरी व्याख्या पढ़ें →
Q6.कंप्यूटर ज्ञानआसान

सन माइक्रोसिस्टम्स में जावा भाषा का विकास किसके नेतृत्व में हुआ?

  1. A.एलन के
  2. B.जेम्स गोसलिंग
  3. C.एंडर्स हेजल्सबर्ग
  4. D.केन थॉम्पसन
उत्तर देखें
सही उत्तर: B. जेम्स गोसलिंग

जेम्स गोसलिंग और उनकी टीम ने सन माइक्रोसिस्टम्स में जावा विकसित की, जिसका पहला नाम ओक था और जो 1995 में जावा नाम से जारी हुई; इसके प्रोग्राम बाइटकोड में कंपाइल होकर जावा वर्चुअल मशीन पर चलते हैं, जिससे वे प्लेटफॉर्म स्वतंत्र हो जाते हैं।

पूरी व्याख्या पढ़ें →
Q7.कंप्यूटर ज्ञानमध्यम

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में एक ही नाम के फंक्शन का भिन्न पैरामीटर के साथ काम करना क्या कहलाता है?

  1. A.इनहेरिटेंस
  2. B.एनकैप्सुलेशन
  3. C.फंक्शन ओवरलोडिंग
  4. D.फंक्शन ओवरराइडिंग
उत्तर देखें
सही उत्तर: C. फंक्शन ओवरलोडिंग

ओवरलोडिंग में एक ही क्लास में एक ही नाम के कई फंक्शन भिन्न संख्या या प्रकार के पैरामीटर के साथ लिखे जाते हैं और कंपाइलर तय करता है कि कौन चलेगा; निर्णय प्रोग्राम चलने से पहले होने के कारण इसे कंपाइल टाइम या स्टैटिक पॉलीमॉर्फिज्म कहते हैं।

पूरी व्याख्या पढ़ें →
Q8.कंप्यूटर ज्ञानआसान

क्लास और ऑब्जेक्ट के विषय में कौन-सा कथन सही है?

  1. A.क्लास ऑब्जेक्ट का इंस्टेंस होती है
  2. B.ऑब्जेक्ट खाका है और क्लास उसका इंस्टेंस
  3. C.क्लास खाका है और ऑब्जेक्ट उसका इंस्टेंस
  4. D.क्लास और ऑब्जेक्ट दोनों एक ही प्रकार से मेमोरी लेते हैं
उत्तर देखें
सही उत्तर: C. क्लास खाका है और ऑब्जेक्ट उसका इंस्टेंस

क्लास केवल यह बताती है कि उसके ऑब्जेक्ट में कौन से डेटा मेंबर और मेंबर फंक्शन होंगे, जबकि ऑब्जेक्ट उसी क्लास से बनता है, मेमोरी लेता है और वास्तविक मान रखता है; एक क्लास के कितने भी ऑब्जेक्ट हो सकते हैं।

पूरी व्याख्या पढ़ें →
Q9.कंप्यूटर ज्ञानआसान

जिस विशेषता से नई क्लास किसी पुरानी क्लास के गुण और व्यवहार प्राप्त करती है, वह है

  1. A.इनहेरिटेंस
  2. B.पॉलीमॉर्फिज्म
  3. C.एब्स्ट्रैक्शन
  4. D.मैसेज पासिंग
उत्तर देखें
सही उत्तर: A. इनहेरिटेंस

इनहेरिटेंस से डिराइव्ड, चाइल्ड या सब क्लास बेस, पैरेंट या सुपर क्लास के सदस्य ले लेती है और अपने सदस्य जोड़ लेती है, जो ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में कोड पुनः उपयोग का मुख्य मार्ग है; इसके रूप सिंगल, मल्टीपल, मल्टीलेवल, हायरार्किकल और हाइब्रिड हैं।

पूरी व्याख्या पढ़ें →
Q10.कंप्यूटर ज्ञानमध्यम

क्लास का ऑब्जेक्ट बनते समय कौन-सा विशेष मेंबर फंक्शन स्वतः चलता है?

  1. A.डिस्ट्रक्टर
  2. B.कंस्ट्रक्टर
  3. C.फ्रेंड फंक्शन
  4. D.वर्चुअल फंक्शन
उत्तर देखें
सही उत्तर: B. कंस्ट्रक्टर

कंस्ट्रक्टर का नाम उसकी क्लास के नाम जैसा होता है, ऑब्जेक्ट बनते ही वह स्वतः चल जाता है और सामान्यतः डेटा मेंबर को प्रारंभिक मान देता है; यह कोई मान नहीं लौटाता, void भी नहीं, और इसे ओवरलोड किया जा सकता है।

पूरी व्याख्या पढ़ें →
Q11.कंप्यूटर ज्ञानकठिन

निम्नलिखित में से कौन-सी भाषा क्लास के माध्यम से मल्टीपल इनहेरिटेंस का समर्थन नहीं करती?

  1. A.सी प्लस प्लस
  2. B.जावा
  3. C.पायथन
  4. D.आइफल
उत्तर देखें
सही उत्तर: B. जावा

जावा ने क्लास की मल्टीपल इनहेरिटेंस जानबूझकर नहीं रखी, क्योंकि दो बेस क्लास से एक ही नाम का सदस्य आने पर जो दुविधा बनती है, उसे डायमंड समस्या कहा जाता है; इसके बदले जावा इंटरफेस देता है, जिससे एक क्लास एक से अधिक स्रोतों से व्यवहार ले सकती है।

पूरी व्याख्या पढ़ें →
Q12.कंप्यूटर ज्ञानमध्यम

सी प्लस प्लस में प्राइवेट घोषित किए गए क्लास सदस्यों तक पहुंच कहां से संभव है?

  1. A.प्रोग्राम में कहीं से भी
  2. B.केवल उसी क्लास के भीतर से
  3. C.क्लास तथा उसकी डिराइव्ड क्लास के भीतर से
  4. D.केवल मेन फंक्शन से
उत्तर देखें
सही उत्तर: B. केवल उसी क्लास के भीतर से

प्राइवेट सबसे सीमित एक्सेस स्पेसिफायर है और सी प्लस प्लस की क्लास में डिफॉल्ट भी यही है, इसलिए प्राइवेट डेटा मेंबर को उसी क्लास के मेंबर फंक्शन ही पढ़ या बदल सकते हैं, तथा घोषित किया गया फ्रेंड फंक्शन या फ्रेंड क्लास भी।

पूरी व्याख्या पढ़ें →

अक्सर पूछे जाने वाले प्रश्न

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की चार मूल अवधारणाएं कौन हैं?

एनकैप्सुलेशन, जो डेटा को उस पर काम करने वाली मेथड से बांधता है; एब्स्ट्रैक्शन, जो भीतरी बनावट छिपाकर केवल आवश्यक भाग दिखाता है; इनहेरिटेंस, जिससे एक क्लास दूसरी के गुण लेती है; और पॉलीमॉर्फिज्म, जिसमें एक नाम अनेक रूपों में व्यवहार करता है।

क्लास और ऑब्जेक्ट में क्या अंतर है?

क्लास वह खाका या टेम्पलेट है जो डेटा मेंबर और मेंबर फंक्शन घोषित करती है और उसके डेटा मेंबर के लिए मेमोरी आरक्षित नहीं होती। ऑब्जेक्ट उसी क्लास से बना इंस्टेंस है, जो मेमोरी लेता है और वास्तविक मान रखता है।

फंक्शन ओवरलोडिंग और फंक्शन ओवरराइडिंग में क्या अंतर है?

ओवरलोडिंग में एक ही क्लास में एक ही नाम के फंक्शन भिन्न पैरामीटर के साथ होते हैं और निर्णय कंपाइलर करता है, इसलिए यह स्टैटिक पॉलीमॉर्फिज्म है। ओवरराइडिंग में डिराइव्ड क्लास बेस क्लास की उसी हस्ताक्षर वाली मेथड बदलती है और निर्णय चलते समय होता है, इसलिए यह डायनामिक पॉलीमॉर्फिज्म है।

पहली ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषा कौन थी?

सिमुला 67, जिसे ओले-योहान डाल और क्रिस्टन निगार्ड ने बनाया और जिसने क्लास, ऑब्जेक्ट तथा इनहेरिटेंस की शुरुआत की। एलन के के नेतृत्व में जेरॉक्स पार्क में बनी स्मॉलटॉक को पहली शुद्ध ऑब्जेक्ट ओरिएंटेड भाषा कहा जाता है।

यह क्यों कहा जाता है कि जावा मल्टीपल इनहेरिटेंस का समर्थन नहीं करता?

जावा में एक क्लास एक से अधिक क्लास को एक्सटेंड नहीं कर सकती, क्योंकि दो बेस क्लास से एक ही नाम का सदस्य आने पर दुविधा बनती है, जिसे डायमंड समस्या कहते हैं। एक क्लास कई इंटरफेस लागू कर सकती है, इसलिए जावा इंटरफेस की मल्टीपल इनहेरिटेंस देता है, क्लास की नहीं।

स्रोत

  • कंप्यूटर विज्ञान, कक्षा बारह की पाठ्यपुस्तक — एनसीईआरटी
  • सूचना प्रौद्योगिकी एवं व्यवहार, कक्षा ग्यारह की पाठ्यपुस्तक — एनसीईआरटी
  • कंप्यूटर विज्ञान एवं अभियांत्रिकी आदर्श पाठ्यक्रम, ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग विषय रूपरेखा — अखिल भारतीय तकनीकी शिक्षा परिषद
सभी देखें