////////////////////////////////////////////////////////////////////////////////
//  << j222a.java >>
//
//  クラス(2):スコープ(フィールド変数のスコープ)
//
//  フィールド変数は、メソッド内で有効であることを確認する。
//
//  (1)メソッドm1開始直後のインスタンス変数aの参照。
//  (2)メソッドm1開始直後のクラス変数bの参照。
//  (3)メソッドm1内で変更後のインスタンス変数aの参照。
//  (4)メソッドm1内で変更後のクラス変数bの参照。
//  (5)メソッドm2開始直後のインスタンス変数aの参照。
//  (6)メソッドm2開始直後のクラス変数bの参照。
//  (7)メソッドm2内で変更後のインスタンス変数aの参照。
//  (8)メソッドm2内で変更後のクラス変数bの参照。
//  (9)オブジェクトobjの作成。
//
////////////////////////////////////////////////////////////////////////////////

class C {
  int a = 111; // インスタンス変数。
  static int b = 222; // クラス変数。
  void m1() {
    System.out.println("(1)a = " + a); //(1)
    System.out.println("(2)b = " + b); //(2)
    a = 333;
    b = 444;
    System.out.println("(3)a = " + a); //(3)
    System.out.println("(4)b = " + b); //(4)
  }
  void m2() {
    System.out.println("(5)a = " + a); //(5)
    System.out.println("(6)b = " + b); //(6)
    a = 555;
    b = 666;
    System.out.println("(7)a = " + a); //(7)
    System.out.println("(8)b = " + b); //(8)
  }
}

class j222a {
  public static void main(String args[]) {

    C obj = new C(); //(9)

    obj.m1();

    obj.m2();

  }

}
実行結果
% javac j222a.java
% java j222a
(1)a = 111
(2)b = 222
(3)a = 333
(4)b = 444
(5)a = 333
(6)b = 444
(7)a = 555
(8)b = 666