„Здравей на любимия ми ученик. Сега ще ти разкажа за видимостта на променливите.“

"А? Могат ли променливите да бъдат невидими?"

„Не. „Видимостта“ or обхватът на променливата означава местата в codeа, където можете да се обърнете към тази променлива. Можете да използвате някои променливи навсякъде в програмата, но други могат да се използват само в рамките на техния клас, а трети – само в рамките на един метод. "

"Например, не можете да използвате променлива, преди да е декларирана."

— Това има смисъл.

„Ето няколко примера:“


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. Променлива, декларирана в codeов блок, съществува до края на codeовия блок.

3. Параметрите на метода съществуват навсякъде в рамките на метода.

4. Променливите в даден обект съществуват през целия живот на обекта, който ги съдържа. Тяхната видимост също се определя от специални модификатори за достъп: публичен и частен .

5. Статичните (класови) променливи съществуват през цялото време, докато програмата работи. Тяхната видимост също се определя от модификатори за достъп.

„Обичам снимките. Те помагат да стане ясно всичко.“

"Добро момче, Амиго. Винаги съм знаел, че си умен човек."

„Ще ви разкажа и за „ модификаторите на достъп “. Не се плашете. Няма нищо сложно в тях. Тук можете да видите думите public и private .“

"Не ме е страх. Просто окото ми трепти."

„Вярвам ви. Можете да управлявате начина, по който методите и променливите на един клас са достъпни от (or видими за) други класове. Можете да присвоите само един модификатор за достъп на всеки метод or променлива.

1. модификатор за обществен достъп.

Можете да използвате променлива, метод or клас, маркирани с публичен модификатор от всяко място в програмата. Това е най-високото ниво на достъп – тук няма ограничения.

2. модификатор за частен достъп.

Можете да използвате променлива or метод, маркиран с модификатора private, само от класа, в който е деклариран. За всички останали класове, маркираният метод or променлива ще бъде невидим, все едно не съществува. Това е най-високото ниво на затвореност – достъп само в рамките на собствения клас.

3. Без модификатор.

Ако дадена променлива or метод не е маркиран с модификатор, се счита, че е маркиран с модификатор за достъп „по подразбиране“. Такива променливи и методи са видими за всички класове в пакета, в който са декларирани. И само за тях. Това ниво на достъп понякога се нарича „ пакетно частен “ достъп, тъй като достъпът до променливите и методите е отворен за целия пакет, който съдържа техния клас.

Ето table, която обобщава това, което обсъдихме:"

Модификатори Достъп от…
Собствен клас Собствен пакет Всеки клас
частен да Не Не
Без модификатор ( package-private ) да да Не
публичен да да да