基本情報技術者 2017年 秋期 午前(科目A) 問47
問題文
オブジェクト指向分析を用いてモデリングしたとき、クラスとオブジェクトの関係になる組みはどれか。
選択肢
ア:公園、ぶらんこ
イ:公園、代々木公園(正解)
ウ:鉄棒、ぶらんこ
エ:中之島公園、代々木公園
##: クラスとオブジェクトの関係になる組はどれか。【午前2 解説】
要点まとめ
- 結論:一般名詞(概念)をクラス、固有名(具体的事物)をオブジェクトと見なす組合せが正解です。
- 根拠:クラスは共通の属性と振る舞いを定義する抽象的な型で、代々木公園は公園クラスの具体的インスタンスです。
- 差がつくポイント:固有名詞と一般名詞、部分要素や同種の別個体を混同せず「一般⇔具体」の関係を確認してください。
正解の理由
正解は イ です。公園は「公園という概念・型」を示す一般名詞でクラスに相当し、代々木公園はその概念に該当する具体的な一例(固有名)でオブジェクト(インスタンス)に該当します。したがって「公園(クラス) ⇔ 代々木公園(オブジェクト)」の関係が成立します。
よくある誤解
- 「ぶらんこ」や「鉄棒」を見てすぐにオブジェクトと判断する誤り:これらは設備の種類を表す一般名詞で、必ずしも特定のインスタンスを指しません。
- 部品や要素(部分-全体)とクラス-オブジェクトを混同する誤り:例えば公園の一部である「ぶらんこ」は公園の属性や構成要素であって、公園のインスタンスではありません。
- 同種の固有名同士(例:中之島公園、代々木公園)をクラスとオブジェクトの関係だと誤認する誤り:両者とも同じクラスのインスタンスです。
解法ステップ
- 各語句が「一般名詞(概念)」か「固有名(具体的個体)」かを判定する。
- 「概念→クラス」「具体→オブジェクト(インスタンス)」の対応を当てはめる。
- 部分(パーツ)や同種の別個体でないかを確認する(部分-全体混同を避ける)。
- 正しい組合せ(一般名詞と固有名詞)になっている選択肢を選ぶ。
選択肢別の誤答解説
- ア: 公園、ぶらんこ
公園はクラスになり得ますが、ぶらんこは「遊具の種類」を示す一般名詞で、公園クラスの具体的インスタンスではありません。部分要素にあたります。よってクラス-オブジェクト関係ではない。 - イ: 公園、代々木公園
公園=クラス(概念)、代々木公園=その具体的な一例(オブジェクト)であり、典型的なクラスとインスタンスの関係です。正解。 - ウ: 鉄棒、ぶらんこ
両方とも遊具の種類を表す一般名詞であり、同じレベル(同種)です。クラスとそのインスタンスの関係にはなりません。 - エ: 中之島公園、代々木公園
両者とも特定の公園名(固有名詞)であり、どちらも公園クラスのインスタンス同士です。クラスとオブジェクトの関係ではありません。
補足コラム
- UML ではクラスとオブジェクト(インスタンス)は明確に区別されます。クラスは矩形で属性・操作を示し、オブジェクトは「オブジェクト名 : クラス名」の形式で表します。例:
class Park {
- name: String
- location: String
+ open(): void
}
yoyogiPark : Park { name = "代々木公園", location = "渋谷区" }
- モデリング上のポイントは「抽象化(一般化)」であり、クラスは複数の具体例(オブジェクト)をまとめるために使います。固有名が含まれている選択肢はオブジェクト候補として優先的に検討してください。
FAQ
Q1: 「ぶらんこ」はクラスになれますか?
A1: はい。ぶらんこ自体を「遊具」というクラスの一種としてさらに抽象化すればクラスになり得ますが、本問では「公園」と「ぶらんこ」は同じレベルか部分要素であり、クラス-オブジェクト関係ではありません。
A1: はい。ぶらんこ自体を「遊具」というクラスの一種としてさらに抽象化すればクラスになり得ますが、本問では「公園」と「ぶらんこ」は同じレベルか部分要素であり、クラス-オブジェクト関係ではありません。
Q2: 固有名詞が必ずオブジェクトですか?
A2: 実務では固有名詞は多くの場合オブジェクトを指しますが、文脈によっては別の扱いになることもあります。試験問題では一般⇔具体の関係で判断します。
A2: 実務では固有名詞は多くの場合オブジェクトを指しますが、文脈によっては別の扱いになることもあります。試験問題では一般⇔具体の関係で判断します。
Q3: 「部分-全体」と「クラス-インスタンス」の見分け方は?
A3: 部分-全体は「〜の一部(部品)」の関係、クラス-インスタンスは「〜という種類/その具体例」の関係です。語が「種類」か「個体」かで判別します。
A3: 部分-全体は「〜の一部(部品)」の関係、クラス-インスタンスは「〜という種類/その具体例」の関係です。語が「種類」か「個体」かで判別します。
関連キーワード: オブジェクト指向、クラス、インスタンス、UML、モデリング、抽象化、具象化、属性、メソッド

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

