Поиск…


Скрытие информации

Состояние объекта в данный момент времени представляется информацией, которую он удерживает в этой точке. На языке 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;
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow