Поиск…
Скрытие информации
Состояние объекта в данный момент времени представляется информацией, которую он удерживает в этой точке. На языке OO состояние реализуется как переменные-члены.
В правильно спроектированном объекте состояние может быть изменено только посредством вызовов его методам, а не путем непосредственного манипулирования его переменными-членами. Это достигается путем предоставления общедоступных методов, которые работают с значениями частных переменных-членов. Скрытие информации таким образом известно как инкапсуляция .
Следовательно, инкапсуляция гарантирует, что личная информация не подвергается воздействию и не может быть изменена, за исключением вызовов аксессуаров и методов, соответственно.
В следующем примере вы не можете установить, чтобы Animal больше не голоден, изменяя hungry частное поле; вместо этого вы должны вызвать метод eat() , который изменяет состояние Animal , установив флаг hungry равным false .
public class Animal {
private boolean hungry;
public boolean isHungry() {
return this.hungry;
}
public void eat() {
this.hungry = false;
}
}