資訊隱藏

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