メインコンテンツへ
アルゴリズムとプログラミングカプセル化

オブジェクト指向プログラミングにおける「カプセル化」の説明として最も適切なものはどれか。

ア.複数のクラスが同一のメソッド名を持ち、それぞれ異なる実装を提供すること
イ.クラスのインスタンスを複数生成することで、同じ構造を持つオブジェクトを量産すること
ウ.親クラスの特性を子クラスが引き継ぎ、コードを再利用すること
エ.データ(フィールド)とそのデータを操作するメソッドを一つの単位にまとめ、外部から直接アクセスできないように隠蔽すること正解

解説

カプセル化は「クスリのカプセル」そのもの。有効成分(データ)と薬の効果(メソッド)が一つのカプセルに包まれていて、中身に直接触れることなく、決まった方法(public メソッド)でのみ利用できる設計思想。

なぜ エ が正解か

カプセル化(Encapsulation)とは、データ(フィールド/属性)とそれを操作するメソッドを一つのクラスにまとめ、外部からのデータへの直接アクセスを制限(private/protected修飾子)し、公開インターフェース(public メソッド)を通じてのみ操作させる概念。これにより内部実装を隠蔽し、不正なデータ操作を防ぐ。

なぜ ア は間違いか

これはポリモーフィズム(多態性)の説明。同一インターフェースで異なる実装を提供する概念であり、カプセル化とは異なる。OOP の三大概念を混同した誤り。

なぜ イ は間違いか

インスタンス化の説明。クラスを定義した後に new でオブジェクトを生成することを指す。カプセル化はデータ隠蔽と一体化を指す概念であり、インスタンス数とは無関係。

なぜ ウ は間違いか

これは継承(Inheritance)の説明。親クラスの属性・メソッドを子クラスが引き継ぐ機構であり、カプセル化とは別の概念。OOP の三大概念を混同した誤り。

出典: AI生成問題(学習用)