ITパスポート 2012年 秋期 問45
問題文
次のa〜dのうち、オブジェクト指向の基本概念として適切なものだけを全て挙げたものはどれか。
a クラス
b 継承
c データの正規化
d ホワイトボックステスト
選択肢
ア:a, b(正解)
イ:a, c
ウ:b, c
エ:c, d
🔒 解説は解答すると表示されます
オブジェクト指向の基本概念【ITパスポート 解説】
正解の理由
選択肢の中で、オブジェクト指向(object-oriented:物や概念を「オブジェクト」として扱う考え方)の基本概念に当たるのは「クラス」と「継承」です。したがって、選択肢の中では ア(a:クラス、b:継承)が正しい組合せです。
- クラス(class)は、オブジェクトの設計図のようなもので、属性(データ)と振る舞い(メソッド=処理)をまとめて定義します。例えば「従業員」というクラスは名前や社員番号(属性)と勤怠を計算する処理(振る舞い)を持ちます。
- 継承(inheritance)は、既存のクラスの性質を引き継いで新しいクラスを作る仕組みです。例えば「正社員」クラスは「従業員」クラスを継承して、共通の属性や振る舞いを再利用できます。これによりコードの重複を減らし、階層的な設計が可能になります。
一方、c(データの正規化)と d(ホワイトボックステスト)はオブジェクト指向の「基本概念」ではなく、それぞれ別分野の手法・技術です。
解法ステップ
- 問題が問う「基本概念」の範囲を確認する(設計や考え方の根本になる用語か)。
- 各選択肢がオブジェクト指向の定義や設計の核心に関わるかを判断する。
- クラス:設計の中心 → ○
- 継承:再利用と階層を与える核心概念 → ○
- 正規化:データベース設計の技法 → ×
- ホワイトボックステスト:ソフトウェアテスト手法 → ×
- ○となった項目が全て含まれる選択肢を選ぶ(今回は ア)。
この流れで、不要な情報に惑わされずに正解にたどり着けます。
選択肢別の誤答解説
-
ア: a, b
→ 正しい。クラスと継承はオブジェクト指向の基本的な構成要素です。 -
イ: a, c
→ 誤り。a(クラス)は正しいが、c(データの正規化)はデータベース設計の概念で、オブジェクト指向の「基本概念」には含まれません。正規化は表(テーブル)構造を整理する手法です。 -
ウ: b, c
→ 誤り。b(継承)は正しいが、c(正規化)は異分野です。継承だけではオブジェクト指向の「基本概念をすべて選んだ」条件を満たしていません。 -
エ: c, d
→ 誤り。c(正規化)も d(ホワイトボックステスト)も、それぞれデータベース設計とテスト技法であり、オブジェクト指向の基本概念ではありません。
よくある誤解
-
「正規化も設計の一部だからオブジェクト指向に関係ある」と考える誤解
→ 正規化はリレーショナルデータベース(表形式のデータ管理)でデータの重複や矛盾を防ぐ手法です。オブジェクト指向はプログラムや設計の考え方で、目的や適用領域が異なります。 -
「テスト手法は設計概念の一つだ」と混同する誤解
→ ホワイトボックステスト(内部構造や処理の流れを意識して行うテスト)は品質保証の手法で、設計の“概念”ではありません。設計概念と実務の技法を区別しましょう。
補足コラム
オブジェクト指向の「基本概念」はよく次の4つで説明されます。試験でも頻出なので覚えておくと便利です。
- クラス(class)とオブジェクト(object:クラスから生成される実体)
- 継承(inheritance:性質や振る舞いを引き継ぐ仕組み)
- カプセル化(encapsulation:データと処理をまとめ、内部を隠すこと)
- ポリモーフィズム(polymorphism:同じ操作が異なる振る舞いをすること)
覚え方の一つ:設計図(クラス)→モノ(オブジェクト)、似たもの同士で親子関係(継承)、中身は隠す(カプセル化)、同じ命令で別の動き(ポリモーフィズム)。
FAQ
Q1: クラスとオブジェクトはどう違いますか?
A1: クラスは設計図、オブジェクトはその設計図から作られた実際のモノです。会社で言えば「社員という設計図」がクラス、「山田さん」はオブジェクトです。
A1: クラスは設計図、オブジェクトはその設計図から作られた実際のモノです。会社で言えば「社員という設計図」がクラス、「山田さん」はオブジェクトです。
Q2: データの正規化は全く関係ないですか?
A2: 関係は薄いです。アプリを作るときはオブジェクト指向で設計し、データを保存する段階で正規化を検討する、といった具合に別々の役割で登場します。
A2: 関係は薄いです。アプリを作るときはオブジェクト指向で設計し、データを保存する段階で正規化を検討する、といった具合に別々の役割で登場します。
Q3: ホワイトボックステストとブラックボックステストの違いは?
A3: ホワイトボックステスト(white-box:内部構造を見てテスト)ではプログラムの中身を意識します。ブラックボックステスト(black-box:外部からの入力と出力だけで評価)は内部を見ずに機能を確認します。どちらもテスト技法です。
A3: ホワイトボックステスト(white-box:内部構造を見てテスト)ではプログラムの中身を意識します。ブラックボックステスト(black-box:外部からの入力と出力だけで評価)は内部を見ずに機能を確認します。どちらもテスト技法です。
関連キーワード: オブジェクト指向、クラス、継承、カプセル化、ポリモーフィズム、正規化、ホワイトボックステスト

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

