エンカプセレーション(カプセル化)は、オブジェクト指向プログラミングの基本的な概念の一つであり、データとそれを操作するメソッドを一つの単位(オブジェクト)にまとめて外部から隠蔽することを指します。エンカプセレーションは、データの保護、モジュール化、およびコードの理解と保守のしやすさを向上させるために使用されます。
エンカプセレーション(カプセル化)の目的
データの保護
オブジェクトの内部状態を直接外部からアクセスできないようにすることで、データの不正な操作を防ぎます。データへのアクセスは、オブジェクトのメソッドを介して行われるため、データの一貫性と安全性が保たれます。
モジュール化
オブジェクトごとにデータとその操作をまとめることで、システム全体を理解しやすくし、各オブジェクトが独立して機能するようになります。これにより、開発、テスト、および保守が容易になります。
エンカプセレーションに使用されるアクセス修飾子
private
フィールドやメソッドをクラス内部からのみアクセス可能にします。これにより、外部からの直接アクセスを防ぎます。
protected
フィールドやメソッドを同じクラス、同じパッケージ内のクラス、またはサブクラスからアクセス可能にします。
public
フィールドやメソッドを全てのクラスからアクセス可能にします。外部からも自由にアクセスできますが、データの保護が弱まります。