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