////////////////////////////////////////////////////////////////////////////////
// << j232a.java >>
//
// クラス(3):引数(基本型 値渡し)
//
// 「値渡し」結果、メソッド内で仮引数に変更がなされても、
// 実引数にその影響は及ばないことを確認する。
//
// (1)オブジェクトobjの作成。
// (2)実引数nに111を代入。
// (3)メソッドmの呼び出し。
// (4)メソッド内で仮引数の変更。
//
////////////////////////////////////////////////////////////////////////////////
class C {
void m(int a) {
System.out.println("メソッド開始直後:a = " + a);
a = -a; //(4)
System.out.println("メソッド終了直前:a = " + a);
}
}
class j232a {
public static void main(String args[]) {
C obj = new C(); //(1)
int n = 111; //(2)
System.out.println("値渡し実行前:n = " + n);
obj.m(n); //(3)
System.out.println("値渡し実行後:n = " + n);
}
}
実行結果
% javac j232a.java
% java j232a
値渡し実行前:n = 111
メソッド開始直後:a = 111
メソッド終了直前:a = -111
値渡し実行後:n = 111