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

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

還是不理解

老師,既然Foo是Class的實例對象,c1、c2也是Class的實例對象,但為什么Foo和c1、c2不相等呢?它們既然都是Class的實例對象,應該是同一類型,是可以比較的呀,但為什么不能比較呢

正在回答

6 回答

你拿類名去和一個對象比較?

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

五十陽 提問者

那老師說的這個類名是Class的實例對象,而c1也是Class的實例對象
2017-06-01 回復 有任何疑惑可以回復我~
#2

五十陽 提問者

2017-06-16 回復 有任何疑惑可以回復我~

你可以通過instansof看看唄,肯定都是同一類型啊,只是實例化方式不同而已.

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

五十陽 提問者

若是同一類型,那最起碼能通過編譯吧,但是比較時編譯都不能通過,會報錯例如:Foo.equals(c1)或者Foo==c1都會報錯,而必須要用Class.forName(Foo的全路徑)這樣才能比較
2017-06-01 回復 有任何疑惑可以回復我~

c1和c2指向同一地址肯定想等啊,你自己去看看父類object類的equals方法吧;要比較就要重寫hascode和equals方法;實例化得對象不是地址是什么?你自己直接輸出實例化的對象看看,能比較內容的都是重父類的equals方法的。還不懂就去看看api上面有具體的代碼,你自己就能看到它是怎么比較實現的。


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

五十陽 提問者

我的意思是foo、c1、c2都是Class的實例對象,但好像foo和c1還有c2根本就不是同一類型
2017-06-01 回復 有任何疑惑可以回復我~

因為每一個實例化對象都對應著不同的內存空間,所以說他們不相等;我們可以通過重寫hascode和tostring方法去實現同一類型的比較。


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

五十陽 提問者

但是c1、c2就相等呀,而且用equals比較的是內容呀,不是引用對象首地址呀
2017-06-01 回復 有任何疑惑可以回復我~

行,希望能看懂吧

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

我也是,多看幾遍吧.

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

舉報

0/150
提交
取消
反射——Java高級開發必須懂的
  • 參與學習       151656    人
  • 解答問題       343    個

反射,Java高級開發必須要懂的知識點,學好Java高級課程的基礎

進入課程

還是不理解

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

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

幫助反饋 APP下載

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

公眾號

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