基本情報

基本情報 平成25年度 秋期 問48|テクノロジ系に関する問題

問題

基本情報 | 平成25年度 秋期 | 分野:テクノロジ系

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

キーボード:1〜4で選択・Enterで次へ

タップするとすぐ答え合わせ

答え合わせ

正解は D
  • A
  • B
  • C
  • D

自信の3択

えらぶと、この端末に記録します(登録はいりません)

解説

答えは d「メソッド」 です。

オブジェクト指向は「モノとモノの動き」を分けて考える設計の考え方です。

  • クラス:設計図(犬という種類)
  • インスタンス:その設計図から作った実物(ポチ、タロウ)
  • 属性:モノの特徴(毛色・体重)
  • メソッド:モノができる行動(吠える・走る)

👉 覚え方:「メソッド=モノができる行動/メソッド=Method=やり方」。

オブジェクトの“振る舞い(行動)”を書いたものがメソッドです。

なぜこれが正解か

正解は d メソッド。オブジェクト指向では、オブジェクトの振る舞い(behavior)を記述したものをメソッドと呼ぶ。クラス内で関数として定義され、外部からの呼び出し(メッセージ)に応じて処理を実行する。

各選択肢の解説

  • a インスタンス:クラスから生成された実体(オブジェクト)。
  • b クラス:オブジェクトの設計図(属性とメソッドの定義集合)。
  • c 属性(フィールド・プロパティ):オブジェクトが持つデータ。
  • d メソッド:オブジェクトが持つ振る舞い(操作・関数)。

覚え方・ひっかけ注意

オブジェクト指向4要素「クラス=設計図、インスタンス=実体、属性=データ(状態)、メソッド=振る舞い(操作)」をセット記憶。カプセル化は属性とメソッドを1つにまとめる原理で、属性はprivate(外部直接アクセス禁止)、メソッド経由でアクセスさせるのが原則。「振る舞い」「操作」「ふるまい」と書かれていれば即メソッド。

理論的背景

オブジェクト指向プログラミング(OOP)の3大原則は (1) カプセル化(encapsulation)、(2) 継承(inheritance)、(3) 多態性(polymorphism)。クラス(class)はオブジェクトの型を定義し、属性(attribute/field/state)と操作(method/operation/behavior)から構成される。インスタンス化により実体オブジェクトを生成、各インスタンスは独立した状態を保持。メソッドはディスパッチ(呼び出し解決)方式により (1) 静的(コンパイル時、static method) と (2) 動的(実行時、virtual method) に分類され、動的ディスパッチが多態性を実現する。

実務での使われ方

Java・C#・C++・Python・Rubyなど主要言語がOOPを支援。実務では デザインパターン(Gang of Four 23パターン)が設計再利用の標準ボキャブラリ:Singleton、Factory、Observer、Strategy、Decoratorなど。SOLID原則(Single Responsibility、Open/Closed、Liskov Substitution、Interface Segregation、Dependency Inversion)が設計品質の指針。ドメイン駆動設計(DDD)ではEntity・Value Object・Aggregate・Repository・Service・Factory・DomainEventなど業務概念をオブジェクトとして表現。テスト時はモックオブジェクトでメソッド呼び出しを検証し、振る舞いベースのテスト(BDD)を実施。

試験での位置づけ

FE・APソフトウェア設計分野の頻出。OOP用語、UML図(クラス図・シーケンス図・ユースケース図・状態遷移図・アクティビティ図)、設計原則、デザインパターンと関連付けて出題。応用情報・データベーススペシャリストでは抽象クラス・インタフェース・ジェネリクス・ラムダ式、関数型プログラミングとのハイブリッド設計まで踏み込む。

関連事項・発展補足

属性(c)はインスタンス変数・クラス変数(静的フィールド)に分かれ、JavaのprivateフィールドはGetter/Setterメソッドでアクセスを制御するのが標準。クラス(b)は単一継承(Java・C#)と多重継承(C++・Python)で言語仕様が分かれ、Javaは多重継承の代替としてインタフェースを提供。インスタンス(a)はnewキーワードで明示生成、ガベージコレクタが不要オブジェクトを自動回収。メソッドオーバーロード(同名・引数違い)とオーバーライド(親クラスメソッドの再定義)の区別、抽象メソッド(実装なし、サブクラスで実装必須)、ファクトリメソッド(オブジェクト生成専用)も頻出概念。最近の言語潮流ではOOPと関数型を融合したマルチパラダイム(Scala・Kotlin・Swift・Rust)が主流化し、純粋OOP(Smalltalk流)よりも実用的バランスが求められる。

この問題の根拠出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成25年度 秋期 問48
訂正の記録この問題の訂正はありません(サイト全体の記録)
出典と作り方

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成25年度 秋期 問48/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビ独自の3段階の解説(初級・標準・上級)です。