में एनकैप्सुलेशन Java

एनकैप्सुलेशन क्या है? Java?

में एनकैप्सुलेशन Java एक तंत्र है जो चर (डेटा) और विधियों (कोड) को एक इकाई के रूप में एक साथ लपेटता है। यह सूचना विवरण छिपाने और ऑब्जेक्ट के डेटा और व्यवहार की सुरक्षा करने की प्रक्रिया है। यह चार महत्वपूर्ण OOP अवधारणाओं में से एक है। एनकैप्सुलेट क्लास का परीक्षण करना आसान है, इसलिए यह यूनिट परीक्षण के लिए भी बेहतर है।

क्लिक करें यहाँ उत्पन्न करें यदि वीडियो उपलब्ध न हो

एनकैप्सुलेशन सीखें Java उदाहरण के साथ

एनकैप्सुलेशन क्या है, इसे विस्तार से समझने के लिए जमा और शेष राशि दिखाने के तरीकों के साथ निम्नलिखित बैंक खाता वर्ग पर विचार करें

class Account {
    private int account_number;
    private int account_balance;

    public void show Data() {
        //code to show data 
    }

    public void deposit(int a) {
        if (a < 0) {
            //show error 
        } else
            account_balance = account_balance + a;
    }
}

मान लीजिए कि कोई हैकर आपके बैंक खाते के कोड तक पहुँच बनाने में कामयाब हो गया है। अब, वह दो तरीकों से आपके खाते में -100 की राशि जमा करने की कोशिश करता है। आइए उसका पहला तरीका या तरीका देखें।

दृष्टिकोण 1: वह कोड में हेराफेरी करके आपके बैंक खाते में एक अमान्य राशि (मान लीजिए -100) जमा करने का प्रयास करता है।

में एनकैप्सुलेशन Java

अब सवाल यह है कि – क्या यह संभव है? आइए जांच करें। आम तौर पर, किसी क्लास में एक वैरिएबल को “निजी” के रूप में सेट किया जाता है जैसा कि नीचे दिखाया गया है। इसे केवल क्लास में परिभाषित विधियों के साथ ही एक्सेस किया जा सकता है। कोई अन्य क्लास या ऑब्जेक्ट उन्हें एक्सेस नहीं कर सकता है।

में एनकैप्सुलेशन Java

यदि कोई डेटा सदस्य निजी है, तो इसका मतलब है कि इसे केवल उसी क्लास के भीतर ही एक्सेस किया जा सकता है। कोई भी बाहरी क्लास किसी अन्य क्लास के निजी डेटा सदस्य या वेरिएबल तक नहीं पहुँच सकता। इसलिए हमारे मामले में हैकर आपके खाते में -100 की राशि जमा नहीं कर सकता।

में एनकैप्सुलेशन Java

दृष्टिकोण १हैकर का पहला प्रयास राशि जमा करने में विफल रहा। इसके बाद, वह "जमा" विधि का उपयोग करके -100 राशि जमा करने का प्रयास करता है।

में एनकैप्सुलेशन Java

लेकिन विधि कार्यान्वयन में नकारात्मक मानों की जांच होती है। इसलिए दूसरा तरीका भी विफल हो जाता है।

में एनकैप्सुलेशन Java

इस प्रकार, आप कभी भी अपना डेटा किसी बाहरी पक्ष को नहीं दिखाते। जिससे आपका एप्लिकेशन सुरक्षित हो जाता है।

में एनकैप्सुलेशन Java

पूरे कोड को एक कैप्सूल के रूप में माना जा सकता है, और आप केवल संदेशों के माध्यम से ही संवाद कर सकते हैं। इसलिए इसका नाम एनकैप्सुलेशन है।

डेटा छिपाना Java

डेटा छिपाना Java यह किसी क्लास के वेरिएबल्स को अन्य क्लासों से छिपाता है। इसे केवल वर्तमान क्लास के मेथड के माध्यम से ही एक्सेस किया जा सकता है। यह उपयोगकर्ताओं से कार्यान्वयन संबंधी विवरणों को छुपाता है। लेकिन डेटा छुपाने से कहीं अधिक, इसका उद्देश्य बेहतर प्रबंधन या समूह निर्माण है।ping संबंधित डेटा का। इसमें कम स्तर का एनकैप्सुलेशन प्राप्त करने के लिए Java, आप “संरक्षित” या “सार्वजनिक” जैसे संशोधक का उपयोग कर सकते हैं। एनकैप्सुलेशन के साथ, डेवलपर्स कोड के एक हिस्से को दूसरे को प्रभावित किए बिना आसानी से बदल सकते हैं।

गेट्टर और सेटर Java

गेट्टर और सेटर Java वे दो पारंपरिक विधियाँ हैं जिनका उपयोग किसी चर के मानों को पुनः प्राप्त करने और अद्यतन करने के लिए किया जाता है। इनका उपयोग मुख्य रूप से चर मानों को बनाने, संशोधित करने, हटाने और देखने के लिए किया जाता है। सेटर विधि का उपयोग मानों को अद्यतन करने के लिए किया जाता है और गेट्टर विधि का उपयोग मानों को पढ़ने या पुनः प्राप्त करने के लिए किया जाता है। इन्हें एक्सेसर और म्यूटेटर के रूप में भी जाना जाता है।

निम्नलिखित कोड गेट्टर और सेटर विधियों का एक उदाहरण है:

class Account{ 
private int account_number;
private int account_balance; 
    // getter method
	public int getBalance() {
        return this.account_balance;
    }
    // setter method
	public void setNumber(int num) {
        this.account_number = num;
    }
}

उपरोक्त उदाहरण में, getBalance() विधि एक गेट्टर विधि है जो चर account_balance का मान पढ़ती है और setNumber() विधि एक सेटर विधि है जो चर account_number के लिए मान सेट या अद्यतन करती है।

Abstracएनकैप्सुलेशन बनाम एनकैप्सुलेशन

अक्सर एनकैप्सुलेशन को गलत समझा जाता है Abstracउत्पादनआइये अध्ययन करें-

  • एनकैप्सुलेशन का संबंध “कैसे” किसी कार्यक्षमता को प्राप्त करने से है
  • Abstracशिक्षण का मुख्य उद्देश्य यह बताना है कि कोई कक्षा "क्या" कर सकती है।

इस अंतर को समझने के लिए एक सरल उदाहरण मोबाइल फोन है। जहां सर्किट बोर्ड में मौजूद जटिल लॉजिक को टच स्क्रीन में समाहित किया जाता है, वहीं इंटरफ़ेस उपयोगकर्ताओं को प्रदान किया जाता है।tracइसे बाहर निकालो।

एनकैप्सुलेशन के लाभ Java

  • एनकैप्सुलेशन डेटा को उसकी संबंधित कार्यात्मकताओं के साथ बांधना है। यहाँ कार्यात्मकताओं का अर्थ है “विधि” और डेटा का अर्थ है “चर”
  • इसलिए हम वेरिएबल और मेथड्स को एक ही स्थान पर रखते हैं। वह स्थान है "क्लास"। क्लास एनकैप्सुलेशन का आधार है।
  • - Java एनकैप्सुलेशन, आप अपने कोड में महत्वपूर्ण डेटा सदस्यों को छिपा सकते हैं (पहुंच को प्रतिबंधित कर सकते हैं), जिससे सुरक्षा में सुधार होता है
  • जैसा कि हमने पहले चर्चा की थी, यदि किसी डेटा सदस्य को "निजी" घोषित किया जाता है, तो उसे केवल उसी क्लास के भीतर ही एक्सेस किया जा सकता है। कोई भी बाहरी क्लास किसी अन्य क्लास के डेटा सदस्य (चर) को एक्सेस नहीं कर सकता है।
  • हालाँकि, यदि आपको इन चरों तक पहुँचने की आवश्यकता है, तो आपको इसका उपयोग करना होगा सार्वजनिक “गेट्टर” और “सेट्टर” तरीकों.

इस पोस्ट को संक्षेप में इस प्रकार लिखें: