カプセル化
カプセル化(カプセルか、英: encapsulation)は、コンピュータプログラミングで用いられる概念で互いに関連するデータとロジックなどを1つのモジュールとしてまとめることである。また、より広い意味ではまとめたモジュールの内側の詳細を外側から隠蔽することをも含む。この隠蔽は計算機科学者デビッド・パーナスが提唱した情報隠蔽(英語版)と同義である。
カプセル化はオブジェクト指向での使用が最も有名であり、そこではフィールドとそれを操作するメソッドをまとめたオブジェクトの内部要素への直接アクセスを制限するためのアクセスコンロールを設けている。内部隠蔽されたフィールドを操作または閲覧するためのメソッドは、ミューテイタ/アクセッサ(英語版)と呼ばれ、これはセッター/ゲッターの俗称でも知られている。フィールドとメソッドの一体化には、フィールド展開用のメモリ基底アドレスをアドホック多相(英語版)表現にしたThis参照の機構が用いられている。これらカプセル化のコンセプトの定義と実装の書式は、オブジェクトの設計図に例えられているクラスに投影されている。オブジェクト指向のカプセル化は、特にデータ抽象の側面が強調されている。
なお、カプセル化はオブジェクト指向の専売特許ではなく、抽象データ型、プログラムモジュール、ソフトウェアコンポーネントの実装にも使用されている。