2019年11月09日

令和元年度 技術士第一次試験問題 情報工学部門 V−19

V−19

以下のシーケンス図をJavaプログラムで表現したときに、プログラム中の (a) 〜 (c) に入る組合せとして、最も適切なものはどれか。
令和元年度 技術士第一次試験問題 情報工学部門 V−19

class (a) {
 (c) insP;
 void methodX() {
  insP.methodY();
 }
}

class (b) {
 (a) insQ;
 void method1() {
  insQ.methodX();
 }
 void methodZ() {
 }
}

class (c) {
 (b) insR;
 void methodY() {
 }
 method2() {
  insR.methodZ();
 }
}

   a    b    c

@ ClassA ClassB ClassC

A ClassA ClassC ClassB

B ClassB ClassC ClassA

C ClassB ClassA ClassC

D ClassC ClassA ClassB





類題

H28 V-15


正解

C


解説

問題図の矢印とともに描かれている 1. methodX() は、「ClassBで定義されているmethodX() を呼び出す」という意味である。
従ってクラスBでmethodX() を定義しておく必要があり、class (a) は class ClassB であることが判る。

同様に、2.methodY() は、「ClassCで定義されているmethody() を呼び出す」という意味である。
従ってクラスCでmethodY() を定義しておく必要があり、class (c) は class ClassC であることが判る。

同様に 3.methodZ() はクラスAで定義しておく必要がある。

ちなみに
class ClassB {
 ClassC insP;
 void methodX() {
  insP.methodY();
 }
}
は、

ClassBを定義する
 ClassC の実体を insPと定義する
 メソッド methodX() は insPのメソッド methodYを呼び出す

という意味になる。

タグ:JAVA
posted by ファーストマクロ at 08:19| Comment(0) | R01技術士一次試験(情報工学)
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: