2017-02-18 7 views
-2

だから私は説明を探しています。私はそれを返すメソッドを渡されたオブジェクトのcv.chによってインスタンス変数を返すことができるequalsメソッドを持っています。これはどうですか?インスタンス変数を返すメソッドを持たないインスタンス変数を返すための理解

public static class Test { 
    private int v; 

    private char ch; 

    public Test(int v, char ch) { 

     this.v= v; 

     this.ch= ch; 

    } 

    public boolean equals(Object o) { 
     if (this == o) return true; 
     if (o == null || this.getClass() != o.getClass()) 
      return false; 
     Test cv = (Test) o; 
     if (this.v == cv.v && this.ch == cv.ch) 
      return true; 
     return false; 

    } 

} 

編集:それは優れているように、私は私の質問を言い換えは

+0

* "インスタンス変数を返すメソッドが常に必要だと思ったのですか?" * - それは間違っています。 –

答えて

0

プライベートメンバ変数がそれらを所有しているクラス、テストにアクセスできます理解しました。 Testにあるコードは、「this」などの変数を使用しているかどうかにかかわらず、これらのフィールドにアクセスできます。

特に、JLSは、「メンバーまたはコンストラクタがプライベートと宣言されていると、メンバーの宣言を囲むトップレベルクラス(7.6)の本体内で発生した場合にのみアクセスが許可されますまたはコンストラクタです。

関連する問題