基本情報技術者試験 過去問(開発技術-オブジェクト指向設計とUML) -情報処理シンプルまとめ

情報処理技術者試験 過去問(オブジェクト指向設計とUML)のブログのアイキャッチ画像 システム開発技術

 情報処理技術者試験(今のところは基本情報技術者試験)の過去問(開発技術-オブジェクト指向設計とUML)を集めて,シンプルにまとめています。UML(クラス図(汎化),オブジェクト図,シーケンス図,コミュニケーション図,アクティビティ図),オブジェクト指向プログラム,オブジェクト,クラス(抽象化,メソッド),インスタンス,メッセージ,カプセル化,継承(インヘリタンス),汎化・特化(is-a)関係,集約・分解(part-of)関係,ポリモーフィズム(多相性,多様性),オーバーライド,委譲(デリゲート)について,理解度を確認することができます。解けなかった問題や,完全に理解できていない問題については,【参考】にあるリンク先ページを読んで,もう一度,解いてみてください。難しい問題もあると思いますが,繰り返し解くことにより,だんだんと身に付いてきますので,根気よく頑張りましょう。

  1. 平成26年度 基本情報技術者試験 春期 午前 問46
  2. 平成25年度 基本情報技術者試験 秋期 午前 問46
  3. 平成24年度 基本情報技術者試験 秋期 午前 問46
  4. 平成21年度 基本情報技術者試験 秋期 午前 問45
  5. 平成29年度 基本情報技術者試験 秋期 午前 問46
  6. 平成30年度 基本情報技術者試験 秋期 午前 問46
  7. 平成31年度 基本情報技術者試験 春期 午前 問46
  8. 平成21年度 基本情報技術者試験 秋期 午前 問7
  9. 平成24年度 基本情報技術者試験 春期 午前 問46
  10. 平成29年度 基本情報技術者試験 春期 午前 問48
  11. 平成23年度 基本情報技術者試験 秋期 午前 問46
  12. 平成21年度 基本情報技術者試験 春期 午前 問47
  13. 平成23年度 基本情報技術者試験 特別 午前 問48
  14. 平成25年度 基本情報技術者試験 秋期 午前 問48
  15. 平成30年度 基本情報技術者試験 秋期 午前 問47
  16. 平成22年度 基本情報技術者試験 秋期 午前 問47
  17. 平成29年度 基本情報技術者試験 秋期 午前 問47
  18. 平成22年度 基本情報技術者試験 春期 午前 問47
  19. 平成26年度 基本情報技術者試験 春期 午前 問47
  20. (令和4年度) 基本情報技術者試験 サンプル問題 科目A 問38
  21. 平成22年度 基本情報技術者試験 秋期 午前 問46
  22. 平成28年度 基本情報技術者試験 秋期 午前 問47
  23. 平成24年度 基本情報技術者試験 秋期 午前 問47
  24. 平成21年度 基本情報技術者試験 秋期 午前 問46
  25. 平成30年度 基本情報技術者試験 春期 午前 問46
  26. 平成27年度 基本情報技術者試験 春期 午前 問48
  27. 平成26年度 基本情報技術者試験 秋期 午前 問47
  28. 平成29年度 基本情報技術者試験 秋期 午前 問7
  29. 平成30年度 基本情報技術者試験 秋期 午前 問49
  30. まとめ

平成26年度 基本情報技術者試験 春期 午前 問46

 UMLにおける図の     の中に記述するものはどれか。

「平成26年度 基本情報技術者試験 春期 午前 問46」の問題_画像01
ア 関連名イ クラス名ウ 集約名エ ユースケース名

【解答】

【解説】

■ クラス図

属性(データ)と操作(メソッド)をカプセル化して定義した各クラスの相互関係(関連,汎化,集約,多重度など)を表すための図である。

※ オブジェクト指向開発の各フェーズに合わせた詳細度で記述する

「平成26年度 基本情報技術者試験 秋期 午前 問46」の解答_画像01

平成25年度 基本情報技術者試験 秋期 午前 問46

 UMLのクラス図のうち,汎化の関係を示したものはどれか。

ア 「平成25年度 基本情報技術者試験 秋期 午前 問46」の問題_画像01イ 「平成25年度 基本情報技術者試験 秋期 午前 問46」の問題_画像02
ウ 「平成25年度 基本情報技術者試験 秋期 午前 問46」の問題_画像03エ 「平成25年度 基本情報技術者試験 秋期 午前 問46」の問題_画像04

【解答】

【解説】

ア 1対1の関係

イ 汎化-特化関係

ウ 分解-集約関係(コンポジション)

エ 依存関係

平成24年度 基本情報技術者試験 秋期 午前 問46

 UMLのダイアグラムのうち,インスタンス間の関係を表現するものはどれか。

ア アクティビティ図イ オブジェクト図
ウ コンポーネント図エ ユースケース図

【解答】

【解説】

■ オブジェクト図

クラスから生成される各インスタンスの関係を表現する図である。

「平成24年度 基本情報技術者試験 秋期 午前 問46」の解答_画像

平成21年度 基本情報技術者試験 秋期 午前 問45

 UML 2.0で定義している図のうち,動的な振る舞いを表現するものはどれか。

ア オブジェクト図イ クラス図
ウ シーケンス図エ パッケージ図

【解答】

【解説】

ア,イ,エ 構造図(システムの静的な振る舞いを表現する図)

平成29年度 基本情報技術者試験 秋期 午前 問46

 UML 2.0において,オブジェクト間の相互作用を時系列に表す図はどれか。

ア アクティビティ図イ コンポーネント図
ウ シーケンス図エ 状態遷移図

【解答】

【解説】

■ シーケンス図

各オブジェクトの相互作用(メッセージの送受信)を時系列に表現する図である。

「平成30年度 基本情報技術者試験 秋期 午前 問46」の解答_画像01

平成30年度 基本情報技術者試験 秋期 午前 問46

 UML 2.0のシーケンス図とコミュニケーション図のどちらにも表現されるものはどれか。

ア イベントとオブジェクトの状態

イ オブジェクトがある状態にとどまる最短時間及び最長時間

ウ オブジェクトがメッセージを処理している期間

エ オブジェクト間で送受信されるメッセージ

【解答】

【解説】

■ シーケンス図

各オブジェクトの相互作用(メッセージの送受信)を時系列に表現する図である。

「平成30年度 基本情報技術者試験 秋期 午前 問46」の解答_画像01

■ コミュニケーション図

各オブジェクトの相互作用(メッセージの送受信)を関連に着目して表現する図である。

※ シーケンス図は時系列に表現するが,コミュニケーション図は各オブジェクトの関連に着目して表現する

「平成30年度 基本情報技術者試験 秋期 午前 問46」の解答_画像02

平成31年度 基本情報技術者試験 春期 午前 問46

 UMLにおける振る舞い図の説明のうち,アクティビティ図のものはどれか。

ア ある振る舞いから次の振る舞いへの制御の流れを表現する。

イ オブジェクト間の相互作用を時系列で表現する。

ウ システムが外部に提供する機能と,それを利用する者や外部システムとの関係を表現する。

エ 一つのオブジェクトの状態がイベントの発生や時間の経過とともにどのように変化するかを表現する。

【解答】

【解説】

■ アクティビティ図

業務や処理の実行順序を表現する図である。

※ フローチャートと違い,並行処理を表現できる

「平成31年度 基本情報技術者試験 春期 午前 問46」の解答_画像

平成21年度 基本情報技術者試験 秋期 午前 問7

 オブジェクト指向プログラムの特徴はどれか。

ア 計算順序は制御フローではなくデータの流れによって規定される。命令は,入力となるすべてのデータがそろったときに実行可能となる。

イ 計算の制御は命令から命令へ順次渡される。命令間でのデータの受渡しは,“変数”を介するメモリへの参照によって間接的に行う。命令とデータの定義は分離されている。

ウ データを外部から隠ぺいし,メソッドと呼ばれる手続によって間接的に操作することができる。プログラムは,データとメソッドをひとまとまりにしたものの集まりである。

エ プログラムは,入れ子構造の演算式,関数を表現する命令(演算記号),データによって構成され,“命令実行”に対応するのは“演算式又は関数の値の計算(評価)”である。

【解答】

【解説】

■ オブジェクト

操作対象である属性(データ)と,そのデータに対するメソッド(手続き)を,1つにまとめたものをいう。

オブジェクト指向プログラミングでは,操作対象のオブジェクトに対してメッセージを送ることでオブジェクトを操作し,状態を変化させる。

※ オブジェクトは,モジュールに相当する

※ オブジェクト指向設計は,POAやDOAを改善する設計手法である

平成24年度 基本情報技術者試験 春期 午前 問46

 オブジェクト指向プログラミングの特徴はどれか。

ア オブジェクトが相互にメッセージを送ることによって,協調して動作し,プログラム全体の機能を実現する。

イ オブジェクトの外部からオブジェクトの内部のデータを直接変更できるので,自由度が高い。

ウ 下位クラスは上位クラスの機能や性質を引き継ぐので,下位クラスに必要な性質は全て上位クラスに含まれる。

エ 個々のオブジェクトが使用するデータ(属性)は,あらかじめデータ辞書に登録しておく。

【解答】

【解説】

■ オブジェクト

操作対象である属性(データ)と,そのデータに対するメソッド(手続き)を,1つにまとめたものをいう。

オブジェクト指向プログラミングでは,操作対象のオブジェクトに対してメッセージを送ることでオブジェクトを操作し,状態を変化させる。

※ オブジェクトは,モジュールに相当する

※ オブジェクト指向設計は,POAやDOAを改善する設計手法である

イ オブジェクト内部のデータは隠蔽されている

ウ 下位クラス独自の性質は上位クラスに含まれない

平成29年度 基本情報技術者試験 春期 午前 問48

平成23年度 基本情報技術者試験 秋期 午前 問46

平成21年度 基本情報技術者試験 春期 午前 問47

 オブジェクト指向の基本概念の組合せとして,適切なものはどれか。

ア 仮想化,構造化,投影,クラス

イ 具体化,構造化,連続,クラス

ウ 正規化,カプセル化,分割,クラス

エ 抽象化,カプセル化,継承,クラス

【解答】

【解説】

■ オブジェクト

操作対象である属性(データ)と,そのデータに対するメソッド(手続き)を,1つにまとめたものをいう。

オブジェクト指向プログラミングでは,操作対象のオブジェクトに対してメッセージを送ることでオブジェクトを操作し,状態を変化させる。

※ オブジェクトは,モジュールに相当する

※ オブジェクト指向設計は,POAやDOAを改善する設計手法である

■ クラス

オブジェクトを定義したものをいう。幾つかの類似オブジェクトから,共通の性質を抜き出して,属性やメソッドを抽象化して定義する。

「平成30年度 基本情報技術者試験 秋期 午前 問47」の解答_画像01

● インスタンス

クラスを使用するという宣言をして生成された実体(具体的なオブジェクト)をいう。

「平成30年度 基本情報技術者試験 秋期 午前 問47」の解答_画像02

● メッセージ

あるオブジェクトが,別のオブジェクトに操作を依頼するときに使用する。

「平成29年度 基本情報技術者試験 春期 午前 問48」の解答_画像03

■ オブジェクト指向の概念

● カプセル化

属性とメソッドを1つのオブジェクトとして一体化し,属性とメソッドの詳細をオブジェクトの外部から隠蔽することをいう。オブジェクト内部の属性やメソッドを変更した場合でも,他のオブジェクトは影響を受けない(受けにくい)。

「令和4年度 基本情報技術者試験 サンプル問題 科目A 午前 問38」の解答_画像

● 継承(インヘリタンス)

ある上位クラス(基底クラス,スーパークラス)の属性やメソッドを,下位クラス(派生クラス,サブクラス)に引き継ぐ性質をいう。サブクラスを定義する場合,継承により基底クラスの属性やメソッドに対する差異(差分)だけを定義すればよいので開発効率が高まる。

※ クラスは,階層構造を持つことができる(あるクラスを基本として,別の新しいクラスを作ることができる)

※ 多重継承…複数の上位クラスから属性やメソッドを継承すること。C++では可能。C#やJavaなどではできない

「平成30年度 基本情報技術者試験 春期 午前 問46」の解答_画像

● ポリモーフィズム(多相性,多様性)

複数の子クラスに対して同じメッセージを送った場合に,それぞれのクラスが異なる動作をするという特性をいう。

・ オーバーライド

上位クラスで定義されたメソッドを,サブクラスで再定義することをいう。

※ ポリモーフィズムを実現するためには,上位クラスから引き継いだメソッドを,それぞれのサブクラスに合った内容で定義し直し,動作を上書きする

「平成29年度 基本情報技術者試験 秋期 午前 問7」の解答_画像

平成23年度 基本情報技術者試験 特別 午前 問48

 オブジェクト指向の特徴はどれか。

ア オブジェクト指向では,抽象化の対象となるオブジェクトに対する操作をあらかじめ指定しなければならない。

イ カプセル化によって,オブジェクト間の相互依存性を高めることができる。

ウ クラスの変更を行う場合には,そのクラスの上位にあるすべてのクラスの変更が必要となる。

エ 継承という概念によって,モデルの拡張や変更の際に変更箇所を局所化できる。

【解答】

【解説】

■ オブジェクト

操作対象である属性(データ)と,そのデータに対するメソッド(手続き)を,1つにまとめたものをいう。

オブジェクト指向プログラミングでは,操作対象のオブジェクトに対してメッセージを送ることでオブジェクトを操作し,状態を変化させる。

※ オブジェクトは,モジュールに相当する

※ オブジェクト指向設計は,POAやDOAを改善する設計手法である

■ クラス

オブジェクトを定義したものをいう。幾つかの類似オブジェクトから,共通の性質を抜き出して,属性やメソッドを抽象化して定義する。

「平成30年度 基本情報技術者試験 秋期 午前 問47」の解答_画像01

● インスタンス

クラスを使用するという宣言をして生成された実体(具体的なオブジェクト)をいう。

「平成30年度 基本情報技術者試験 秋期 午前 問47」の解答_画像02

● メッセージ

あるオブジェクトが,別のオブジェクトに操作を依頼するときに使用する。

「平成29年度 基本情報技術者試験 春期 午前 問48」の解答_画像03

■ オブジェクト指向の概念

● カプセル化

属性とメソッドを1つのオブジェクトとして一体化し,属性とメソッドの詳細をオブジェクトの外部から隠蔽することをいう。オブジェクト内部の属性やメソッドを変更した場合でも,他のオブジェクトは影響を受けない(受けにくい)。

「令和4年度 基本情報技術者試験 サンプル問題 科目A 午前 問38」の解答_画像

● 継承(インヘリタンス)

ある上位クラス(基底クラス,スーパークラス)の属性やメソッドを,下位クラス(派生クラス,サブクラス)に引き継ぐ性質をいう。サブクラスを定義する場合,継承により基底クラスの属性やメソッドに対する差異(差分)だけを定義すればよいので開発効率が高まる。

※ クラスは,階層構造を持つことができる(あるクラスを基本として,別の新しいクラスを作ることができる)

※ 多重継承…複数の上位クラスから属性やメソッドを継承すること。C++では可能。C#やJavaなどではできない

「平成30年度 基本情報技術者試験 春期 午前 問46」の解答_画像

● ポリモーフィズム(多相性,多様性)

複数の子クラスに対して同じメッセージを送った場合に,それぞれのクラスが異なる動作をするという特性をいう。

・ オーバーライド

上位クラスで定義されたメソッドを,サブクラスで再定義することをいう。

※ ポリモーフィズムを実現するためには,上位クラスから引き継いだメソッドを,それぞれのサブクラスに合った内容で定義し直し,動作を上書きする

「平成29年度 基本情報技術者試験 秋期 午前 問7」の解答_画像

ア 抽象メソッドの場合は,宣言のみをする(実装を持たない)

イ オブジェクト内部のデータはカプセル化により隠蔽されるため,オブジェクト間の相互依存性は低くなる

ウ 下位クラス独自の属性(データ)やメソッド(手続き)は上位クラスに影響を与えない(上位クラスを変更する必要はない)

平成25年度 基本情報技術者試験 秋期 午前 問48

 オブジェクト指向開発において,オブジェクトのもつ振る舞いを記述したものを何というか。

ア インスタンスイ クラス
ウ 属性エ メソッド

【解答】

【解説】

■ クラス

オブジェクトを定義したものをいう。幾つかの類似オブジェクトから,共通の性質を抜き出して,属性やメソッドを抽象化して定義する。

「平成30年度 基本情報技術者試験 秋期 午前 問47」の解答_画像01

■ インスタンス

クラスを使用するという宣言をして生成された実体(具体的なオブジェクト)をいう。

「平成30年度 基本情報技術者試験 秋期 午前 問47」の解答_画像02

平成30年度 基本情報技術者試験 秋期 午前 問47

平成22年度 基本情報技術者試験 秋期 午前 問47

 オブジェクト指向におけるクラスとインスタンスとの関係のうち,適切なものはどれか。

ア インスタンスはクラスの仕様を定義したものである。

イ クラスの定義に基づいてインスタンスが生成される。

ウ 一つのインスタンスに対して,複数のクラスが対応する。

エ 一つのクラスに対して,インスタンスはただ一つ存在する。

【解答】

【解説】

■ クラス

オブジェクトを定義したものをいう。幾つかの類似オブジェクトから,共通の性質を抜き出して,属性やメソッドを抽象化して定義する。

「平成30年度 基本情報技術者試験 秋期 午前 問47」の解答_画像01

■ インスタンス

クラスを使用するという宣言をして生成された実体(具体的なオブジェクト)をいう。

「平成30年度 基本情報技術者試験 秋期 午前 問47」の解答_画像02

平成29年度 基本情報技術者試験 秋期 午前 問47

 オブジェクト指向分析を用いてモデリングしたとき,クラスとオブジェクトの関係になる組みはどれか。

ア 公園,ぶらんこイ 公園,代々木公園
ウ 鉄棒,ぶらんこエ 中之島公園,代々木公園

【解答】

【解説】

■ クラス

オブジェクトを定義したものをいう。幾つかの類似オブジェクトから,共通の性質を抜き出して,属性やメソッドを抽象化して定義する。

「平成30年度 基本情報技術者試験 秋期 午前 問47」の解答_画像01

■ インスタンス

クラスを使用するという宣言をして生成された実体(具体的なオブジェクト)をいう。

「平成30年度 基本情報技術者試験 秋期 午前 問47」の解答_画像02

平成22年度 基本情報技術者試験 春期 午前 問47

 オブジェクト指向におけるクラス間の関係のうち,適切なものはどれか。

ア クラス間の関連は,二つのクラス間でだけ定義できる。

イ サブクラスではスーパークラスの操作を再定義することができる。

ウ サブクラスのインスタンスが,スーパクラスで定義されている操作を実行するときは,スーパクラスのインスタンスに操作を依頼する。

エ 二つのクラスに集約の関係があるときには,集約オブジェクトは部品オブジェクトの属性と操作を共有する。

【解答】

【解説】

ア 1つのクラスは,複数のクラスと関係をもつことができる

ウ スーパークラスで定義されている操作は,サブクラス自身の操作として実行できる

エ 集約オブジェクトは部品オブジェクトへの参照を所有する(属性と操作は共有しない)

平成26年度 基本情報技術者試験 春期 午前 問47

 オブジェクト指向に基づく開発では,オブジェクトの内部構造が変更されても利用者がその影響を受けないようにすることができ,それによってオブジェクトの利用者がオブジェクトの内部構造を知らなくてもよいようにすることができる。これを実現するための概念を表す用語はどれか。

ア カプセル化イ クラス化ウ 構造化エ モジュール化

【解答】

【解説】

■ カプセル化

属性とメソッドを1つのオブジェクトとして一体化し,属性とメソッドの詳細をオブジェクトの外部から隠蔽することをいう。オブジェクト内部の属性やメソッドを変更した場合でも,他のオブジェクトは影響を受けない(受けにくい)。

「令和4年度 基本情報技術者試験 サンプル問題 科目A 午前 問38」の解答_画像

(令和4年度) 基本情報技術者試験 サンプル問題 科目A 問38

 オブジェクト指向プログラムにおいて,データとメソッドを一つにまとめ,オブジェクトの実装の詳細をユーザから見えなくすることを何と呼ぶか。

ア インスタンスイ カプセル化ウ クラスタ化エ 抽象化

【解答】

【解説】

■ カプセル化

属性とメソッドを1つのオブジェクトとして一体化し,属性とメソッドの詳細をオブジェクトの外部から隠蔽することをいう。オブジェクト内部の属性やメソッドを変更した場合でも,他のオブジェクトは影響を受けない(受けにくい)。

「令和4年度 基本情報技術者試験 サンプル問題 科目A 午前 問38」の解答_画像

平成22年度 基本情報技術者試験 秋期 午前 問46

 オブジェクト指向において,属性と振る舞いを一つにまとめた構造にすることを何というか。

ア カプセル化イ クラス化ウ 集約化エ 汎化

【解答】

【解説】

■ カプセル化

属性とメソッドを1つのオブジェクトとして一体化し,属性とメソッドの詳細をオブジェクトの外部から隠蔽することをいう。オブジェクト内部の属性やメソッドを変更した場合でも,他のオブジェクトは影響を受けない(受けにくい)。

「令和4年度 基本情報技術者試験 サンプル問題 科目A 午前 問38」の解答_画像

平成28年度 基本情報技術者試験 秋期 午前 問47

平成24年度 基本情報技術者試験 秋期 午前 問47

 オブジェクト指向におけるカプセル化を説明したものはどれか。

ア 同じ性質をもつ複数のオブジェクトを抽象化して,整理すること

イ 基底クラスの性質を派生クラスに受け継がせること

ウ クラス間に共通する性質を抽出し,基底クラスを作ること

エ データとそれを操作する手続を一つのオブジェクトにして,データと手続の詳細をオブジェクトの外部から隠蔽すること

【解答】

【解説】

■ カプセル化

属性とメソッドを1つのオブジェクトとして一体化し,属性とメソッドの詳細をオブジェクトの外部から隠蔽することをいう。オブジェクト内部の属性やメソッドを変更した場合でも,他のオブジェクトは影響を受けない(受けにくい)。

「令和4年度 基本情報技術者試験 サンプル問題 科目A 午前 問38」の解答_画像

ア 抽象化

イ 継承(インヘリタンス)

ウ 汎化

平成21年度 基本情報技術者試験 秋期 午前 問46

 オブジェクト指向でシステムを開発する場合のカプセル化の効果はどれか。

ア オブジェクトの内部データ構造やメソッドの実装を変更しても,ほかのオブジェクトがその影響を受けにくい。

イ 既存の型に加えてユーザ定義型を追加できるので,問題領域に合わせてプログラムの仕様を拡張できる。

ウ 子クラスとして派生するので,親クラスの属性を子クラスが利用できる。

エ 同一メッセージを送っても,受け手のオブジェクトによって,それぞれが異なる動作をするので,メッセージを受け取るオブジェクトの種類が増えても,メッセージを送るオブジェクトには影響がない。

【解答】

【解説】

■ カプセル化

属性とメソッドを1つのオブジェクトとして一体化し,属性とメソッドの詳細をオブジェクトの外部から隠蔽することをいう。オブジェクト内部の属性やメソッドを変更した場合でも,他のオブジェクトは影響を受けない(受けにくい)。

「令和4年度 基本情報技術者試験 サンプル問題 科目A 午前 問38」の解答_画像

イ オブジェクト指向に限らない

ウ 継承(インヘリタンス)

ウ ポリモーフィズム(多相性,多様性)

平成30年度 基本情報技術者試験 春期 午前 問46

 オブジェクト指向において,あるクラスの属性や機能がサブクラスで利用できることを何というか。

ア オーバーライドイ カプセル化
ウ 継承エ 多相性

【解答】

【解説】

■ 継承(インヘリタンス)

ある上位クラス(基底クラス,スーパークラス)の属性やメソッドを,下位クラス(派生クラス,サブクラス)に引き継ぐ性質をいう。サブクラスを定義する場合,継承により基底クラスの属性やメソッドに対する差異(差分)だけを定義すればよいので開発効率が高まる。

※ クラスは,階層構造を持つことができる(あるクラスを基本として,別の新しいクラスを作ることができる)

※ 多重継承…複数の上位クラスから属性やメソッドを継承すること。C++では可能。C#やJavaなどではできない

「平成30年度 基本情報技術者試験 春期 午前 問46」の解答_画像

平成27年度 基本情報技術者試験 春期 午前 問48

 オブジェクト指向の考え方に基づくとき,一般に“自動車”のサブクラスといえるものはどれか。

ア エンジンイ 製造番号ウ タイヤエ トラック

【解答】

【解説】

■ 継承(インヘリタンス)

ある上位クラス(基底クラス,スーパークラス)の属性やメソッドを,下位クラス(派生クラス,サブクラス)に引き継ぐ性質をいう。サブクラスを定義する場合,継承により基底クラスの属性やメソッドに対する差異(差分)だけを定義すればよいので開発効率が高まる。

※ クラスは,階層構造を持つことができる(あるクラスを基本として,別の新しいクラスを作ることができる)

※ 多重継承…複数の上位クラスから属性やメソッドを継承すること。C++では可能。C#やJavaなどではできない

「平成30年度 基本情報技術者試験 春期 午前 問46」の解答_画像

■ 汎化・特化(is-a)関係と集約・分解(part-of)関係

汎化・特化関係とは,下位クラスの共通する性質をまとめて上位クラスを定義する汎化と,上位クラスの共通する部分に個別の部分を加えて下位クラスを定義する特化の関係をいう。

集約・分解関係とは,複合オブジェクトと,それを構成するオブジェクトの関係をいう。

「平成27年度 基本情報技術者試験 春期 午前 問48」の解答_画像02

※ スーパークラスとサブクラスは,汎化-特化関係

ア,イ,ウ 集約-分解関係

平成26年度 基本情報技術者試験 秋期 午前 問47

 多相性を実現するときに,特有のものはどれか。

ア オーバーライドイ カプセル化
ウ 多重継承エ メッセージパッシング

【解答】

【解説】

■ ポリモーフィズム(多相性,多様性)

複数の子クラスに対して同じメッセージを送った場合に,それぞれのクラスが異なる動作をするという特性をいう。

■ オーバーライド

上位クラスで定義されたメソッドを,サブクラスで再定義することをいう。

※ ポリモーフィズムを実現するためには,上位クラスから引き継いだメソッドを,それぞれのサブクラスに合った内容で定義し直し,動作を上書きする

「平成29年度 基本情報技術者試験 秋期 午前 問7」の解答_画像

平成29年度 基本情報技術者試験 秋期 午前 問7

 オブジェクト指向プログラミングにおける,多相性を実現するためのオーバーライドの説明はどれか。

ア オブジェクト内の詳細な仕様や構造を外部から隠蔽すること

イ スーパークラスで定義されたメソッドをサブクラスで再定義すること

ウ 同一クラス内に,メソッド名が同一で,引数の型,個数,並び順が異なる複数のメソッドを定義すること

エ 複数のクラスの共通する性質をまとめて,抽象化したクラスを作ること

【解答】

【解説】

■ ポリモーフィズム(多相性,多様性)

複数の子クラスに対して同じメッセージを送った場合に,それぞれのクラスが異なる動作をするという特性をいう。

■ オーバーライド

上位クラスで定義されたメソッドを,サブクラスで再定義することをいう。

※ ポリモーフィズムを実現するためには,上位クラスから引き継いだメソッドを,それぞれのサブクラスに合った内容で定義し直し,動作を上書きする

「平成29年度 基本情報技術者試験 秋期 午前 問7」の解答_画像

ア カプセル化

ウ オーバーロード

エ 汎化

平成30年度 基本情報技術者試験 秋期 午前 問49

 オブジェクト指向における“委譲”に関する説明として,適切なものはどれか。

ア あるオブジェクトに対して操作を適用したとき,関連するオブジェクトに対してもその操作が自動的に適用される仕組み

イ あるオブジェクトに対する操作を,その内部で他のオブジェクトに依頼する仕組み

ウ 下位のクラスが上位のクラスの属性や操作を引き継ぐ仕組み

エ 複数のオブジェクトを部分として用いて,新たな一つのオブジェクトを生成する仕組み

【解答】

【解説】

■ 委譲(デリゲート)

あるオブジェクトが一部の処理を他のオブジェクトに依頼することをいう。

※ イベントハンドラ…特定のイベントが発生した際に実行される処理。委譲の仕組みを利用してメソッドを登録しておくことで実行できる

ア 伝搬(プロパゲーション)

ウ 継承(インヘリタンス)

エ 合成(コンポジション)

まとめ

 今回は,情報処理技術者試験の過去問(開発技術-オブジェクト指向設計とUML)を集めて,シンプルにまとめてみました。みなさん,どのくらい解けましたか?はじめは難しく感じると思いますが,繰り返し解くことにより,少しずつ理解できるようになると思います(8割以上(できれば9割以上)解けるようになるまで頑張りましょう)。また,解けるようになっても時間が経つと忘れることもありますので,たとえば,1週間後とか,1か月後とかに,また,やってみてください。