• Home
  • /
  • Blog
  • /
  • 4 ओओपी की शक्तिशाली विशेषताएं

4 ओओपी की शक्तिशाली विशेषताएं

ओओपी (OOPs) की शक्तिशाली विशेषताएं

This post is also available in: English (English) العربية (Arabic)

पहली उच्च-स्तरीय प्रोग्रामिंग भाषा के रिलीज़ होने के बाद से, कई अलग-अलग प्रोग्रामिंग भाषाएं विकसित हुई हैं। इन सभी प्रोग्रामिंग भाषाओं में प्रोग्राम लिखने के लिए एक निश्चित दृष्टिकोण का पालन किया जाता है। इसे अक्सर एक प्रोग्रामिंग पराडीम कहा जाता है।

एक प्रोग्रामिंग प्रतिमान (पराडीम) एक अवधारणा है जिसके लिए एक प्रोग्रामिंग भाषा की पद्धति का पालन होता है। प्रतिमान महत्वपूर्ण हैं क्योंकि वे एक प्रोग्रामिंग भाषा को परिभाषित करते हैं और यह कैसे काम करता है। विभिन्न प्रोग्रामिंग प्रतिमान या दृष्टिकोण हैं और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) ओओपी के 4 शक्तिशाली विशेषताओं के कारण सबसे अधिक उपयोग किए जाने वाले प्रतिमानों में से एक है।

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग क्या है?

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

CodingHero - 4 ओओपी की शक्तिशाली विशेषताएं 1 4 Powerful Features of OOPs 952

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

सबसे अधिक इस्तेमाल की जाने वाली ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषाओं में से कुछ पायथन, जावा, गो, रूबी, सी ++ हैं।

OOPs की अवधारणा क्यों महत्वपूर्ण है?

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषाओं में निम्नलिखित चार विशेषताओं के कारण प्रक्रियात्मक भाषाओं पर बढ़त है:

  • अब्स्ट्रक्शन
  • एन्काप्सुलेशन
  • इनहेरिटेंस
  • पॉलीमॉरफिस्म

आइए इन विशेषताओं को देखें और देखें कि उनका क्या अर्थ है और उन्हें क्या विशिष्ट बनाता है?

अब्स्ट्रक्शन

अमूर्त (अब्स्ट्रक्शन) वस्तु-उन्मुख प्रोग्रामिंग भाषाओं की अवधारणा है जो “केवल आवश्यक विशेषताओं को दिखाता है” और अनावश्यक जानकारी को “छुपाता है”। अमूर्तता का मुख्य उद्देश्य उपयोगकर्ताओं से अनावश्यक विवरणों को छिपाना है। अमूर्त उपयोगकर्ता के लिए केवल प्रासंगिक विवरण दिखाने के लिए एक बड़े पूल से डेटा का चयन कर रहा है। यह प्रोग्रामिंग जटिलता और प्रयासों को कम करने में मदद करता है। यह ओओपी की सबसे महत्वपूर्ण अवधारणाओं में से एक है।

आइए एक उदाहरण पर विचार करके अमूर्तता की अवधारणा को समझें। मान लीजिए कि आप बैंकिंग एप्लिकेशन बनाना चाहते हैं और आपको अपने ग्राहक के बारे में सभी जानकारी एकत्र करने के लिए कहा जाता है। ऐसी संभावनाएं हैं कि आप ग्राहक के बारे में निम्नलिखित जानकारी लेकर आएंगे:

  • नाम
  • पता
  • संपर्क संख्या
  • कर (टैक्स) जानकारी
  • पसंदीदा व्यंजन
  • पसंदीदा पुस्तक
  • पसंदीदा मूवी
  • पसंदीदा अभिनेता

लेकिन, बैंकिंग एप्लिकेशन बनाने के लिए उपरोक्त सभी जानकारी की आवश्यकता नहीं है।

तो, आपको जानकारी के उपरोक्त पूल से अपने बैंकिंग आवेदन के लिए केवल उपयोगी जानकारी का चयन करने की आवश्यकता है। एक बैंकिंग एप्लिकेशन के लिए नाम, पता, संपर्क नंबर, कर जानकारी जैसे डेटा का अर्थ है जो OOPs में एक अमूर्त उदाहरण है।

चूंकि हमने एक बड़े पूल से ग्राहक की जानकारी प्राप्त / चुनी है, इसलिए इस प्रक्रिया को OOPs में एब्सट्रैक्शन कहा जाता है।

हालांकि, निकाले गए एक ही जानकारी का उपयोग आवेदनों की एक विस्तृत श्रृंखला के लिए किया जा सकता है। उदाहरण के लिए, आप सरकारी डेटाबेस, अस्पताल एप्लिकेशन आदि के लिए समान डेटा का उपयोग कम या बिना किसी संशोधन के कर सकते हैं। इसलिए, यह आपका मास्टर डेटा बन जाता है। यह OOPs में एब्सट्रैक्शन का एक फायदा है।

अमूर्तता को कैसे लागू किया जाता है?

आप क्लास का उपयोग करके OOPs में अमूर्तता को लागू कर सकते हैं। एक वर्ग हमें उपलब्ध पहुंच विनिर्देशक का उपयोग करके डेटा सदस्यों और सदस्य कार्यों को समूहित करने में मदद करता है। एक वर्ग (क्लास) तय कर सकता है कि कौन सा डेटा सदस्य बाहरी दुनिया को दिखाई देगा और कौन सा नहीं।

एक्सेस विनिर्देशक ओओपी में अमूर्तन को लागू करने के मुख्य स्तंभ हैं। आप क्लास सदस्यों पर प्रतिबंध लागू करने के लिए इन एक्सेस स्पेसियर्स का उपयोग कर सकते हैं। ये एक्सेस विनिर्देशक हो सकते हैं

  • सार्वजनिक (पब्लिक): किसी वर्ग में सार्वजनिक घोषित किए गए सदस्यों को कार्यक्रम में कहीं से भी पहुँचा जा सकता है।
  • निजी (प्राइवेट): किसी वर्ग में निजी घोषित किए गए सदस्यों को केवल कक्षा के भीतर से ही एक्सेस किया जा सकता है। उन्हें क्लास के बाहर कोड के किसी भी भाग से एक्सेस करने की अनुमति नहीं है।
class implementAbstraction
{
    private:
        int a, b;
    public:
        // method to set values of 
        // private members
        void set(int x, int y)
        {
            a = x;
            b = y;
        }
          
        void display()
        {
            cout<<"a = " <<a << endl;
            cout<<"b = " << b << endl;
        }
};
int main() 
{
    implementAbstraction obj;
    obj.set(10, 20);
    obj.display();
    return 0;
}

आप उपरोक्त कार्यक्रम में देख सकते हैं कि हमें चर और बी को सीधे एक्सेस करने की अनुमति नहीं है, हालांकि, आप मानों को ए और बी में मान सेट करने के लिए फ़ंक्शन सेट () और कॉल डिस्प्ले () को मानों को ए और बी प्रदर्शित करने के लिए कह सकते हैं।

डेटा अमूर्तता के लाभ

  • निम्न-स्तरीय (लो लेवल) कोड लिखने से बचने में उपयोगकर्ता की मदद करता है।
  • कोड दोहराव से बचा जाता है और पुन: प्रयोज्यता बढ़ाता है।
  • उपयोगकर्ता को प्रभावित किए बिना स्वतंत्र रूप से वर्ग के आंतरिक कार्यान्वयन को बदल सकते हैं।
  • किसी एप्लिकेशन या प्रोग्राम की सुरक्षा बढ़ाने में मदद करता है क्योंकि उपयोगकर्ता को केवल महत्वपूर्ण विवरण प्रदान किए जाते हैं।
  • किसी एप्लिकेशन या एप्लिकेशन या प्रोग्राम की सुरक्षा बढ़ाने में मदद करता है क्योंकि उपयोगकर्ता को केवल महत्वपूर्ण विवरण प्रदान किए जाते हैं।

एन्काप्सुलेशन

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

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

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

OOPs में एक क्लासबिल्डिंग ब्लॉक है जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की ओर जाता है। यह एक उपयोगकर्ता-परिभाषित डेटा प्रकार है, जो अपने स्वयं के डेटा सदस्यों और सदस्य कार्यों को रखता है, जिसे उस वर्ग का उदाहरण बनाकर एक्सेस और उपयोग किया जा सकता है। क्लास एक वस्तु के लिए एक खाका की तरह है।

उदाहरण के लिए: कारों की क्लास पर विचार करें। अलग-अलग नामों और ब्रांडों के साथ कई कारें हो सकती हैं लेकिन उनमें से सभी कुछ सामान्य गुणों को साझा करेंगे जैसे कि सभी में 4 पहियों, स्पीड लिमिट, माइलेज रेंज, आदि होंगे। तो यहाँ, कार वर्ग है, और पहियों, गति सीमा, लाभ उनके गुण या डेटा हैं।

क्लास एक उपयोगकर्ता-परिभाषित डेटा-प्रकार है जिसमें डेटा सदस्य और सदस्य फ़ंक्शन होते हैं।

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

क्लास कार के उपरोक्त उदाहरण में, डेटा सदस्य गति सीमा, माइलेज आदि होगा और सदस्य कार्य ब्रेक लगा सकते हैं, गति बढ़ा सकते हैं, आदि।

ऑब्जेक्टक्लास का एक इंस्टैंस है। जब एक क्लास को परिभाषित किया जाता है, तो कोई भी स्मृति आवंटित नहीं की जाती है लेकिन जब इसे तत्काल किया जाता है (अर्थात कोई वस्तु बनाई जाती है) तो स्मृति आवंटित की जाती है।

जब एक वर्ग परिभाषित किया जाता है, तो केवल ऑब्जेक्ट के लिए विनिर्देश परिभाषित किया जाता है; कोई मेमोरी या भंडारण आवंटित नहीं किया गया है। क्लास में परिभाषित डेटा और एक्सेस फ़ंक्शंस का उपयोग करने के लिए, आपको ऑब्जेक्ट बनाने की आवश्यकता होती है। ऊपर दिए गए कोड में, implementAbstration एक क्लास है और obj क्लास की एक वस्तु है, और डेटा – ए और बी और फ़ंक्शन – सेट और डिस्प्ले एक साथ बंधे हैं।

डेटा एनकैप्सुलेशन के लाभ

एनकैप्सुलेशन का उपयोग करने का मुख्य लाभ डेटा की सुरक्षा है। इनकैप्सुलेशन के लाभों में शामिल हैं:

  • एनकैप्सुलेशन ग्राहकों द्वारा किसी वस्तु को अवांछित पहुंच से बचाता है।
  • एनकैप्सुलेशन स्तर के नीचे के जटिल विवरणों को प्रकट किए बिना एक स्तर तक पहुंच की अनुमति देता है।
  • यह मानवीय त्रुटियों को कम करता है।
  • एप्लीकेशन के रखरखाव को सरल करता है।
  • एप्लिकेशन को समझने में आसान बनाता है।

सर्वोत्तम एनकैप्सुलेशन के लिए, ऑब्जेक्ट डेटा लगभग हमेशा निजी या संरक्षित तक सीमित होना चाहिए। यदि आप जनता के लिए पहुँच स्तर सेट करना चुनते हैं, तो सुनिश्चित करें कि आप चुनाव के प्रभावों को समझते हैं।

इनहेरिटेंस

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

सब क्लास: जिस क्लास को दूसरी क्लास से प्रॉपर्टीज़ विरासत में मिलती है, उसे सब क्लास या डिराइव्ड क्लास कहा जाता है।

सुपर क्लास: वह क्लास जिसके गुणों को सब क्लास द्वारा विरासत में लिया जाता है उसे बेस क्लास या पैरेंट क्लास या सुपर क्लास कहा जाता है।

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

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

OOPs में, निम्नलिखित प्रकार के इन्हेरिटेंस हो सकते हैं:

  • सिंगल इनहेरिटेंस: सिंगल इन्हेरिटेंस में, एक वर्ग दूसरे वर्ग (केवल एक वर्ग) तक फैला होता है। उदाहरण के लिए, क्लास डॉग को क्लास एनिमल के गुण इनहेरिटेंस में मिलते हैं। यहां डॉग एक चाइल्ड क्लास है और एनिमल पैरेंट क्लास है।
  • मल्टीपल इनहेरिटेंस: मल्टीपल इनहेरिटेंस में, एक वर्ग एक से अधिक क्लास का विस्तार करता है। उदाहरण के लिए, एक क्लास चमगादड़ क्लास Mammal और WingedAnimal के गुणों को विरासत में मिला है।
  • मल्टीलेवल इनहेरिटेंस: मल्टीलेवल इनहेरिटेंस में, एक क्लास डिराइव्ड क्लास से इनहेरिटेंस में मिलता है। इसलिए, डिराइव्ड क्लास नई क्लास के लिए मूल क्लास बन जाती है। उदाहरण के लिए, क्लास puppy ने क्लास dog के गुणों को इनहेरिटेंस में लिया है जो कि क्लास Animal के गुणों को इनहेरिटेंस में मिला है।
  • पदानुक्रमित (हाईआर्किकल) इनहेरिटेंस: पदानुक्रमित विरासत में, एक वर्ग कई उपवर्गों द्वारा विरासत में मिला है। उदाहरण के लिए, क्लास Dog और Cat को क्लास Animal इनहेरिटेंस में मिला है।
  • हाइब्रिड इनहेरिटेंस: हाइब्रिड इनहेरिटेंस सिंगल और मल्टीपल इनहेरिटेंस का संयोजन है।
ओओपी (OOPs) की शक्तिशाली विशेषताएं
इन्हेरिटेंस के प्रकार

इनहेरिटेंस के लाभ

  • इनहेरिटेंस का मुख्य लाभ यह है कि यह कोड की पुन: प्रयोज्य में मदद करता है। कोड केवल एक बार परिभाषित किए गए हैं और कई बार उपयोग किए जाते हैं।
  • इनहेरिटेंस के माध्यम से बहुत समय और प्रयासों को बचाया जा रहा है।
  • यह प्रोग्राम संरचना को बेहतर बनाता है जो पठनीय हो सकता है।
  • कार्यक्रम की संरचना संक्षिप्त और संक्षिप्त है जो अधिक विश्वसनीय है।
  • कोड डीबग करना आसान है। इनहेरिटेंस प्रोग्राम के बग (त्रुटि) को आसानी से पकड़ने की अनुमति देता है।
  • इनहेरिटेंस परिवर्तन के लिए एप्लिकेशन कोड को अधिक लचीला बनाता है।
  • छोटे, सरल और सरल संकलन इकाइयों में कोड के बेहतर संगठन में इनहेरिटेंस होता है।

पॉलीमॉरफिस्म

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

बहुरूपता का वास्तविक जीवन उदाहरण, एक ही समय में एक व्यक्ति के जीवन में खेलने के लिए अलग-अलग भूमिका हो सकती है। एक ही समय में एक महिला की तरह एक माँ, एक पत्नी, एक कर्मचारी और एक बेटी है। तो एक ही व्यक्ति के पास कई विशेषताएं हैं, लेकिन प्रत्येक को स्थिति और स्थिति के अनुसार लागू करना होगा। बहुरूपता को ओओपी की महत्वपूर्ण विशेषताओं में से एक माना जाता है।

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

अब हम कहते हैं कि हमारे पास क्लास एनिमल के दो उपवर्ग हैं- हॉर्स एंड कैट जो क्लास एनिमल (इनहेरिटेंस के माध्यम से) तक फैली हुई है। हम इस तरह से ध्वनि की एक ही विधि के कार्यान्वयन प्रदान कर सकते हैं:

public class Horse extends Animal{
...
    @Override
    public void sound(){
        System.out.println("Neigh");
    }
}

तथा

public class Cat extends Animal{
...
    @Override
    public void sound(){
        System.out.println("Meow");
    }
}

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

बहुरूपता के लाभ

  • प्रोग्रामर्स कोड का उपयोग बहुरूपता के माध्यम से किया जा सकता है।
  • एकाधिक डेटा प्रकारों के लिए एक एकल चर के नाम (वेरिएबल नेम) का समर्थन करता है।
  • विभिन्न क्रियाओं के बीच युग्मन को कम करता है।

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>