////////////////////////////////////////////////////////////////////////////////
// << j222b.java >>
//
// クラス(2):スコープ(仮引数)
//
// ・仮引数は、ローカル変数である。
// ・仮引数とフィールド変数が同じ名前を持つとき、フィールド変数に
// 予約語thisを付けて区別する。
//
// 仮引数とフィールド変数が同じ名前を持つとき、フィールド変数に
// 予約語thisを付けて区別できることを確認する。
//
// (1)仮引数aの参照。
// (2)仮引数bの参照。
// (3)インスタンス変数aの参照。
// (4)クラス変数bの参照。
// (5)オブジェクトobjの作成。
//
////////////////////////////////////////////////////////////////////////////////
class C {
int a = 111; // インスタンス変数。
static int b = 222; // クラス変数。
void m(int a, int b) { // 仮引数a,bはローカル変数。
System.out.println("(1)a = " + a); //(1)
System.out.println("(2)b = " + b); //(2)
System.out.println("(3)this.a = " + this.a); //(3)
System.out.println("(4)this.b = " + this.b); //(4)
}
}
class j222b {
public static void main(String args[]) {
C obj = new C(); //(5)
obj.m(333,444);
}
}
実行結果
% javac j222b.java
% java j222b
(1)a = 333
(2)b = 444
(3)this.a = 111
(4)this.b = 222