////////////////////////////////////////////////////////////////////////////////
//  << 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