Java/Видимость: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 25:
 
== protected ==
 
{{N|1}} class A {
{{N|2}} protected int x;
{{N|3}} protected void f(){}
{{N|4}} protected static String name = "Ku-Ku";
{{N|5}} }
{{N|6}}
{{N|7}} class B extends A {
{{N|8}} public void someFunc(){
{{N|9}} x = 10; {{Slashstar|Доступ к защищённому члену материнского класса}}
{{N|10}} f();
{{N|11}} A ref = new A();
{{N|12}} ref.x = 13; {{Slashstar|В контексте дочернего класса отношение к защищённым членам как к публичным}}
{{N|13}} String bebe = A.name; {{Slashstar|Статические переменные - не исключение}}
{{N|14}} }
{{N|15}}}
{{N|16}}
{{N|17}}class C {
{{N|18}} public void someFunc(){
{{N|19}} String mmm = A.name; {{red|Неверный вызов. Переменная ''name'' - защищена и не видна извне}}
{{N|20}} A a = new A();
{{N|21}} int myX = a.x; {{red|Неверный вызов. Переменная ''x'' - не видна извне}}
{{N|22}} a.x = 1; {{red|Неверный вызов. Переменная ''x'' - не видна извне}}
{{N|23}} a.f(); {{red|Неверный вызов. Функция ''f'' - не видна извне}}
{{N|24}} }
{{N|25}}}
 
== ''package protected'' ==
== private ==