アルゴリズム・プログラミング定義問題
オブジェクト指向プログラミングにおける「カプセル化(encapsulation)」の定義として最も適切なものはどれか。
A.親クラスの性質を子クラスが引き継ぐ仕組み
✗ 親クラスの性質を子クラスが引き継ぐ仕組みは「継承(inheritance)」です。カプセル化とは異なります。
B.同じ名前のメソッドが引数の型や数に応じて異なる処理を行う仕組み
✗ 同じ名前のメソッドが引数に応じて動作を変える仕組みは「ポリモーフィズム(多態性)」です。
C.オブジェクトの内部データと操作をひとまとめにし、外部からの直接アクセスを制限する仕組み← 正解
✓ 正解です。カプセル化はデータ(属性)と操作(メソッド)を一つのオブジェクトに封じ込め、外部からの不正アクセスをアクセス修飾子などで制限する概念です。
D.一つのクラスが複数のインターフェースを実装できる仕組み
✗ 複数のインターフェースを実装できる仕組みは「多重実装」であり、カプセル化の定義ではありません。