基本情報 平成25年度 春期 問48:テクノロジ系に関する問題
オブジェクト指向開発において, オブジェクトのもつ振る舞いを記述したものを何 というか。
- aインスタンス
- bクラス
- c属性
- dメソッド正答
AI解説(初心者・標準・上級)
理解度に合わせて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/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。