資訊隱藏
給定時間的物件狀態由它在該點儲存的資訊表示。在 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;
}
}