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

Содержимое удалено Содержимое добавлено
Строка 69:
== private ==
 
<source lang="java">
{{N|1}} '''class''' A {
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}} }
}
</source>
 
getX и setX - являются функциями доступа к приватной переменной. Если мы решим, что переменная '''x''' может содержать исключительно числа от 1 до 100, то нам не понадобится искать все обращения к '''x''' по всем классам, а просто добавить проверку между строками {{N|4}} и {{N|5}}.