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