class Dog{
int height;
int weight;
String name;
}
public class DogTest {
public static void main(String[] args) {
Dog one = new Dog();
one.height=4;
one.name="fudo";
one.weight =2;
Dog two = new Dog();
two.height=4;
two.name="fudo";
two.weight =2;
if (one.equals(two)){
System.out.println("True");
}
else{
System.out.println("False");
}
}
}
爲什麼這個輸出是「假」?如果在Java中默認「即使它們具有相同值,所有對象都不相同」,那麼我怎樣才能「說服」Java這兩個對象實際上是平等的呢?好吧,即使兩隻狗有相同的名字,身高,體重,可以是不透明的,另一隻是公牛,即使它們在性質上是相同的「種族」,它們總是可以彼此不同。我知道通過說if(one == two){}我們正在比較它們是否都指向堆上的同一個對象,如果字符串中的.equals比較它們是否具有相同順序的相同字符。爲什麼.equals()代碼示例返回「false」?
如果你不覆蓋等於,我將很難工作... –
@Harald這是不一樣的。這就是爲什麼一些字符串「==」適用於其他字符串,而另一些則不適用。 – corsiKa