Hello दोस्तों! आज हम इस पोस्ट में बहुत ही आसान भाषा में Concepts of OOPS in Hindi के बारें में पढेंगे. आप इसे पूरा पढ़िए यह आपको आसानी से समझ आ जायेगा.
OOP का पूरा नाम object-oriented programming (ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग) है। OOPS concepts निम्नलिखित होते है:-
- Object
- Class
- Encapsulation
- Abstraction
- Inheritance
- Polymorphism
- Message Passing
Object
ऑब्जेक्ट, class का instance होता है जो कि variable के स्थान पर वास्तविक value को contain किये रहता है।
ऑब्जेक्ट एक बेसिक run-time entity होती है।
सामन्यतया, Object वह प्रत्येक वस्तु होती है जिसको कि पहचाना जा सकें। हमारी आसपास की सारी वस्तुएँ जैसे:-पेन, किताब, कुर्सी, गाडी, टीवी आदि सभी ऑब्जेक्ट्स है।
Example
Create an object called "myObj
" and print the value of x:
public class Main {
int x = 5;
public static void main(String[] args) {
Main myObj = new Main();
System.out.println(myObj.x);
}
}
Class
क्लास एक ही तरह के objects का समूह होता है। जैसे:- आम, अमरुद तथा सेब आदि ये सभी फल है, और ये सभी class fruit के सदस्य हुए।
क्लास यूजर-डिफाइंड डेटा टाइप होता है तथा क्लास data तथा functions का समूह होता है।
public class Main {
int x = 5;
}
Encapsulation
डेटा तथा फंक्शन को एक ही यूनिट में सम्मिलित करना (जोड़ना) Encapsulation कहलाता है। इसमें class के variables प्राइवेट होते हैं और इन्हें class के बाहर direct access नहीं किया जा सकता. Encapsulation को class के रूप में use किया जाता है. एक class में हम data और methods को एक यूनिट के रूप में एक साथ रख सकते हैं.
Java bean पूरी तरह से एक encapsulated class होती है क्योंकि इसमें सभी data members प्राइवेट होते हैं.
Example
Following is an example that demonstrates how to achieve Encapsulation in Java −
/* File name : EncapTest.java */ public class EncapTest { private String name; private String idNum; private int age; public int getAge() { return age; } public String getName() { return name; } public String getIdNum() { return idNum; } public void setAge( int newAge) { age = newAge; } public void setName(String newName) { name = newName; } public void setIdNum( String newId) { idNum = newId; } }
public class RunEncap { public static void main(String args[]) { EncapTest encap = new EncapTest(); encap.setName("James"); encap.setAge(20); encap.setIdNum("12343ms"); System.out.print("Name : " + encap.getName() + " Age : " + encap.getAge()); } }
Abstraction
Abstraction का अर्थ है कि object के केवल आवश्यक जानकारी को प्रदर्शित करना तथा background की जानकारी को छुपाये रखना।
उदाहरण के लिए– जब हम कोई car चलाते है तो हमें यह पता होता है कि जब accelarator को दबायेंगे तो speed बढ़ेगी और जब break दबायेंगे तो Car रुक जायेगी. लेकिन हमें यह नहीं पता होता कि break दबाने से car क्यों रुक जाती है.इसी प्रकार OOPS में complex (कठिन) चीजों को छुपा दिया जाता है और केवल आवश्यक तथा simple चीजों को show किया जाता है. Java में, abstraction को प्राप्त करने के लिए abstract class और interface का प्रयोग किया जाता है.
Example
// Abstract class
abstract class Animal {
// Abstract method (does not have a body)
public abstract void animalSound();
// Regular method
public void sleep() {
System.out.println("Zzz");
}
}
// Subclass (inherit from Animal)
class Pig extends Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
}
class Main {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
Inheritance
inheritance का अर्थ है ‘विरासत’।
जावा में एक क्लास के द्वारा दूसरी क्लास के properties(गुणों) तथा methods को inherit कर लेना inheritance कहलाता है।
वह क्लास जो दूसरी क्लास से derived होती है वह subclass कहलाती है तथा वह क्लास जिससे subclass derived हुई होती है वह super class कहलाती है।
Superclass को हम base class भी कहते है तथा subclass को हम derived class भी कहते है।
- class Subclass-name extends Superclass-name
- {
- //methods and fields
- }
Polymorphism
polymorphism ग्रीक भाषा से लिया गया शब्द है जिसमें poly का अर्थ है many और morphism का अर्थ है forms. तो polymorphism का अर्थ हुआ many forms.
Polymorphism एक ऐसा concept है जिसमें हम एक ही काम को दो भिन्न तरीके से कर सकते है।
जावा में Polymorphism दो तरह की होती है जो निम्न है:-
1:- Compile-time polymorphism (static polymorphism)
2:- Run-time polymorphism (Dynamic polymorphism)
1:- Compile time polymorphism:- Compile time polymorphism को हम method overloading या early binding भी कहते है।
इस polymorphism का अर्थ है कि हम समान नाम के methods को different signatures के साथ declare करते है क्योंकि हम अलग-अलग task को एक ही method name के साथ perform क्र सकते है।
2:- Run-time polymorphism:-इस प्रकार के polymorphism को late binding या dynamic binding या method overriding कहते है।
इस polymorphism का अर्थ है कि हम समान नाम के methods को समान signature के साथ declare करते है।
class Animal {
public void animalSound() {
System.out.println("The animal makes a sound");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("The pig says: wee wee");
}
}
class Dog extends Animal {
public void animalSound() {
System.out.println("The dog says: bow wow");
}
}
Message Passing
Objects एक दूसरे को information (सूचना) send तथा receive करके आपस में communicate करते हैं. objects उसी प्रकार message को send तथा receive करते है जिस प्रकार हम लोग करते हैं.
एक ऑब्जेक्ट के लिए message एक procedure (प्रक्रिया) के लिए request होता है और इसलिए receiving object में एक method को invoke किया जाता है.