////////////////////////////////////////////////////////////////////////////////
//  << j211c.java >>
//
//  クラス(1):オブジェクト(オブジェクトの代入と一致)
//
// ●オブジェクトの一致
//
//  オブジェクトの一致、不一致をequalsメソッドで確認する。
//
//  (1)1番目のオブジェクトobj1を作成。
//  (2)2番目のオブジェクトobj2を作成。
//  (3)作成後、obj1, obj2がオブジェクトとして一致するかしないか判定。
//  (4)obj1をobj2に代入。
//  (5)代入後、obj1, obj2がオブジェクトとして一致するかしないか判定。
//
////////////////////////////////////////////////////////////////////////////////

// クラス(C)の定義。
class C { 
  int n = 0; // フィールドの定義。
  int m(int a) { // メソッド(m)の定義。
    return 2*a;
  }
}

// クラス(j211c)の定義。
class j211c { 

  public static void main(String args[]) {

    C obj1 = new C(); //(1)
    C obj2 = new C(); //(2)

    //(3)
    if( obj1.equals(obj2)) {
      System.out.println("(3)obj1とobj2は一致する");
    } else { 
      System.out.println("(3)obj1とobj2は一致しない");
    }

    obj2 = obj1; //(4)

    //(5)
    if( obj1.equals(obj2)) {
      System.out.println("(5)obj1とobj2は一致する");
    } else { 
      System.out.println("(5)obj1とobj2は一致しない");
    }

  }

}
実行結果
% javac j211c.java
% java j211c
(3)obj1とobj2は一致しない
(5)obj1とobj2は一致する