OOP Full Form in Hindi



OOP Full Form in Hindi, Full Form in Hindi OOP, OOP Meaning in Hindi, OOP Full Form, OOP Ka Full Form Kya Hai, OOP का Full Form क्या है, OOP Ka Poora Naam Kya Hai, OOP Meaning in English, OOP Full Form in Hindi, OOP Kya Hota Hai, OOP का Full Form क्या हैं, OOP का फुल फॉर्म क्या है, Full Form of OOP in Hindi, OOP किसे कहते है, OOP का फुल फॉर्म इन हिंदी, OOP का पूरा नाम और हिंदी में क्या अर्थ होता है, OOP का क्या Use है, दोस्तों क्या आपको पता है, OOP की Full Form क्या है, और OOP होता क्या है, अगर आपका answer नहीं है, तो आपको उदास होने की कोई जरुरत नहीं है, क्योंकि आज हम इस पोस्ट में आपको OOP की पूरी जानकारी हिंदी भाषा में देने जा रहे है, तो फ्रेंड्स OOP Full Form in Hindi में और OOP का पूरी इतिहास जानने के लिए इस पोस्ट को लास्ट तक पढ़े.

OOP Full Form in Hindi – ओओपी क्या है ?

OOP की फुल फॉर्म "Object Oriented Programming" होती है. OOP को हिंदी में "वस्तु उन्मुख कार्यकर्म" कहते है. कंप्यूटर विज्ञान में, कोई भी भाषा (जैसे C++ और Java) जो OOPS अवधारणाओं का समर्थन करती है, ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज के रूप में जानी जाती है. ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग सिस्टम की 4 बुनियादी आवश्यकताएं हैं: इनहेरिटेंस, पॉलीमॉर्फिज्म, एनकैप्सुलेशन और एब्स्ट्रैक्शन. Object oriented programming language कहलाने के लिए, एक Language को इन 4 आवश्यकताओं को पूरा करना होता है. Object-oriented programming system में सब कुछ एक ऑब्जेक्ट पर आधारित होता है. एक वस्तु और कुछ नहीं बल्कि एक वास्तविक विश्व इकाई है. प्रक्रियात्मक भाषाओं के विपरीत, जो प्रक्रिया पर केंद्रित है, वस्तु-उन्मुख भाषा वस्तुओं पर आधारित है.

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

OOPS - ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग. OOPS में "S" का अर्थ "सिस्टम" है. वास्तव में ओओपीएस सम्मेलन नामक एक सम्मेलन है और यह "ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज एंड सिस्टम्स" सम्मेलन के लिए है.

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) "ऑब्जेक्ट्स" की अवधारणा पर आधारित एक प्रोग्रामिंग प्रतिमान है, जिसमें डेटा और कोड हो सकते हैं: डेटा फ़ील्ड के रूप में (अक्सर विशेषताओं या गुणों के रूप में जाना जाता है), और Code, Procedures के रूप में (अक्सर विधियों के रूप में जाना जाता है).

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

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

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

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) संबंधित गुणों और व्यवहारों को अलग-अलग ऑब्जेक्ट्स में बंडल करके प्रोग्राम को संरचित करने की एक विधि है. इस ट्यूटोरियल में, आप पायथन में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की मूल बातें सीखेंगे. वैचारिक रूप से, वस्तुएं एक प्रणाली के घटकों की तरह होती हैं. एक प्रोग्राम को फैक्ट्री असेंबली लाइन की तरह समझें. असेंबली लाइन के प्रत्येक चरण में एक सिस्टम घटक कुछ सामग्री को संसाधित करता है, अंततः कच्चे माल को एक तैयार उत्पाद में बदल देता है. एक ऑब्जेक्ट में डेटा होता है, जैसे असेंबली लाइन पर प्रत्येक चरण पर कच्ची या पूर्व-प्रसंस्कृत सामग्री, और व्यवहार, जैसे प्रत्येक असेंबली लाइन घटक करता है.

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

एक्सेस संशोधक: विधि के एक्सेस प्रकार को परिभाषित करता है यानी जहां से इसे आपके एप्लिकेशन में एक्सेस किया जा सकता है. जावा में, 4 प्रकार के एक्सेस स्पेसिफायर हैं.

सार्वजनिक: आपके आवेदन में सभी वर्गों में पहुँचा जा सकता है.

संरक्षित: पैकेज के भीतर पहुंच योग्य जिसमें इसे परिभाषित किया गया है और इसके उपवर्गों में (पैकेज के बाहर घोषित उपवर्गों सहित)

निजी: केवल उस वर्ग के भीतर पहुँचा जा सकता है जिसमें इसे परिभाषित किया गया है.

डिफ़ॉल्ट (किसी भी संशोधक का उपयोग किए बिना घोषित/परिभाषित): उसी वर्ग और पैकेज के भीतर पहुंच योग्य जिसके भीतर इसकी कक्षा परिभाषित की गई है.

वापसी प्रकार: विधि या शून्य द्वारा लौटाए गए मान का डेटा प्रकार यदि कोई मान वापस नहीं करता है.

विधि का नाम: फ़ील्ड नामों के नियम विधि नामों पर भी लागू होते हैं, लेकिन परंपरा थोड़ी अलग है.

पैरामीटर सूची: इनपुट पैरामीटर की अल्पविराम से अलग की गई सूची को उनके डेटा प्रकार के साथ संलग्न कोष्ठक के भीतर परिभाषित किया गया है. यदि कोई पैरामीटर नहीं हैं, तो आपको खाली कोष्ठक () का उपयोग करना चाहिए.

अपवाद सूची: विधि द्वारा आप जिन अपवादों की अपेक्षा करते हैं, वे फेंक सकते हैं, आप इन अपवादों को निर्दिष्ट कर सकते हैं.

विधि शरीर: यह ब्रेसिज़ के बीच संलग्न है. अपने इच्छित कार्यों को करने के लिए आपको जिस कोड को निष्पादित करने की आवश्यकता है.

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

अब सीखने की बुनियादी शर्त के साथ OOPS के 4 स्तंभ इस प्रकार हैं. आइए हम ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा की विभिन्न विशेषताओं के बारे में सीखना शुरू करें

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

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

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

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

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

वस्तु-उन्मुख प्रोग्रामिंग के कुछ सिद्धांत क्या हैं?

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

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

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग डेटा विशेषताओं के एक समूह को फ़ंक्शन या विधियों के साथ एक इकाई में जोड़ती है जिसे "ऑब्जेक्ट" कहा जाता है. आमतौर पर, OOP भाषाएँ वर्ग-आधारित होती हैं, जिसका अर्थ है कि एक वर्ग डेटा विशेषताओं को परिभाषित करता है और ऑब्जेक्ट बनाने के लिए ब्लूप्रिंट के रूप में कार्य करता है, जो कि क्लास के उदाहरण हैं. लोकप्रिय वर्ग-आधारित OOP भाषाओं में Java, Python और C++ शामिल हैं. एक ही वर्ग से कई स्वतंत्र वस्तुओं को तत्काल या प्रतिनिधित्व किया जा सकता है और जटिल तरीकों से एक दूसरे के साथ बातचीत कर सकते हैं. एक साधारण उदाहरण एक व्यक्ति का प्रतिनिधित्व करने वाला वर्ग होगा. व्यक्ति वर्ग में व्यक्ति की उम्र, नाम, ऊंचाई आदि जैसी जानकारी का प्रतिनिधित्व करने के लिए विशेषताएँ होंगी. वर्ग परिभाषा में "sayMyName" जैसे कार्य भी हो सकते हैं जो उस व्यक्ति के नाम को स्क्रीन पर प्रिंट कर देगा.

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

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) प्रोग्रामिंग भाषाओं में एक बड़ी और गलत-परिभाषित अवधारणा है और एक जो कई अलग-अलग अर्थों को समाहित करती है क्योंकि विभिन्न भाषाएं अक्सर इसके अपने स्वयं के दृष्टिकोण को लागू करती हैं, अन्य भाषाओं में कार्यान्वयन से समानता और अंतर के साथ.

हालांकि, एक मॉडल ज्यादातर वस्तु-उन्मुख साधनों की लड़ाई "जीता" है, यदि केवल सरासर लोकप्रियता से. यह जावा प्रोग्रामिंग भाषा में उपयोग किया जाने वाला मॉडल है, जो सी ++ द्वारा उपयोग किए जाने वाले के समान है. यहां कुछ defined विशेषताएं दी गई हैं:-

प्रकार व्युत्पत्ति और विस्तार: अधिकांश वस्तु उन्मुख भाषाएं उपयोगकर्ता को व्युत्पन्न प्रकारों में फ़ील्ड जोड़ने की अनुमति देती हैं.

सबटाइपिंग: आधार प्रकार से प्राप्त एक प्रकार की वस्तुओं को, कुछ उदाहरणों में, आधार प्रकार की वस्तुओं के लिए प्रतिस्थापित किया जा सकता है.

रनटाइम बहुरूपता: एक उपप्रोग्राम को कॉल करना, जिसे आमतौर पर एक विधि कहा जाता है, एक वस्तु प्रकार से जुड़ा होता है, वस्तु के सटीक प्रकार के आधार पर रनटाइम पर प्रेषित किया जा सकता है.

एनकैप्सुलेशन: ऑब्जेक्ट अपने कुछ डेटा को छिपा सकते हैं.

एक्स्टेंसिबिलिटी: आपके पैकेज के "बाहरी" या यहां तक ​​​​कि आपकी पूरी लाइब्रेरी के लोग, आपके ऑब्जेक्ट प्रकारों से प्राप्त कर सकते हैं और अपने स्वयं के व्यवहार को परिभाषित कर सकते हैं.

Object oriented Programming से पहले की Ada तारीखें उतनी ही लोकप्रिय थीं जितनी आज हैं. उपरोक्त सूची में से कुछ तंत्र और अवधारणाएं एडा के शुरुआती संस्करण में थीं, इससे पहले कि हम ओओपी को क्या कहते हैं, जोड़ा गया था:-

जैसा कि हमने देखा, एनकैप्सुलेशन को एडा में टाइप स्तर पर लागू नहीं किया गया है, बल्कि पैकेज स्तर पर लागू किया गया है.

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

रनटाइम बहुरूपता को भिन्न अभिलेखों का उपयोग करके लागू किया जा सकता है.

हालांकि, यदि आप प्रकार के रिकॉर्ड और एक्स्टेंसिबिलिटी पर विचार नहीं करते हैं, तो यह सूची टाइप एक्सटेंशन को छोड़ देती है.

एडा के 1995 के संशोधन ने अंतराल को भरने वाली एक विशेषता को जोड़ा, जिसने लोगों को एक आसान फैशन में वस्तु-उन्मुख प्रतिमान का पालन करने की अनुमति दी. इस सुविधा को टैग किए गए प्रकार कहा जाता है.

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की चार मूल बातें -

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में चार बुनियादी अवधारणाएं हैं: एनकैप्सुलेशन, एब्स्ट्रैक्शन, इनहेरिटेंस और पॉलीमॉर्फिज्म. भले ही ये अवधारणाएं अविश्वसनीय रूप से जटिल लगें, फिर भी वे कैसे काम करते हैं, इसके सामान्य ढांचे को समझने से आपको OOP कंप्यूटर प्रोग्राम की मूल बातें समझने में मदद मिलेगी. नीचे, हम इन चार बुनियादी सिद्धांतों की रूपरेखा तैयार करते हैं और वे क्या चाहते हैं:-

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

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

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

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

इनहेरिटेंस

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

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

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