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

 

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 ClassA ClassC
 C ClassB ClassC ClassA
 D ClassC ClassB ClassA



【正解】 B
問題図の矢印とともに描かれている
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() は i
nsPのメソッド methodYを呼び出す。

という意味になる。

EXCELのマクロのご相談なら ファーストマクロ 



V−14 目次 V−16
ファーストマクロ TOPページ