OOPS के कांसेप्ट्स क्या हैं? | स्पष्ट रूप से Android Adda में परिभाषित है

 Hello दोस्तों! आज हम इस पोस्ट में बहुत ही आसान भाषा में Concepts of OOPS in Hindi के बारें में पढेंगे. आप इसे पूरा पढ़िए यह आपको आसानी से समझ आ जायेगा.


OOP का पूरा नाम object-oriented programming (ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग) है। OOPS concepts निम्नलिखित होते है:-

  1. Object
  2. Class
  3. Encapsulation
  4. Abstraction
  5. Inheritance
  6. Polymorphism
  7. 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 भी कहते है।

  1. class Subclass-name extends Superclass-name  
  2. {  
  3.    //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 किया जाता है.

import java.util.Vector;
  
class Producer extends Thread {
  
    // initialization of queue size
    static final int MAX = 7;
    private Vector messages = new Vector();
  
    @Override
    public void run()
    {
        try {
            while (true) {
  
                // producing a message to send to the consumer
                putMessage();
  
                // producer goes to sleep when the queue is full
                sleep(1000);
            }
        }
        catch (InterruptedException e) {
        }
    }
  
    private synchronized void putMessage()
        throws InterruptedException
    {
  
        // checks whether the queue is full or not
        while (messages.size() == MAX)
  
            // waits for the queue to get empty
            wait();
  
        // then again adds element or messages
        messages.addElement(new java.util.Date().toString());
        notify();
    }
  
    public synchronized String getMessage()
        throws InterruptedException
    {
        notify();
        while (messages.size() == 0)
            wait();
        String message = (String)messages.firstElement();
  
        // extracts the message from the queue
        messages.removeElement(message);
        return message;
    }
}
  
class Consumer extends Thread {
    Producer producer;
  
    Consumer(Producer p)
    {
        producer = p;
    }
  
    @Override
    public void run()
    {
        try {
            while (true) {
                String message = producer.getMessage();
  
                // sends a reply to producer got a message
                System.out.println("Got message: " + message);
                sleep(2000);
            }
        }
        catch (InterruptedException e) {
        }
    }
  
    public static void main(String args[])
    {
        Producer producer = new Producer();
        producer.start();
        new Consumer(producer).start();
    }
}

Advantage of OOP in Hindi

इसके लाभ निम्नलिखित होते हैं:-

  1. इसमें program का structure बहुत ही simple होता है जिससे complexity कम होती है.
  2. हमें इसमें सिर्फ एक बार code को लिखने की जरूरत होती है और उसे हम बार-बार use कर सकते हैं.
  3. यह data redundancy प्रदान करता है.
  4. इसमें हम आसानी से code को maintain किया जा सकता है जिससे time की बचत होती है.
  5. object-oriented programming में data hiding और abstarction का प्रयोग किया जाता है जिससे इसमें security बेहतर बन जाती है.
  6. इसमें debugging करनी हो तो इसे आसानी से किया जा सकता है.





Post a Comment

0 Comments
* Please Don't Spam Here. All the Comments are Reviewed by Admin.

Top Post Ad

Below Post Ad