जावा ट्यूटोरियल

जावा होम जावा परिचय जावा प्रारंभ करें जावा सिंटेक्स जावा टिप्पणियाँ जावा चर जावा डेटा प्रकार जावा टाइप कास्टिंग जावा ऑपरेटर्स जावा स्ट्रिंग्स जावा मठ जावा बूलियन जावा अगर ... और जावा स्विच जावा जबकि लूप लूप के लिए जावा जावा ब्रेक/जारी रखें जावा सरणी

जावा तरीके

जावा तरीके जावा विधि पैरामीटर्स जावा विधि ओवरलोडिंग जावा स्कोप जावा रिकर्सन

जावा क्लासेस

जावा ओओपी जावा क्लासेस/ऑब्जेक्ट्स जावा क्लास एट्रीब्यूट्स जावा क्लास मेथड्स जावा कंस्ट्रक्टर्स जावा संशोधक जावा एनकैप्सुलेशन जावा पैकेज / एपीआई जावा विरासत जावा बहुरूपता जावा इनर क्लासेस जावा एब्स्ट्रैक्शन जावा इंटरफ़ेस जावा Enums जावा उपयोगकर्ता इनपुट जावा तिथि जावा ऐरेलिस्ट जावा लिंक्डलिस्ट जावा हैश मैप जावा हैशसेट जावा इटरेटर जावा रैपर क्लासेस जावा अपवाद जावा रेगेक्स जावा धागे जावा लैम्ब्डा

जावा फ़ाइल हैंडलिंग

जावा फ़ाइलें जावा फ़ाइलें बनाएँ/लिखें जावा फ़ाइलें पढ़ें जावा फ़ाइलें हटाएं

जावा कैसे करें

दो नंबर जोड़ें

जावा संदर्भ

जावा कीवर्ड जावा स्ट्रिंग तरीके जावा गणित के तरीके

जावा उदाहरण

जावा उदाहरण जावा कंपाइलर जावा व्यायाम जावा प्रश्नोत्तरी जावा प्रमाणपत्र


जावा एनकैप्सुलेशन


कैप्सूलीकरण

Encapsulation का अर्थ यह सुनिश्चित करना है कि "संवेदनशील" डेटा उपयोगकर्ताओं से छिपा हुआ है। इसे प्राप्त करने के लिए, आपको यह करना होगा:

  • वर्ग चर/विशेषताओं को घोषित करेंprivate
  • एक चर के मूल्य तक पहुँचने और अद्यतन करने के लिए सार्वजनिक प्राप्त और सेट विधियाँ प्रदान करेंprivate

प्राप्त करें और सेट करें

आपने पिछले अध्याय से सीखा है कि privateवेरिएबल्स को केवल एक ही क्लास के भीतर एक्सेस किया जा सकता है (बाहरी क्लास के पास इसकी कोई एक्सेस नहीं है)। हालाँकि, यदि हम सार्वजनिक प्राप्त और सेट विधियाँ प्रदान करते हैं, तो उन तक पहुँच संभव है ।

getविधि चर मान लौटाती है, और विधि setमान सेट करती है।

दोनों के लिए सिंटैक्स यह है कि वे या तो getया से शुरू होते हैं set, उसके बाद वेरिएबल के नाम से, ऊपरी मामले में पहले अक्षर के साथ:

उदाहरण

public class Person {
  private String name; // private = restricted access

  // Getter
  public String getName() {
    return name;
  }

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

उदाहरण समझाया गया

विधि चर का getमान लौटाती है name

setविधि एक पैरामीटर ( ) लेती है और इसे वेरिएबल newNameको असाइन करती है । nameकीवर्ड का thisउपयोग वर्तमान वस्तु को संदर्भित करने के लिए किया जाता है।

हालाँकि, जैसा कि nameचर के रूप में घोषित किया गया है private, हम इसे इस वर्ग के बाहर से एक्सेस नहीं कर सकते हैं :

उदाहरण

public class Main {
  public static void main(String[] args) {
    Person myObj = new Person();
    myObj.name = "John";  // error
    System.out.println(myObj.name); // error 
  }
}

यदि चर के रूप में घोषित किया गया था public, तो हम निम्नलिखित आउटपुट की अपेक्षा करेंगे:

John

हालाँकि, जैसा कि हम एक privateचर तक पहुँचने का प्रयास करते हैं, हमें एक त्रुटि मिलती है:

MyClass.java:4: error: name has private access in Person
    myObj.name = "John";
         ^
MyClass.java:5: error: name has private access in Person
    System.out.println(myObj.name);
                  ^
2 errors

इसके बजाय, हम चर को एक्सेस और अपडेट करने के लिए getName()और विधियों का उपयोग करते हैं:setName()

उदाहरण

public class Main {
  public static void main(String[] args) {
    Person myObj = new Person();
    myObj.setName("John"); // Set the value of the name variable to "John"
    System.out.println(myObj.getName());
  }
}

// Outputs "John"


एनकैप्सुलेशन क्यों?

  • वर्ग विशेषताओं और विधियों का बेहतर नियंत्रण
  • वर्ग विशेषताओं को केवल-पढ़ने के लिए बनाया जा सकता है (यदि आप केवल getविधि का उपयोग करते हैं), या केवल-लिखें (यदि आप केवल setविधि का उपयोग करते हैं)
  • लचीला: प्रोग्रामर अन्य भागों को प्रभावित किए बिना कोड के एक भाग को बदल सकता है
  • डेटा की बढ़ी सुरक्षा