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

Содержимое удалено Содержимое добавлено
Строка 26:
== 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|Статические переменные - не исключение}}
Строка 42:
{{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'' - не видна извне}}