信息隐藏
给定时间的对象状态由它在该点保存的信息表示。在 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;
}
}