平成22年度 技術士第一次試験問題【専門科目】
【16】情報工学部門
W−1
次のJavaプログラムを実行した時に出力される結果を、@〜Dの中から選べ。
Class A {
 int var; Void incrVar () {
  var++;
 }
}

Class B extends A {
 void incrVar () {
  var += 2;
 }
}

Class Main {
 public static void main (String [] argv) {
 A a;
 B b, b2;

 b = new B(); b.var = 100;
 b2 = new B(); b2.var = 100;
 a = b2;
 a.incrVar();
 b.incrVar();
 System.out.println(a.var + " " + b.var);
 }
}
 @ 100 100
 A 101 101
 B 101 102
 C 102 101
 D 102 102



【正解】 D

Mainプログラムを追跡する。

b = new B();
b.var = 100; ・・・ b.var = 100
b2 = new B();
b2.var = 100; ・・・ b2.var = 100
a = b2;     ・・・ a と b2は同じオブジェクトになり、
a は class Bとなる。
           a.var = 100
a.incrVar();  ・・・a は 
class Bだから、
          a.var には 2が足される。.
b.incrVar(); ・・・ b.varには 2が足される。

従って、
a.var =
102
b.var =
102


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



目次 W−2
ファーストマクロ TOPページ