最后那個(gè)equals的那個(gè)比較程序什么意思啊?好復(fù)雜
@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這個(gè)對(duì)象怎么憑空來的?this指的是哪個(gè)對(duì)象?
2016-12-12
看下一節(jié) 多態(tài) 有答案。
2016-11-21
默認(rèn)的epuals方法判斷的是兩個(gè)對(duì)象所指向的空間地址是否是同一個(gè)地址。這段代碼就用來判斷兩個(gè)對(duì)象(分別指向不同的空間地址時(shí))他們每個(gè)具體的屬性的值是否相同。this==obj這句的意思就是比較當(dāng)前操作的對(duì)象與obj這個(gè)對(duì)象的空間地址是否相同(this就是代表操作當(dāng)前的對(duì)象obj就是比較的那個(gè)對(duì)象。).這里的other是他自己強(qiáng)制將obj對(duì)象轉(zhuǎn)換為Dog類的對(duì)象然后將這個(gè)對(duì)象賦給other,這里的other就起到了引用的作用。這是默認(rèn)的。如果你自己寫的話也可以隨意的用一個(gè)詞來代替other一樣的。就跟你的名字一樣是個(gè)代號(hào)。