"माझ्या आवडत्या विद्यार्थ्याला नमस्कार. आता मी तुम्हाला व्हेरिएबल्सच्या दृश्यमानतेबद्दल सांगणार आहे."

"हं? व्हेरिएबल्स अदृश्य असू शकतात?"

"नाही. व्हेरिएबलची 'व्हिजिबिलिटी', किंवा स्कोप, म्हणजे कोडमधील ठिकाणे जिथे तुम्ही त्या व्हेरिएबलचा संदर्भ घेऊ शकता. तुम्ही प्रोग्राममध्ये सर्वत्र काही व्हेरिएबल्स वापरू शकता, परंतु इतर फक्त त्यांच्या वर्गात वापरले जाऊ शकतात आणि इतर - फक्त एका पद्धतीत. "

"उदाहरणार्थ, आपण व्हेरिएबल घोषित होण्यापूर्वी वापरू शकत नाही."

"त्याचा अर्थ होतो."

"येथे काही उदाहरणे आहेत:"


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. कोणतेही सुधारक नाही.

जर व्हेरिएबल किंवा पद्धत कोणत्याही सुधारकाने चिन्हांकित केलेली नसेल, तर ती 'डीफॉल्ट' ऍक्सेस मॉडिफायरने चिन्हांकित केली जाते. असे व्हेरिएबल्स आणि पद्धती ते घोषित केलेल्या पॅकेजमधील सर्व वर्गांना दिसतात. आणि फक्त त्यांनाच. प्रवेशाच्या या पातळीला कधीकधी ' पॅकेज-खाजगी ' प्रवेश म्हणतात , कारण व्हेरिएबल्स आणि पद्धतींचा प्रवेश त्यांच्या वर्ग असलेल्या संपूर्ण पॅकेजसाठी खुला असतो.

येथे एक सारणी आहे जी आम्ही चर्चा केलेल्या गोष्टींचा सारांश देते:"

सुधारक येथून प्रवेश…
स्वतःचा वर्ग स्वतःचे पॅकेज कोणताही वर्ग
खाजगी होय नाही नाही
कोणतेही सुधारक नाही ( पॅकेज-खाजगी ) होय होय नाही
सार्वजनिक होय होय होय