サーチ…


情報隠蔽

ある時点のオブジェクトの状態は、その時点で保持している情報によって表されます。 OO言語では、状態はメンバ変数として実装されます。

適切に設計されたオブジェクトでは、メンバ変数を直接操作するのではなく、そのメソッドを呼び出すことによってのみ状態を変更できます。これは、プライベートメンバー変数の値を操作するパブリックメソッドを提供することによって実現されます。このような情報の隠蔽は、 カプセル化と呼ばれています

したがって、カプセル化により、個人情報は公開されず、それぞれアクセサやメソッドへの呼び出し以外では変更できません。

次の例では、 hungryプライベートフィールドを変更することによって、もうAnimalが空腹にならないように設定することはできません。 hungryフラグをfalse設定することで、 Animalの状態を変更するメソッドeat()を呼び出す必要があり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