平成24年度 秋期 午前 問47
システム開発技術
カプセル化の説明
オブジェクト指向におけるカプセル化を説明したものはどれか。
- ア同じ性質をもつ複数のオブジェクトを抽象化して,整理すること
- イ基底クラスの性質を派生クラスに受け継がせること
- ウクラス間に共通する性質を抽出し,基底クラスを作ること
- エデータとそれを操作する手続を一つのオブジェクトにして,その実装をオブジェクトの内部に隠蔽すること
答えと解説を見る
✓ これが正解エデータとそれを操作する手続を一つのオブジェクトにして,その実装をオブジェクトの内部に隠蔽すること
解説
カプセル化はデータと手続をまとめ実装を内に隠すことです。
この設問の軸は、その説明が何をひとまとめにする話なのかを見る点にあります。カプセル化は、扱うデータと、そのデータを操作する手続とを一つのオブジェクトの中へ収め、どうやって実現しているかを外から見えないようにする考え方です。外の側は用意された入口を通してしか触れられないので、内側の作りを後から替えても外に影響が及びません。混ざりやすいのは、共通するところをくくり出したり、上位で決めた性質を下位へ引き渡したりする話です。これらはクラスどうしの関係を整える考え方で、まとめる対象がデータと手続の組ではありません。目を向ける先が、一つのオブジェクトの内と外の境目なのか、それともクラスとクラスの間なのかで切り分けられます。
ほかの選択肢はなぜ違うのか
- ア同じ性質をもつ複数のオブジェクトを抽象化…:似た性質を持つものをひとくくりにして型として整理する話です。整理の対象はデータと手続の組ではなく、外から中身が見えないようにする点にも触れていません。
- イ基底クラスの性質を派生クラスに受け継がせ…:上位で定めた性質を下位が引き継いで使えるようにする仕組みの説明です。関心はクラスとクラスの間の関係にあり、実装を外から見えなくすることではありません。
- ウクラス間に共通する性質を抽出し,基底クラ…:複数のクラスに共通する部分を取り出して上位のクラスを設ける作業です。まとめ方の話ではありますが、内と外の境目を設ける話ではありません。
出典:平成24年度 秋期 基本情報技術者試験 午前 問47
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)