"En sevdiğim öğrencime merhaba. Şimdi size değişkenlerin görünürlüğünden bahsedeceğim."

"Ha? Değişkenler görünmez olabilir mi?"

"Hayır. Bir değişkenin 'görünürlüğü' veya kapsamı, kodda o değişkene başvurabileceğiniz yerler anlamına gelir. Bazı değişkenleri programın her yerinde kullanabilirsiniz, ancak diğerleri yalnızca kendi sınıfları içinde kullanılabilir ve diğerleri - sadece bir yöntem içinde. "

"Örneğin, bir değişkeni tanımlanmadan önce kullanamazsınız."

"Bu mantıklı."

"Burada bir çift örnek var:"


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. Bir yöntemde bildirilen bir değişken, bildiriminin başlangıcından yöntemin sonuna kadar mevcuttur (görünür).

2. Bir kod bloğunda bildirilen bir değişken, kod bloğunun sonuna kadar mevcuttur.

3. Bir yöntemin parametreleri, yöntemin her yerinde bulunur.

4. Bir nesnedeki değişkenler, onları içeren nesnenin tüm ömrü boyunca mevcuttur. Görünürlükleri ayrıca özel erişim değiştiricileri tarafından tanımlanır: public ve private .

5. Programın çalıştığı süre boyunca statik (sınıf) değişkenler mevcuttur. Görünürlükleri ayrıca erişim değiştiricileri tarafından tanımlanır.

"Resimleri seviyorum. Her şeyi netleştirmeye yardımcı oluyorlar."

"Aferin dostum, Amigo. Senin zeki biri olduğunu hep biliyordum."

"Ayrıca size ' erişim düzenleyicileri'nden de bahsedeceğim . Korkmayın. Bunlarda karmaşık bir şey yok. Burada genel ve özel sözcüklerini görebilirsiniz ."

"Korkmuyorum. Sadece gözüm seğiriyor."

"Sana inanıyorum. Bir sınıfın yöntemlerine ve değişkenlerine diğer sınıflar tarafından nasıl erişildiğini (veya onlar tarafından görülebildiğini) yönetebilirsin. Her yönteme veya değişkene yalnızca bir erişim değiştiricisi atayabilirsin.

1. genel erişim değiştiricisi.

Public değiştiricisiyle işaretlenmiş bir değişkeni, yöntemi veya sınıfı programın herhangi bir yerinden kullanabilirsiniz. Bu, en yüksek erişim seviyesidir - burada herhangi bir sınırlama yoktur.

2. özel erişim değiştirici.

Özel değiştiriciyle işaretlenmiş bir değişkeni veya yöntemi, yalnızca içinde bildirildiği sınıftan kullanabilirsiniz. Diğer tüm sınıflar için, işaretli yöntem veya değişken sanki yokmuş gibi görünmez olacaktır. Bu, en yüksek kapalılık seviyesidir - yalnızca kendi sınıfı içinde erişim.

3. Değiştirici yok.

Bir değişken veya yöntem herhangi bir değiştirici ile işaretlenmemişse, 'varsayılan' erişim değiştiricisi ile işaretlenmiş olarak kabul edilir. Bu tür değişkenler ve yöntemler, içinde tanımlandıkları paketteki tüm sınıflar tarafından görülebilir. Sadece onlar tarafından görülebilir. Değişkenlere ve yöntemlere erişim, sınıflarını içeren paketin tamamı için açık olduğundan, bu erişim düzeyine bazen ' özel paket ' erişimi denir .

İşte konuştuklarımızı özetleyen bir tablo:"

Değiştiriciler Şuradan erişim…
Kendi sınıfı Kendi paketi herhangi bir sınıf
özel Evet HAYIR HAYIR
Değiştirici yok ( package-private ) Evet Evet HAYIR
halk Evet Evet Evet