////////////////////////////////////////////////////////////////////////////////
// << j221c.java >>
//
// クラス(2):変数(クラス変数の性質2)
//
// クラス変数は、同じクラスから作成されたオブジェクトが複数存在するとき、
// 他のオブジェクトでの値の更新の影響を受けることを確認する。
//
// (1)クラス変数bの定義と初期化。
// (2)1番目のオブジェクトを作成。
// (3)2番目のオブジェクトを作成。
// (4)クラス変数bを参照。
// (5)クラス変数bへ111を代入。
// (6)クラス変数bを参照。
// (7)クラス変数bへ222を代入。
// (8)クラス変数bを参照。
//
////////////////////////////////////////////////////////////////////////////////
class C {
static int b = 0; //(1)
}
class j221c {
public static void main(String args[]) {
C obj1= new C(); //(2)
C obj2= new C(); //(3)
System.out.println("(4)obj1.b: " + obj1.b); //(4)
System.out.println("(4)obj2.b: " + obj2.b); //(4)
System.out.println("(4)C.b: " + C.b); //(4)
obj1.b = 111; //(5)
System.out.println("(6)obj1.b: " + obj1.b); //(6)
System.out.println("(6)obj2.b: " + obj2.b); //(6)
System.out.println("(6)C.b: " + C.b); //(6)
obj2.b = 222; //(7)
System.out.println("(8)obj1.b: " + obj1.b); //(8)
System.out.println("(8)obj2.b: " + obj2.b); //(8)
System.out.println("(8)C.b: " + C.b); //(8)
}
}
実行結果
% javac j221c.java
% java j221c
(4)obj1.b: 0
(4)obj2.b: 0
(4)C.b: 0
(6)obj1.b: 111
(6)obj2.b: 111
(6)C.b: 111
(8)obj1.b: 222
(8)obj2.b: 222
(8)C.b: 222