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