基本情報技術者 2017年 春期 午前(科目A) 問48
問題文
オブジェクト指向の基本概念の組合せとして、適切なものはどれか。
選択肢
ア:仮想化、構造化、投影、クラス
イ:具体化、構造化、連続、クラス
ウ:正規化、カプセル化、分割、クラス
エ:抽象化、カプセル化、継承、クラス(正解)
🔒 解説は解答すると表示されます
オブジェクト指向の基本概念【午前解説】
正解の理由
正解は エ です。オブジェクト指向の基本的な要素として以下が含まれるためです。
- 抽象化:複雑な実体から本質的な性質や振る舞いだけを抜き出す操作で、クラス設計の出発点となります。
- カプセル化:データと操作をひとまとめにし、内部実装を隠して外部にインタフェースだけを公開することで安全性と変更耐性を高めます。
- 継承:既存クラスの性質や振る舞いを再利用・拡張する仕組みで、コードの重複を減らし階層的設計を可能にします。
- クラス:属性と操作を定義する設計図で、オブジェクトを生成するための基本単位です。
以上の4つはオブジェクト指向設計の基本概念として教科書的に一致します。
解法ステップ
- 問題文のキーワード「オブジェクト指向の基本概念」を確認する。
- オブジェクト指向の代表的な柱(抽象化、カプセル化、継承、ポリモーフィズム)と「クラス」を頭に思い浮かべる。
- 各選択肢の用語を照合し、OOPに関係ない用語(正規化、投影、仮想化など)を含む選択肢を除外する。
- 全ての要素がOOPの基本に該当する選択肢を正答とする(この問題ではエのみ該当)。
選択肢別の誤答解説
- ア: 仮想化、構造化、投影、クラス
- 仮想化はハイパーバイザやリソース抽象化の概念、投影は集合や関係データの操作でありOOPの基本概念ではありません。
- イ: 具体化、構造化、連続、クラス
- 具体化や連続は抽象化や数学的概念と対応するが、OOPの基本柱として教科書で扱われる用語ではありません。
- ウ: 正規化、カプセル化、分割、クラス
- カプセル化とクラスは正しい要素ですが、正規化や分割はデータベース設計や処理分割の用語で、組合せ全体として不適切です。
- エ: 抽象化、カプセル化、継承、クラス(正解)
- 4つともオブジェクト指向の基本的な概念であり、設計・実装の基礎を成します。
よくある誤解
- 「正規化」や「投影」などの用語はデータベース設計や集合演算の概念で、オブジェクト指向の基本要素ではないと誤解しがちです。
- 「仮想化」や「連続」「分割」はシステム構成や数学的操作に関する用語で、OOPの柱(抽象化・カプセル化・継承)とは別物です。
- 継承とポリモーフィズム(多態性)を混同して、継承がすべての多態性を説明すると考えるのは不十分な理解です。
補足コラム
オブジェクト指向の「基本」は教科書や試験で若干表現が異なることがありますが、実務や教育で特に重視されるのは抽象化・カプセル化・継承・ポリモーフィズム(多態性)の4点です。クラスはこれらを具現化する構造であり、設計段階では「どのクラスに何を責任として持たせるか」を明確にすることが重要です。継承は便利ですが濫用すると設計の硬直化を招くため、利用時は「is-a(〜は〜である)」関係が成立するかをチェックします。
FAQ
Q: 抽象化と具体化の違いは何ですか?
A: 抽象化は本質のみを抜き出して共通性を表現すること、具体化(具象化)は抽象的設計を実際のクラスやオブジェクトに落とし込むことです。
A: 抽象化は本質のみを抜き出して共通性を表現すること、具体化(具象化)は抽象的設計を実際のクラスやオブジェクトに落とし込むことです。
Q: 継承と合成(composition)はどちらが良いですか?
A: 一般に「合成を優先(prefer composition over inheritance)」が推奨されます。継承は強い結合を生みやすく、拡張よりも柔軟性が必要な場面では合成が有利です。
A: 一般に「合成を優先(prefer composition over inheritance)」が推奨されます。継承は強い結合を生みやすく、拡張よりも柔軟性が必要な場面では合成が有利です。
Q: ポリモーフィズムが選択肢にないのは問題になりませんか?
A: 本問では「基本概念の組合せ」を問うため、示された4語がOOPの基本に該当するかが焦点です。ポリモーフィズムは重要概念ですが、選択肢に含まれていなくても他の3要素と合わせて正しい組合せを選べばよいです。
A: 本問では「基本概念の組合せ」を問うため、示された4語がOOPの基本に該当するかが焦点です。ポリモーフィズムは重要概念ですが、選択肢に含まれていなくても他の3要素と合わせて正しい組合せを選べばよいです。
関連キーワード: オブジェクト指向、抽象化、カプセル化、継承、クラス、ポリモーフィズム、設計原則、SOLID、継承の濫用、合成 vs 継承

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

