信息隐藏

给定时间的对象状态由它在该点保存的信息表示。在 OO 语言中,状态是作为成员变量实现的。

在一个设计合理的对象中,只能通过调用其方法而不是直接操作其成员变量来更改状态。这是通过提供对私有成员变量的值进行操作的公共方法来实现的。以这种方式隐藏信息称为封装

因此,封装确保不会公开私有信息,除非分别通过调用访问器和方法,否则不能修改私有信息。

在以下示例中,你无法通过更改 hungry 私有字段将 Animal 设置为不再饥饿; 相反,你必须调用方法 eat(),它通过将 hungry 标志设置为 false 来改变 Animal 的状态。

public class Animal {
    private boolean hungry;

    public boolean isHungry() {
        return this.hungry;
    }
    
    public void eat() {
        this.hungry = false;
    }
}