Java Tutorial in Hindi
जावा में OOPs Concept क्या है? OOPs Concepts in Java in Hindi
Table of Contents
- परिचय
- जावा में OOPs क्या है? (OOPs in Java in Hindi)
- OOPs Concepts in Java in Hindi
- जावा में OOPs के लाभ (Benefits of OOPs in Java in Hindi)
- जावा OOPs कांसेप्ट के नुकसान
- जावा में अतिरिक्त OOPs कांसेप्ट (Additional OOPs Concepts in Java in Hindi)
ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) एक प्रोग्रामिंग pattern है जो "ऑब्जेक्ट्स" की concept पर आधारित है, जो Classes के उदाहरण हैं जिनमें data and behavior शामिल हैं। ओओपी में, classes का उपयोग objects को परिभाषित करने के लिए किया जाता है, और objects का उपयोग various functions को करने के लिए एक दूसरे के साथ बातचीत करने के लिए किया जाता है।
OOP चार मूलभूत concept पर आधारित है: इनकैप्सुलेशन, इनहेरिटेंस, पॉलीमोर्फिज्म और एब्स्ट्रैक्शन। ये concept डेवलपर्स को मॉड्यूलर, Reusable and maintainable code बनाने की अनुमति देती हैं जिन्हें आसानी से बढ़ाया और Revised किया जा सकता है।
Various रूप से उपयोग की जाने वाली विभिन्न OOP भाषाएँ हैं:-
Python
Java
C#
Ruby
Dart
Go
C++
OOP को प्रोग्रामिंग की एक बेहतर और अधिक कुशल शैली माना जाता है जो आपको complex code आसानी से लिखने और उन्हें प्रभावी ढंग से बनाए रखने में सक्षम बनाता है। इसके चार Main Column- Data एब्स्ट्रैक्शन, एनकैप्सुलेशन, इनहेरिटेंस और पॉलीमोर्फिज्म, प्रोग्रामर को complex problems को हल करने में मदद करते हैं। OOP को प्रोग्रामर्स के बीच लोकप्रिय बनाने वाले अन्य कारण हैं:
यह अपेक्षाकृत बड़े सॉफ़्टवेयर के लिए उपयुक्त है.
उपयोगकर्ताओं द्वारा बोली जाने वाली भाषा और डेवलपर्स द्वारा बोली जाने वाली भाषा के बीच अंतर के रूप में सॉफ़्टवेयर की holistic understanding को बढ़ाता है।
एनकैप्सुलेशन code maintenance को आसान बनाता है। आप तरीकों को समान रखते हुए underlying code को आसानी से बदल सकते हैं।
OOPs की मुख्य विशेषताओं को इसके four pillars or principles के रूप में भी जाना जाता है। वे इस प्रकार हैं:-
Encapsulation
Data Abstraction
Polymorphism
Inheritance
जावा में, ओओपी concepts का उपयोग various real-world units, जैसे Intangibility and inheritance, को प्रोग्रामिंग में लागू करने के लिए किया जाता है। इसका उपयोग डेटा फ़ंक्शंस को बाइंड करके कोड को सुरक्षित करने के लिए भी किया जाता है। यहां OOPs के कुछ और उपयोग दिए गए हैं:
Data hiding
Make programming clear and easy
reduce data redundancy
Facilitating program flexibility through polymorphism
problem-solving को अधिक संक्षिप्त बनाएं
Code reusability through inheritance
किसी complex problem को subproblems में विभाजित करें।
एक pure object-oriented programming language किसी समस्या के भीतर मौजूद हर चीज़ को एक ऑब्जेक्ट के रूप में मानती है। यह primitive types का समर्थन नहीं करता, अन्य विशेषताएं जो एक pure OOP भाषा को संतुष्ट करनी चाहिए वे हैं:
bstraction
Inheritance
Polymorphism
Encapsulation
सभी User-defined and pre-defined प्रकार ऑब्जेक्ट हैं
Objects पर किया जाने वाला operating objects के संपर्क में आने वाली Methods के माध्यम से होना चाहिए
जावा को pure object-oriented programming language के रूप में नहीं गिना जाता है क्योंकि pre-defined data को ऑब्जेक्ट के रूप में नहीं माना जाता है। इस प्रकार, यह pure OOP भाषा होने के लिए आवश्यक सभी conditions को पूरा नहीं करता है।
ओवरलोडिंग एक compile-time polymorphism सुविधा है जिसमें एक ही नाम के साथ दो या दो से अधिक Implementation Methods हैं लेकिन अलग-अलग पैरामीटर हैं। उदाहरणों में Method ओवरलोडिंग और ऑपरेटर ओवरलोडिंग शामिल हैं।
एक प्रकार के रन-टाइम polymorphism और एक महत्वपूर्ण ओओपी concept को ओवरराइड करना। यह entities or sub-classes को उसके parent class द्वारा प्रदान की गई एक specific implementation method की अनुमति देता है।
जब आप कार चलाते हैं तो डेटा एब्स्ट्रैक्शन का एक आदर्श उदाहरण है। जब आप एक्सीलेटर दबाते हैं, तो आपको पता होता है कि गति बढ़ जाएगी लेकिन यह पता नहीं चलता कि यह वास्तव में कैसे होता है। इसलिए, इस मामले में irrelevant details छिपाए गए हैं।
Inheritance पाँच प्रकार का होता है, जो इस प्रकार हैं:
Single Inheritance: यह बेस क्लास से प्राप्त चाइल्ड क्लास है।
मल्टीपल इनहेरिटेंस: यह चाइल्ड क्लास मल्टीपल बेस क्लास से ली गई है।
मल्टीलेवल इनहेरिटेंस: यहां, चाइल्ड क्लास दूसरे क्लास से ली गई है, जो बेस क्लास से ली गई है।
Hierarchical Inheritance: Multiple child classes एक आधार class से प्राप्त होते हैं।
हाइब्रिड इनहेरिटेंस: इसमें ऊपर उल्लिखित कई प्रकार के inheritance शामिल हैं।
structural programming procedural programming का एक subgroup है और इसे OOP का Harbinger माना जाता है। इसमें अलग-अलग मॉड्यूल शामिल हैं जो अच्छी तरह से structured हैं।
यहां ऑब्जेक्ट-ओरिएंटेड और स्ट्रक्चरल प्रोग्रामिंग के बीच कुछ अंतर दिए गए हैं।
Object-Oriented Programming
Structural Programming
यह ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग है जो किसी state and behaviour वाली objects पर निर्मित होती है।
प्रोग्रामों को उनके compatible functions में divided करके एक logical structure प्रदान करता है।
data security प्रदान करते हुए data hiding feature की सुविधा की अनुमति देता है।
data hiding का support नहीं करता, जो कम सुरक्षा प्रदान करता है।
नीचे से ऊपर तक Approach Follows करता है।
ऊपर से नीचे की ओर Approach अपनाता है।
complex problems को solve में सहायक
moderate problems के समाधान में सहायक
complex problems को सुलझाने में सहायक
कोड अधिक importantहै
डेटा के फ्लो को authorized parts तक Limited करता है, जो data security सुनिश्चित करता है।
डेटा के फ्लो पर कोई restrictions नहीं है, और कोई भी डेटा तक पहुंच सकता है।
Code reusability is possible due to polymorphism and inheritance. This reduces code redundancy.
फ़ंक्शंस और लूप के माध्यम से कोड reusable संभव है।
डेटा पर फोकस करता है.
logical structure or process पर ध्यान केंद्रित करता है।
कोड को modify और update करना आसान है।
कोड Amendment OOPs की तुलना में अधिक Difficult है।
अधिक abstraction का अर्थ है अधिक flexibility।
कम abstraction का अर्थ है कम flexibility।