Object Oriented Programming (OOPs) Concept in Java
जैसा कि नाम से पता चलता है, Object-Oriented Programming या OOPs उन Languages को संदर्भित करता है जो Programming में Objects का उपयोग करती हैं। Object-Oriented Programming का उद्देश्य Programming में real-world entities जैसे- inheritance, hiding, polymorphism etc आदि को Implement करना है। OOP का मुख्य उद्देश्य Data और उन पर काम करने वाले Functions को एक साथ बांधना है ताकि Code का कोई अन्य Part उस Function को छोड़कर इस Data तक नहीं पहुंच सके।
OOPs Concepts:
- Class
- Object
- Encapsulation
- Abstraction
- Polymorphism
- Inheritance
- Method
- Message Passing
Class:-
Collection of objects is called class. It is a logical entity. एक Class एक User-defined Blueprint या Prototype है जिससे Objects बनाए जाते हैं। यह Properties या methods के एक Set को Represents करता है जो एक प्रकार की सभी Objects के लिए Common हैं। In general, class declarations में इन Components को निम्नलिखित Order में शामिल किया जा सकता है:
- Modifiers: एक Class Public हो सकता है या Default Access हो सकती है
- Class name: Name एक initial letter से शुरू होना चाहिए ।
- Superclass(if any): Keyword के Extends से पहले class’s parent (superclass), यदि कोई हो। एक Class केवल एक Parents (Subclass) को extend कर सकता है।
- Interfaces(if any): Class द्वारा interfaces implemented की comma-separated list , यदि कोई हो, keyword implements से पहले। एक Class एक से अधिक Interface को Implement कर सकता है।
- Body: Brackets से घिरा Class Body, { }
Objects:-
यह Object Oriented Programming की एक Basic Unit है और Real life entities को Represent करता है। एक Typical Java Program कई Object बनाता है, जैसा कि आप जानते हैं, Methods को लागू करके Interact करते हैं। एक Objects से मिलकर बनता है:
- State:- यह किसी Object की attributes द्वारा दर्शाया जाता है। यह किसी वस्तु के Properties को भी दर्शाता है।
- Behavior:- यह किसी Object की Methods द्वारा Represent होता है। यह Other Objects के साथ किसी Object की Response को भी दर्शाता है।
- Identity:- यह एक Object को एक Unique नाम देता है और एक Object को Other Objects के साथ Interact करने में सक्षम बनाता है।
Examples of an Objects:
Identity | States/Attributes | Behaviors |
Name of Dogs | Breed | Bark |
Age | Sleep | |
Color | Eat |
Encapsulation:-
Encapsulation को एक Unit के तहत Data के Wrapping के रूप में Define किया गया है। यह वह Mechanism है जो Code को एक साथ बांधता है और डेटा में Manipulate करता है। Encapsulation के बारे में सोचने का एक और तरीका है, यह एक सुरक्षा कवच है जो Data को इस shield के बाहर Code द्वारा Access करने से रोकता है।
- Technically Encapsulation में, किसी Class के Variable या Data को किसी Other Class से Hide किया जाता है और केवल अपनी Class के किसी भी Member Function के माध्यम से पहुँचा जा सकता है जिसमें उन्हें declare किया जाता है।
- Encapsulation की तरह, एक Class में Data Other Classes से hidden होता है, इसलिए इसे Data-hiding के रूप में भी जाना जाता है।
- Class में सभी Variable को निजी घोषित करके और चर के मूल्यों को सेट करने और प्राप्त करने के लिए कक्षा में सार्वजनिक विधियों को लिखकर एनकैप्सुलेशन प्राप्त किया जा सकता है।
Abstraction:-
Abstraction वह Property है जिसके Base पर User को केवल आवश्यक Details Display किए जाते हैं। User को Insignificant या non-insignificant Units Display नहीं की जाती हैं। उदाहरण: एक Car को उसके Individual Components के बजाय एक Car के रूप में देखा जाता है। Data Abstraction को अप्रासंगिक विवरणों को अनदेखा करते हुए किसी वस्तु की केवल आवश्यक विशेषताओं की पहचान करने की प्रक्रिया के रूपडेटा में भी परिभाषित किया जा सकता है। किसी वस्तु के गुण और व्यवहार उसे समान प्रकार की अन्य वस्तुओं से अलग करते हैं और वस्तुओं को वर्गीकृत / समूहीकृत करने में भी मदद करते हैं। Car चलाने वाले एक व्यक्ति के Real life के उदाहरण पर विचार करें। आदमी सिर्फ इतना जानता है कि एक्सीलरेटर दबाने से कार की स्पीड बढ़ जाएगी या ब्रेक लगाने से कार रुक जाएगी लेकिन उसे यह नहीं पता कि एक्सीलरेटर को दबाने पर असल में Speed कैसे बढ़ रही है, उसे कार के Inner Mechanism के बारे में पता नहीं है या Car में त्वरक, ब्रेक आदि का कार्यान्वयन। यही Abstraction है। Java में, Abstraction Interface और Abstract Classes द्वारा प्राप्त किया जाता है। हम Interface का उपयोग करके 100% Abstraction प्राप्त कर सकते हैं।
Polymorphism:-
Polymorphism OOPs Programming language की क्षमता को Same नाम वाली entities के बीच कुशलता से अंतर करने के लिए refer करता है। यह Java द्वारा इन entities के Signature और Declaration की मदद से किया जाता है For Examples:-
// Java program to demonstrate Polymorphism // This class will contain // 3 methods with same name, // yet the program will // compile & run successfully public class Sum { // Overloaded sum(). // This sum takes two int parameters public int sum(int x, int y) { return (x + y); } // Overloaded sum(). // This sum takes three int parameters public int sum(int x, int y, int z) { return (x + y + z); } // Overloaded sum(). // This sum takes two double parameters public double sum(double x, double y) { return (x + y); } // Driver code public static void main(String args[]) { Sum s = new Sum(); System.out.println(s.sum(10, 20)); System.out.println(s.sum(10, 20, 30)); System.out.println(s.sum(10.5, 20.5)); } }