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