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

Содержимое удалено Содержимое добавлено
Строка 62:
== private ==
 
{{N|1}} '''class''' A {
{{N|2}} '''private int''' x; {{slashstar|переменную '''x''' видно исключительно внутри класса A}}
{{N|3}}
{{N|4}} '''public void''' setX('''int''' val) { {{slashstar|обычно такую функцию называют "setter"}}
{{N|5}} x = val;
{{N|6}} }
{{N|7}}
{{N|8}} '''public int''' getX() { {{slashstar|обычно такую функцию называют "getter")}}
{{N|9}} '''return''' x;
{{N|10}} }
{{N|11}} }
{{N|12}}
{{N|13}} class B extends A {
{{N|14}} public void someFunc() {
{{N|15}} this.x = 10; {{red|Ошибка! Приватные переменные не видны даже наследникам}}
{{N|16}} }
{{N|17}} }
 
getX и setX - являются функциями доступа к приватной переменной. Если мы решим, что переменная '''x''' может содержать исключительно числа от 1 до 100, то нам не понадобится искать все обращения к '''x''' по всем классам, а просто добавить проверку между строками {{N|4}} и {{N|5}}.