亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

course2用equals比較為什么出來的是false?

如題,equals比較的不是引用的值嗎?這里新創建的course2的值和courseToSelect中的值一模一樣,為什么還返回了false。 前面說過 ==

?比較的是引用指向的對象地址,equals比較的是值。

正在回答

4 回答

你這是把Object和String的equals方法搞混了? ?String類的equals方法比較的是值,==比較地址? ?但是Object類的equals方法是比較對象引用是否相等? 所以若想比較值需要重寫equals方法

0 回復 有任何疑惑可以回復我~

因為你new了兩個對象,雖然他們倆的內部屬性,方法都是一樣,但是他們還是兩個對象,也就是說在內存里面他開辟了兩個空間給這兩個對象。這就好比你的家和我的家里面的東西擺放都跟我的家一樣,但是門牌號不一樣,這就不能說我和你的家是同一家。。。

0 回復 有任何疑惑可以回復我~

contains中用的是Course類中繼承父類的equals方法,比較的是地址。course2是新new的對象,它開辟了新的地址,并沒有add到list中。而course是從list中get出來的,它的地址本來就在list中。

1 回復 有任何疑惑可以回復我~

Object類中的equals方法用于檢測一個對象是否等于另一個對象。在Object類中,這個方法將判斷兩個對象是否具有相同的引用。開始,Course類中equals()方法沒有重寫,所以是繼承的Object類的方法。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

course2用equals比較為什么出來的是false?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號