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

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

equals方法真心看不懂 哪位好心人講解下

方法的()里的實參為什么是Object obj呀 Object是類型嗎?實參不是具體的值嗎

第三個if中getcalss()!=obj。getcalss() 左邊是得到的類對象嗎 右邊呢?

最后dog other=(dog)obj視頻說是轉換類型 搞不懂 前面沒見過這個呀

http://img1.sycdn.imooc.com//57fb180e00016e6304810413.jpg

正在回答

1 回答

逐一作答了

  1. Object是java中所有類的父類,所以()中的Object obj的意思就是傳入一個Object類型的obj引用,這里是形參,但你使用的時候肯定傳入的是具體的對象變量了啊

  2. getClass()是反射方法,功能是得到當前對象的類,這行代碼的意思就是判斷當前對象的類是否與傳入的obj對象引用同屬一個類型,如果不是就沒有必要比較其成員變量屬性值了,直接返回false;

  3. Dog other = (Dog)obj;是屬于強制類型轉換,因為本方法中傳入的是Object對象引用,但我們比較的是Dog對象而且我們靜態getClass方法已經可以確認該obj引用對象實際上是一個Dog對象,所以這時候為了比較對象之間的成員變量屬性值是否相同(封裝性的原因,父類對象引用無法使用子類對象的屬性),我們就要將傳入的obj進行強制類型轉換,即向下轉型為Dog對象

  4. 不用太糾結這些,弄明白equals方法的原理就行了,反射以后會慢慢學到的

  5. 默認的Object的equals方法的實現是比較當前對象的引用和要比較的引用是否指向同一個對象,我們平時使用的時候經常需要重寫equals方法使它能比較對象的“值”是否相等,明白這一點就可以向下進行了!

  6. 純手打,望采納

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

qq_浮雲遊子_03977413 提問者

你說的getclass()是得到當前對象的類 但是 視頻里說的是類對象呀 一樣嗎?
2016-10-16 回復 有任何疑惑可以回復我~
#2

JustWannaHugU 回復 qq_浮雲遊子_03977413 提問者

是的,一個意思
2016-10-16 回復 有任何疑惑可以回復我~
#3

qq_浮雲遊子_03977413 提問者 回復 JustWannaHugU

謝謝了
2016-10-17 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

equals方法真心看不懂 哪位好心人講解下

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

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

幫助反饋 APP下載

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

公眾號

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