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

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

總結得對否

比較兩個對象是否相等,如果是equals(),就是比較兩個對象的屬性,屬性值,類型是否相同;如果是==,就是比較兩個對象是否分配了不同的內存空間。

正在回答

3 回答

錯,equals才是比較兩個對象的內存空間

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

StaceySmile 提問者

謝謝!
2016-04-20 回復 有任何疑惑可以回復我~

Object類中默認的equals()方法是比較引用地址的,想要比較兩個對象的屬性是否相同,就要重寫equals()方法來做比較了。你沒刪除重寫的equals()方法,比較的是對象的屬性。應該是這樣理解的吧。

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

對。==比較的是地址,equals比較的是值。兩個值相同的字符串用==比較結果可能是false,而equals()則一定為true;除非兩個字符串是同一個new出來的對象,不然比較字符串是否相同用equals()。

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

StaceySmile 提問者

package exercise; public class initial { public static void main(String[] args) { Dog dog=new Dog(); Dog dog2=new Dog(); if(dog.equals(dog2)){ System.out.println("兩個對象是相同的"); } else System.out.println("兩個對象不相同"); } } 為什么我運行出來的結果跟老師講的不一樣?結果是:兩個對象是相同的
2016-04-20 回復 有任何疑惑可以回復我~
#2

StaceySmile 提問者

我知道原因了,我忘記把子類里添加的equals()方法刪除了,子類里添加的equals()方法是以==比較的,所以才出現了相反的結果。
2016-04-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

總結得對否

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

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

幫助反饋 APP下載

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

公眾號

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