object0とはObject.equalsを(上書きされていない特定のタイプの両方がオブジェクト1ですequals()をオーバーライドしていない型のオブジェクトのJava参照の等価性がequals()と等しくない場合がありますか?
(object0 == object1) != (object0.equals(object1))
)ことを意味するかもしれないことのどこぶらぶらどんな魔法はありますか?
object0とはObject.equalsを(上書きされていない特定のタイプの両方がオブジェクト1ですequals()をオーバーライドしていない型のオブジェクトのJava参照の等価性がequals()と等しくない場合がありますか?
(object0 == object1) != (object0.equals(object1))
)ことを意味するかもしれないことのどこぶらぶらどんな魔法はありますか?
いいえこれはObjectの定義とまったく同じです。 equals()。
...この方法は、(x == yは、真の値を有する)は、xとyが同じオブジェクトを参照する場合にのみ真を返す...
public boolean equals(Object o) {
return this == o;
}
いいえ、equals()
がオーバーライドされていない場合、オブジェクトがメモリ内の同じ同一オブジェクトである場合はtrueを返します。
Object.java srcは、そのequalsメソッドを次のように定義します。
return (this == obj)
のでない:-)
号object0の実際のクラス(必ずしも変数の宣言された型)は)(等号をオーバーライドしていなければなりません。 object0.getClass()を出力してみてください。
ここではソースコードでありますObject.equalsのために:で、 "object0
のタイプはObject.equals()
をオーバーライドしていない" のであれば
public boolean equals(Object obj) {
151 return (this == obj);
152 }
153
、第
はい、あなたは意味スーパークラスではありません。
object0
とobject1
はタイプBである場合、BはAに延びており、Aはequals(Object obj)
をオーバーライドが、Bにはない、Bがequals(Object obj)
しかし(object0 == object1) != (object0.equals(object1))
を上書きしないことが可能です。
Object0 == nullおよびobject1 == nullの場合、最初のオブジェクトはtrueを返し、2番目のオブジェクトはNullPointerExceptionを返します.-それ以外は、観察可能な違いはありません。
オブジェクトはイコール()自分自身を上書きしませんが、オブジェクトのスーパークラスの1は、equals()メソッドをオーバーライドすることは可能です...
Eclipseを使用している場合:object.javaを開きますcontrol + oを2回押します。 'equals'と入力して 'equals'メソッドが1つしかないかどうかを確認します。オブジェクトのequalsメソッド
はい、は定義されていません。
@egaga。それは... NullPointerExceptionをスローするために定義されています! –