Java Encapsulation

Java Encapsulation को एक single unit के तहत डेटा (variables और methods) के रैपिंग के लिए उपयोग किया जाता है। Encapsulation के बारे में अगर दसरे तारिके से देखे तो यह एक सुरक्षा कवच है जो डेटा को इस शील्ड के बाहर के code द्वारा एक्सेस किए जाने से रोकता है। Encapsulation का अर्थ यह सुनिश्चित करना है कि "sensitive" डेटा users से छिपा हुआ हो। जावा में encapsulation प्राप्त करने के लिए हमे ये करना होगा की:

  • किसी class के variables को private घोषित करना होगा।
  • Variable के value को access और modify करने के लिए public setter और getter methods प्रदान करना होगा।

Encapsulation में, एक class के variables अन्य classes से छिपे रहेंगे, और केवल उनके वर्तमान class के methods के माध्यम से ही access किया जा सकता है। इसलिए, इसे डेटा छिपाने के रूप में भी जाना जाता है।

Encapsulation चार fundamental OOP concepts में से एक है। अन्य तीन Inheritance, Polymorphism और Abstraction हैं।

इसको इस तरह से समझे है, जैसे एक Gastritis की कैप्सूल में कई components होती है। जिसे खाने वाले (यूजर) को जानने के जरूरत नहीं होता है, एक यूजर के लिए वह केवल एक कैप्सूल ही काफ़ी होता है।

Java Encapsulation

Get and Set Method

पिछले chapter से हमने देखा कि private variables को केवल उसी class के अंदर ही एक्सेस किया जा सकता है। हालाँकि, यदि हम public get और set methods प्रदान करते हैं, तो private variables का एक्सेस भी संभव है।

नीचे दिया एक उदाहरण है जो दर्शाता है कि Java में get और set methods का प्रयोग करके encapulation कैसे प्राप्त करें:

Example Encapsulation: Getter and Setter Methods
public class Student {

  // Private data menber
  private String name;
  private int roll;

  // Public Getter and setter methods
  public String getName() {
    return name;
  }

  public void setName(String newName) {
    this.name = newName;
  }

  public int getRoll() {
    return roll;
  }

  public void setRoll(int newRoll) {
    this.roll = newRoll;
  }
}
उद्धारण को समझते है

Step 1: हमने एक public क्लास बनाया Student, और उसके अंदर दो private variable name और roll बनाया। अब जैसे की हम जानते हैं कि private variables को केवल उसी class के अंदर ही एक्सेस किया जा सकता है।

Step 2: लेकिन अब हम Student क्लास के private variable को उस क्लास के बहार से एक्सेस करना चाहते हैं जो की संभव नहीं है।

Step 3: अब java ने इसका समाधान निकाला जो की है get और set method।

Step 4: get method, variable name और roll का value को return करती है।

Step 5: set method एक पैरामीटर (newName) और (newRoll) लेती है और इसे name और roll variable लिए असाइन करती है। this कीवर्ड की मदद से जिसका का उपयोग वर्तमान object को refer करने के लिए किया जाता है। जिस्का मतलब है कि newName ही name है और newRoll ही roll है।

नीचे हम एक उदाहरण देखेंगे जहां पर हम Student क्लास के private variable को एक्सेस करने की कोशिश करेंगे।

Example trying to access variable from Student class
public class Exam {

  public static void main(String[] args) {
    // Creating instance of Student class
    Student myObj = new Student();

    // Setting values through setter methods
    myObj.name("Vikram Prasad"); // Error
    myObj.roll(2450); // Error

    // Getting value through getter methods
    System.out.println(myObj.name() + " roll no is: " + myObj.roll()); // Error
  }
}

जैसे की हम जानते हैं कि private variables को केवल उसी class के अंदर ही एक्सेस किया जा सकता है। इसीलिए हम यहा पर name और roll variable को एक्सेस नहीं कर पा रहे हैं।

इसिलिए set method की मदद से name और roll variable को सेट करता है और get method से उसे एक्सेस कर रहे हैं जो this कीवर्ड की मदद से set methods name variable को refer करता है।

Example accessing variable from Student class
public class Exam {

  public static void main(String[] args) {
    // Creating instance of Student class
    Student myObj = new Student();

    // Setting values through setter methods
    myObj.setName("Vikram Prasad");
    myObj.setRoll(2450);

    // Getting value through getter methods
    System.out.println(myObj.getName() + " roll no is: " + myObj.getRoll());
  }
}
// Result: Vikram Prasad roll no is: 2450

Benefits of Java Encapsulation

  • एक class के fields को read-only या write-only के लिए बनाया जा सकता है।
  • Flexible: प्रोग्रामर अन्य parts को affect किए बिना, कोड के एक हिस्से को बदल सकता है।
  • Data Hiding: Users को क्लास के inner implementation के बारे में कोई जानकारी नहीं होगी।
Article By: Brajlal Prasad
Created on: 18 Feb 2023  3694  Views
 Print Article
Report Error

If you want to report an error, or any suggestion please send us an email to [email protected]