課程
/后端開發(fā)
/Java
/Java入門第三季
equals()方法為什么只比較屬性的值而不比較類的方法是否相同呢?
2018-01-04
源自:Java入門第三季 6-1
正在回答
在老師重寫的equals代碼中開始有三個(gè)判定條件
if (this == obj)????????//如果直接可以用==判定會(huì)直接返回true
if(obj==null)????????? ?//如果obj為null會(huì)直接返回false
if(!(obj instanceof Course))????//注意這一條已經(jīng)在判定obj和Course是否是同一類型了,只有在判定是同類型的情況下才會(huì)進(jìn)行后續(xù)的(Course)obj強(qiáng)制類型轉(zhuǎn)換,否則返回false。
綜上兩個(gè)對(duì)象完全是同一類型的,那么他們可以調(diào)用的方法一定也相同。
回到具體的例子中,我們程序的目的是判定List coursesToSelect中是否包含課程,我們的目的是通過(guò)Course.name屬性判定是否存在包含關(guān)系。從實(shí)際角度出發(fā),如果待選課程中包含
????1.高數(shù)????2.語(yǔ)文????3.毛概
我們判定某個(gè)Course對(duì)象是否包含于其中的時(shí)候也只需要比較"高數(shù)",是不是和待選課程中的某一項(xiàng)名稱一樣,也就是只需要判定name屬性就足夠了。
白澤飛落 提問(wèn)者
題目沒(méi)有看懂,Java中,非數(shù)值比較,通常使用equals方法。
舉報(bào)
Java中你必須懂得常用技能,不容錯(cuò)過(guò)的精彩,快來(lái)加入吧
2 回答equals();方法比較的是兩個(gè)對(duì)象的內(nèi)容是否相同。為什么在Object類里面比較兩個(gè)引用對(duì)象時(shí),比較的卻是對(duì)象的引用是否指向同一塊地址?必須要重寫equals();方法
4 回答為什么老師重寫的equals方法中name需要用equals()進(jìn)行比較而不用==?
2 回答為什么我想通過(guò)compare方法實(shí)現(xiàn)比較2個(gè)屬性來(lái)排序的方法不對(duì)呢
5 回答為什么用equals比較是false
4 回答equals()到底是比較什么
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-03-15
在老師重寫的equals代碼中開始有三個(gè)判定條件
if (this == obj)????????//如果直接可以用==判定會(huì)直接返回true
if(obj==null)????????? ?//如果obj為null會(huì)直接返回false
if(!(obj instanceof Course))????//注意這一條已經(jīng)在判定obj和Course是否是同一類型了,只有在判定是同類型的情況下才會(huì)進(jìn)行后續(xù)的(Course)obj強(qiáng)制類型轉(zhuǎn)換,否則返回false。
綜上兩個(gè)對(duì)象完全是同一類型的,那么他們可以調(diào)用的方法一定也相同。
回到具體的例子中,我們程序的目的是判定List coursesToSelect中是否包含課程,我們的目的是通過(guò)Course.name屬性判定是否存在包含關(guān)系。從實(shí)際角度出發(fā),如果待選課程中包含
????1.高數(shù)????2.語(yǔ)文????3.毛概
我們判定某個(gè)Course對(duì)象是否包含于其中的時(shí)候也只需要比較"高數(shù)",是不是和待選課程中的某一項(xiàng)名稱一樣,也就是只需要判定name屬性就足夠了。
2018-01-04
題目沒(méi)有看懂,Java中,非數(shù)值比較,通常使用equals方法。