जावा एक्सेस मॉडिफायर (उदाहरण के साथ)

इस ट्यूटोरियल में, हम जावा एक्सेस मोडिफायर, इसके प्रकार और उदाहरणों की मदद से इनका उपयोग करने के बारे में जानेंगे।

एक्सेस संशोधक क्या हैं?

जावा में, एक्सेस मॉडिफायर का उपयोग कक्षाओं, इंटरफेस, चर, विधियों, निर्माणकर्ताओं, डेटा सदस्यों और सेटर विधियों की पहुंच (दृश्यता) सेट करने के लिए किया जाता है। उदाहरण के लिए,

 class Animal ( public void method1() (… ) private void method2() (… ) )

उपरोक्त उदाहरण में, हमने 2 विधियाँ घोषित की हैं: method1 () और method2 ()। यहाँ,

  • Method1 है public- इसका मतलब है कि इसे अन्य वर्गों द्वारा एक्सेस किया जा सकता है।
  • Method2 है private- इसका मतलब है कि इसे अन्य वर्गों द्वारा एक्सेस नहीं किया जा सकता है।

कीवर्ड नोट करें publicऔर private। ये जावा में एक्सेस मॉडिफायर हैं। उन्हें दृश्यता संशोधक के रूप में भी जाना जाता है।

नोट : आप गेट्स विधियों के एक्सेस संशोधक को सेट नहीं कर सकते।

एक्सेस संशोधक के प्रकार

इससे पहले कि आप पहुँच संशोधक के प्रकारों के बारे में जानें, सुनिश्चित करें कि आप जावा संकुल के बारे में जानते हैं।

जावा में चार पहुँच संशोधक खोजशब्द हैं और वे हैं:

संशोधन करनेवाला विवरण
चूक घोषणाएँ केवल पैकेज (पैकेज निजी) के भीतर दिखाई देती हैं
निजी घोषणाएं केवल कक्षा के भीतर दिखाई देती हैं
संरक्षित घोषणाएँ पैकेज या सभी उपवर्गों में दिखाई देती हैं
सह लोक घोषणाएं हर जगह दिखाई देती हैं

डिफ़ॉल्ट पहुँच संशोधक

यदि हम वर्गों, विधियों, चर आदि के लिए स्पष्ट रूप से कोई एक्सेस संशोधक निर्दिष्ट नहीं करते हैं, तो डिफ़ॉल्ट रूप से डिफ़ॉल्ट एक्सेस संशोधक माना जाता है। उदाहरण के लिए,

 package defaultPackage; class Logger ( void message()( System.out.println("This is a message"); ) )

यहां, लॉगर वर्ग में डिफ़ॉल्ट एक्सेस संशोधक है। और वर्ग उन सभी वर्गों के लिए दिखाई देता है जो डिफ़ॉल्ट पैकेज पैकेज से संबंधित हैं। हालाँकि, अगर हम डिफॉल्टपैक के बाहर किसी अन्य वर्ग में लकड़हारा वर्ग का उपयोग करने की कोशिश करते हैं, तो हमें एक संकलन त्रुटि मिलेगी।

निजी एक्सेस संशोधक

जब चर और विधियाँ घोषित की जाती हैं private, तो उन्हें कक्षा से बाहर नहीं पहुँचा जा सकता है। उदाहरण के लिए,

 class Data ( // private variable private String name; ) public class Main ( public static void main(String() main)( // create an object of Data Data d = new Data(); // access private variable and field from another class d.name = "Programiz"; ) )

उपर्युक्त उदाहरण में, हमने एक निजी चर नाम और एक निजी विधि नाम घोषित किया है display()। जब हम प्रोग्राम चलाते हैं, तो हमें निम्न त्रुटि मिलेगी:

 Main.java:18: error: name has private access in Data d.name = "Programiz"; ^

त्रुटि उत्पन्न होती है क्योंकि हम मुख्य वर्ग से निजी चर और डेटा वर्ग की निजी पद्धति तक पहुंचने का प्रयास कर रहे हैं।

आप सोच रहे होंगे कि क्या होगा अगर हमें उन निजी चरों को एक्सेस करने की आवश्यकता है। इस मामले में, हम गेटर्स और सेटर्स विधि का उपयोग कर सकते हैं। उदाहरण के लिए,

 class Data ( private String name; // getter method public String getName() ( return this.name; ) // setter method public void setName(String name) ( this.name= name; ) ) public class Main ( public static void main(String() main)( Data d = new Data(); // access the private variable using the getter and setter d.setName("Programiz"); System.out.println(d.getName()); ) )

आउटपुट :

 नाम है Programiz

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

यहां, हमने setName()चर का उपयोग करने के लिए सेटर विधि ( getName()) का उपयोग किया है और चर तक पहुंचने के लिए गेटर विधि ( ) का उपयोग किया है।

हमने thisवर्ग के चर को संदर्भित करने के लिए setName () के अंदर कीवर्ड का उपयोग किया है । इस कीवर्ड के बारे में अधिक जानने के लिए, जावा इस कीवर्ड पर जाएँ।

नोट : हम जावा में कक्षाओं और इंटरफेस को निजी घोषित नहीं कर सकते। हालाँकि, नेस्टेड वर्गों को निजी घोषित किया जा सकता है। अधिक जानने के लिए, जावा नेस्टेड और इनर क्लास पर जाएं।

संरक्षित पहुँच संशोधक

जब तरीके और डेटा सदस्य घोषित किए जाते हैं protected, तो हम उन्हें एक ही पैकेज के साथ-साथ उपवर्गों से भी एक्सेस कर सकते हैं। उदाहरण के लिए,

 class Animal ( // protected method protected void display() ( System.out.println("I am an animal"); ) ) class Dog extends Animal ( public static void main(String() args) ( // create an object of Dog class Dog dog = new Dog(); // access protected method dog.display(); ) )

आउटपुट :

 मैं एक जानवर हूं

उपरोक्त उदाहरण में, हमारे पास एक संरक्षित तरीका है जिसे display()पशु वर्ग के अंदर रखा गया है। डॉग क्लास को एनिमल क्लास विरासत में मिली है। उत्तराधिकार के बारे में अधिक जानने के लिए, जावा वंशानुक्रम पर जाएँ।

हमने तब डॉग क्लास का ऑब्जेक्ट डॉग बनाया। ऑब्जेक्ट का उपयोग करके हमने मूल वर्ग की संरक्षित पद्धति तक पहुंचने का प्रयास किया।

चूँकि संरक्षित विधियाँ बाल वर्गों से प्राप्त की जा सकती हैं, हम डॉग वर्ग से पशु वर्ग की विधि तक पहुँचने में सक्षम हैं।

नोट : हम protectedजावा में कक्षाएं या इंटरफेस घोषित नहीं कर सकते ।

सार्वजनिक पहुँच संशोधक

जब विधियां, चर, वर्ग, और इसी तरह घोषित किए जाते हैं public, तो हम उन्हें कहीं से भी एक्सेस कर सकते हैं। पब्लिक एक्सेस मॉडिफ़ायर में कोई गुंजाइश नहीं है। उदाहरण के लिए,

 // Animal.java file // public class public class Animal ( // public variable public int legCount; // public method public void display() ( System.out.println("I am an animal."); System.out.println("I have " + legCount + " legs."); ) ) // Main.java public class Main ( public static void main( String() args ) ( // accessing the public class Animal animal = new Animal(); // accessing the public variable animal.legCount = 4; // accessing the public method animal.display(); ) )

आउटपुट :

मैं एक जानवर हूं। मेरे 4 पैर हैं।

यहाँ,

  • पब्लिक क्लास एनिमल को मेन क्लास से एक्सेस किया जाता है।
  • सार्वजनिक चर लेगाउंट मेन क्लास से एक्सेस किया जाता है।
  • सार्वजनिक विधि display()मुख्य वर्ग से एक्सेस की जाती है।

एक्सेस मॉडिफ़ायर ने एक आकृति में संक्षेप किया

जावा में सभी एक्सेस संशोधक की पहुंच

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

दिलचस्प लेख...