"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > एनकैप्सुलेशन क्या है और इसका उपयोग कैसे करें।

एनकैप्सुलेशन क्या है और इसका उपयोग कैसे करें।

2024-11-08 को प्रकाशित
ब्राउज़ करें:694

What is encapsulation and how to use it.

एनकैप्सुलेशन क्या है?
जावा में इनकैप्सुलेशन का मतलब यह है कि कोई चीज़ कैसे काम करती है, इसका विवरण छिपाकर रखा जाता है और साथ ही दूसरों को इसका उपयोग करने दिया जाता है। आप अपने डेटा (वैरिएबल की तरह) और तरीकों (फ़ंक्शन की तरह) को एक इकाई में समूहित करते हैं, जिसे क्लास कहा जाता है। हर किसी को सीधे अपने डेटा तक पहुंचने की अनुमति देने के बजाय, आप यह नियंत्रित करने के लिए तरीके (गेटर्स और सेटर्स) प्रदान करते हैं कि इसे कैसे एक्सेस किया जाए या बदला जाए। इस तरह, आप अपने डेटा की सुरक्षा करते हैं और अपने कोड को साफ और व्यवस्थित रखते हैं, बिना किसी को आंतरिक कामकाज में गड़बड़ी किए, जब तक कि आप ऐसा न चाहें।

इसका उपयोग कैसे करना है
जावा में एनकैप्सुलेशन का उपयोग करने के लिए, आप निजी फ़ील्ड के साथ एक क्लास बनाते हैं और उन फ़ील्ड तक पहुंचने और संशोधित करने के लिए सार्वजनिक तरीके (जैसे गेटर्स और सेटर्स) प्रदान करते हैं। यह सुनिश्चित करता है कि डेटा को केवल नियंत्रित तरीके से ही बदला जा सकता है। उदाहरण के लिए, यदि आप एक व्यक्ति वर्ग बनाना चाहते हैं जहां नाम और उम्र निजी हैं, तो आप मूल्यों को पुनः प्राप्त करने के लिए गेटर्स का उपयोग करेंगे और उन्हें अपडेट करने के लिए सेटर्स का उपयोग करेंगे। यहां बताया गया है कि आप यह कैसे कर सकते हैं:

public class Person {
    // Private fields
    private String name;
    private int age;

    // Constructor
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

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

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

    // Getter for age
    public int getAge() {
        return age;
    }

    // Setter for age
    public void setAge(int age) {
        if(age > 0) { // Simple validation
            this.age = age;
        } else {
            System.out.println("Age must be positive.");
        }
    }
}

// Using the Person class
public class Main {
    public static void main(String[] args) {
        Person person = new Person("John", 25);

        // Accessing fields using getters
        System.out.println(person.getName()); // Output: John
        System.out.println(person.getAge());  // Output: 25

        // Modifying fields using setters
        person.setName("Jane");
        person.setAge(30);

        System.out.println(person.getName()); // Output: Jane
        System.out.println(person.getAge());  // Output: 30
    }
}

आइए इसे तोड़ें
आइए कोड को तोड़ें और प्रत्येक अनुभाग को चरण दर चरण समझाएं:

1. निजी क्षेत्रों के साथ वर्ग परिभाषा
public class Person {
    // Private fields
    private String name;
    private int age;
}

स्पष्टीकरण:

यह व्यक्ति वर्ग है जहां हम दो निजी फ़ील्ड परिभाषित करते हैं: नाम (एक स्ट्रिंग) और आयु (एक इंट)। इन क्षेत्रों को निजी बनाकर, हम यह सुनिश्चित करते हैं कि कोई अन्य वर्ग उन तक सीधे पहुंच या संशोधन नहीं कर सके। यह इनकैप्सुलेशन का मूल विचार है - किसी वस्तु की आंतरिक स्थिति को छिपाना।

2. निर्माता
    // Constructor
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

स्पष्टीकरण:

पर्सन ऑब्जेक्ट बनने पर कंस्ट्रक्टर उसे इनिशियलाइज़ करता है। यह दो पैरामीटर लेता है, नाम और उम्र, और इन मानों को निजी फ़ील्ड में निर्दिष्ट करता है। यह सुनिश्चित करता है कि जब कोई नया व्यक्ति ऑब्जेक्ट बनाया जाता है, तो वह वैध डेटा से शुरू होता है।

3. गेट्टर और सेटर के लिए
    // Getter for name
    public String getName() {
        return name;
    }

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

स्पष्टीकरण:

पर्सन ऑब्जेक्ट बनने पर कंस्ट्रक्टर उसे इनिशियलाइज़ करता है। यह दो पैरामीटर लेता है, नाम और उम्र, और इन मानों को निजी फ़ील्ड में निर्दिष्ट करता है। यह सुनिश्चित करता है कि जब कोई नया व्यक्ति ऑब्जेक्ट बनाया जाता है, तो वह वैध डेटा से शुरू होता है।

4. उम्र के लिए गेटर और सेटर (सत्यापन के साथ)
    // Getter for age
    public int getAge() {
        return age;
    }

    // Setter for age
    public void setAge(int age) {
        if (age > 0) { // Simple validation
            this.age = age;
        } else {
            System.out.println("Age must be positive.");
        }
    }

स्पष्टीकरण:

गेटर getAge() उसी तरह काम करता है जैसे नाम के लिए, आयु फ़ील्ड तक पहुंच की अनुमति देता है।
सेटर setAge() न केवल आयु फ़ील्ड में संशोधन की अनुमति देता है बल्कि एक सत्यापन जांच भी जोड़ता है। यदि शर्त यह सुनिश्चित करती है कि आयु केवल तभी निर्धारित की जाती है जब यह एक सकारात्मक संख्या हो। यदि कोई अमान्य आयु प्रदान की जाती है (एक नकारात्मक संख्या की तरह), तो सेटर अपडेट को रोकता है और इसके बजाय एक संदेश प्रिंट करता है। यह इस बात का उदाहरण है कि कैसे एनकैप्सुलेशन आपको यह नियंत्रित करने देता है कि किस प्रकार का डेटा सेट किया जा सकता है।

5. व्यक्ति वर्ग का उपयोग करना
// Using the Person class
public class Main {
    public static void main(String[] args) {
        Person person = new Person("John", 25);

        // Accessing fields using getters
        System.out.println(person.getName()); // Output: John
        System.out.println(person.getAge());  // Output: 25

        // Modifying fields using setters
        person.setName("Jane");
        person.setAge(30);

        System.out.println(person.getName()); // Output: Jane
        System.out.println(person.getAge());  // Output: 30
    }
}

स्पष्टीकरण:

इस अनुभाग में, हम कंस्ट्रक्टर का उपयोग करके एक व्यक्ति ऑब्जेक्ट (व्यक्ति) बनाते हैं। कंस्ट्रक्टर प्रारंभिक नाम "जॉन" और उम्र 25 निर्धारित करता है।

फिर, हम नाम और उम्र के मानों को प्रिंट करने के लिए गेटर्स (getName() और getAge()) का उपयोग करते हैं। उसके बाद, हम मानों को अद्यतन करने के लिए सेटर्स (सेटनाम() और सेटएज()) का उपयोग करते हैं। अंत में, अद्यतन मान पुनः गेटर्स का उपयोग करके मुद्रित किए जाते हैं।

क्रिया में एनकैप्सुलेशन के मुख्य बिंदु:

  • डेटा सुरक्षा:

    निजी फ़ील्ड को कक्षा के बाहर से सीधे एक्सेस या संशोधित नहीं किया जा सकता है।

  • नियंत्रित पहुंच:

    गेटर्स और सेटर्स निजी क्षेत्रों तक पहुंचने और उन्हें संशोधित करने का एक नियंत्रित तरीका प्रदान करते हैं।

  • मान्यता:

    आयु के लिए सेटर दर्शाता है कि आप डेटा को अमान्य इनपुट से बचाने के लिए नियमों को कैसे लागू कर सकते हैं (उदाहरण के लिए, आयु सकारात्मक होनी चाहिए)।

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/ife_oluwa/what-is-encapsulation-and-how-to-use-it-207d?1 यदि कोई उल्लंघन है, तो कृपया हटाने के लिए स्टडी_गोलंग@163.com पर संपर्क करें। यह
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3