最后那個equals的那個比較程序什么意思???好復雜
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Dog other = (Dog) obj;
if (age != other.age)
return false;
return true;
}
這TM到底什么鬼?用來干什么?other這個對象怎么憑空來的?this指的是哪個對象?
2016-12-12
看下一節 多態 有答案。
2016-11-21
默認的epuals方法判斷的是兩個對象所指向的空間地址是否是同一個地址。這段代碼就用來判斷兩個對象(分別指向不同的空間地址時)他們每個具體的屬性的值是否相同。this==obj這句的意思就是比較當前操作的對象與obj這個對象的空間地址是否相同(this就是代表操作當前的對象obj就是比較的那個對象。).這里的other是他自己強制將obj對象轉換為Dog類的對象然后將這個對象賦給other,這里的other就起到了引用的作用。這是默認的。如果你自己寫的話也可以隨意的用一個詞來代替other一樣的。就跟你的名字一樣是個代號。