カプセル化とは、データとそれを操作するメソッドを 1 つの単位(クラス)にまとめ、内部状態を非公開の制御されたインターフェースの背後に隠すことです。呼び出し元はメソッドを通じてやり取りし、生フィールドを直接いじることはありません。
なぜ状態を隠すのか
誰もがフィールドを直接変更できると、オブジェクトが常に有効な状態を保つことを保証できません。カプセル化により、クラスは独自の不変条件を強制することができます。
java
{
balance;
{
(amount <= )
();
(amount > balance)
();
balance -= amount;
}
{ balance; }
}
