"मेरे पसंदीदा छात्र को नमस्कार। अब मैं आपको चरों की दृश्यता के बारे में बताने जा रहा हूँ।"
"हुह? क्या चर अदृश्य हो सकते हैं?"
"नहीं। एक चर की 'दृश्यता', या गुंजाइश, का अर्थ है कि कोड में वे स्थान जहाँ आप उस चर का उल्लेख कर सकते हैं। आप कार्यक्रम में हर जगह कुछ चर का उपयोग कर सकते हैं, लेकिन अन्य का उपयोग केवल उनकी कक्षा के भीतर ही किया जा सकता है, और अभी भी अन्य - केवल एक विधि के भीतर। "
"उदाहरण के लिए, घोषित होने से पहले आप एक चर का उपयोग नहीं कर सकते।"
"यह समझ आता है।"
"यहां कुछ उदाहरण दिए गए हैं:"
┏
┃public class Variables
┃┏
┃┃{
┃┃ private static String TEXT = "The end.";
┃┃ ┗━━━━━━━━━━━━━━┛
┃┃ public static void main (String[] args)
┃┃ ┏ ┗━━━━━━━┛
┃┃ ┃ {
┃┃ ┃ System.out.println("Hi");
┃┃ ┃ String s = "Hi!";
┃┃ ┃ ┏┗━━━━┛
┃┃ ┃ ┃ System.out.println(s);
┃┃ ┃ ┃ if (args != NULL)
┃┃ ┃ ┃ {
┃┃ ┃ ┃ String s2 = s;
┃┃ ┃ ┃ ┗━━━━┛
┃┃ ┃ ┃ ┏
┃┃ ┃ ┃ ┃ System.out.println(s2);
┃┃ ┃ ┃ ┗
┃┃ ┃ ┃ }
┃┃ ┃ ┃ Variables variables = new Variables();
┃┃ ┃ ┃ System.out.println(variables.instanceVariable);
┃┃ ┃ ┃ System.out.println(TEXT);
┃┃ ┃ ┗
┃┃ ┃ }
┃┃ ┗
┃┃ public String instanceVariable;
┃┃ ┗━━━━━━━━━━━━━━━┛
┃┃ public Variables()
┃┃ {
┃┃ instanceVariable = "Instance variable test.";
┃┃ }
┃┃}
┃┗
┗
1. एक विधि में घोषित एक चर इसकी घोषणा की शुरुआत से विधि के अंत तक मौजूद है (दिखाई देता है)।
2. कोड ब्लॉक में घोषित चर कोड ब्लॉक के अंत तक मौजूद रहता है।
3. विधि के भीतर हर जगह एक विधि के पैरामीटर मौजूद हैं।
4. किसी वस्तु में चर उस वस्तु के पूरे जीवनकाल के दौरान मौजूद होते हैं जिसमें वे होते हैं। उनकी दृश्यता को विशेष एक्सेस संशोधक द्वारा भी परिभाषित किया जाता है: सार्वजनिक और निजी ।
5. प्रोग्राम चलने के दौरान पूरे समय स्टेटिक (वर्ग) चर मौजूद रहते हैं। उनकी दृश्यता को एक्सेस संशोधक द्वारा भी परिभाषित किया जाता है।
"मुझे तस्वीरें पसंद हैं। वे सब कुछ स्पष्ट करने में मदद करते हैं।"
"गुड बॉय, एमिगो। मुझे हमेशा से पता था कि तुम एक स्मार्ट लड़के हो।"
"मैं आपको ' एक्सेस मॉडिफायर्स ' के बारे में भी बताने जा रहा हूँ। डरो मत। उनके बारे में कुछ भी जटिल नहीं है। यहाँ आप सार्वजनिक और निजी शब्दों को देख सकते हैं ।"
"मैं डरा नहीं हूँ। बस मेरी आँख फड़क रही है।"
"मुझे आप पर विश्वास है। आप यह प्रबंधित कर सकते हैं कि एक वर्ग के तरीकों और चर को अन्य वर्गों द्वारा (या दृश्यमान) कैसे एक्सेस किया जाता है। आप प्रत्येक विधि या चर के लिए केवल एक एक्सेस संशोधक असाइन कर सकते हैं।
1. सार्वजनिक पहुँच संशोधक।
आप कार्यक्रम में कहीं से भी सार्वजनिक संशोधक के साथ चिह्नित एक चर, विधि या वर्ग का उपयोग कर सकते हैं। यह पहुँच का उच्चतम स्तर है - यहाँ कोई सीमाएँ नहीं हैं।
2. निजी एक्सेस संशोधक।
आप एक चर या निजी संशोधक के साथ चिह्नित एक विधि का उपयोग केवल उस वर्ग से कर सकते हैं जिसमें इसे घोषित किया गया है। अन्य सभी वर्गों के लिए, चिह्नित विधि या चर अदृश्य होगा, जैसे कि यह मौजूद नहीं है। यह क्लोजनेस का उच्चतम स्तर है - केवल अपनी कक्षा के भीतर ही पहुंच।
3. कोई संशोधक नहीं।
यदि कोई चर या विधि किसी संशोधक के साथ चिह्नित नहीं है, तो इसे 'डिफ़ॉल्ट' एक्सेस संशोधक के साथ चिह्नित माना जाता है। इस तरह के वेरिएबल्स और तरीके उन सभी वर्गों के लिए दृश्यमान हैं, जिनमें वे पैकेज घोषित किए गए हैं। और केवल उनके लिए। एक्सेस के इस स्तर को कभी-कभी ' पैकेज-प्राइवेट ' एक्सेस कहा जाता है, क्योंकि वेरिएबल्स और विधियों तक पहुंच पूरे पैकेज के लिए खुली होती है जिसमें उनकी कक्षा होती है।
यहां एक सारणी है जो सारांशित करती है कि हमने क्या चर्चा की है:"
संशोधक | से पहुंच… | ||
---|---|---|---|
खुद का वर्ग | खुद का पैकेज | कोई भी वर्ग | |
निजी | हाँ | नहीं | नहीं |
कोई संशोधक नहीं ( package-private ) | हाँ | हाँ | नहीं |
जनता | हाँ | हाँ | हाँ |
GO TO FULL VERSION