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

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

重寫equals方法

如果三個前三個If都通過了話,說明obj就是Course類型了,那么為什么還要寫 Course course=(Course)obj;

為什么還要把obj強制轉化成obj類型了呢?

正在回答

1 回答

equals方法是有Object類定義的,所有類型都必須要有此方法,因此其參數必須是Object類型的對象,其功能是比較兩個對象的值是否相等,如果相等則返回true否則返回false。

當我們覆寫此方法的時候即希望能夠能夠比較同種類型的兩個對象,如上題的,Course類型的對象。

比較思路:

1、先判斷地址,如果地址一樣則是同樣一個對象,則返回true,否則進行第2點的比較

2、如果要比較的對象是空(本對象(this)能調用equals方法肯定不為空),則返回false,否則進行第3點比較

3、如果要比較的對象不是當前本對象(this)的類型則返回false(豬和狗比較的結果是false),否則進行第4點比較

4、如果能運行到此處說明要比較的對象和本對象是同中類型(比較的基礎),此時可根據需要自定義規則,如只要課程的名字一樣則就認為其值相同。舉個例子:一個人和另一個人比較的時候我們希望自要身份證號碼和姓名相同則認為是同一個人返回true,這時候我們就可以做兩判斷,一個身份證號碼和姓名是否相等的判斷


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

南國雨 提問者

你好,我看了你的回復,挺細致的。 但是,有關你所說的第四點我還是有點不太明白。 我的問題是:按照你第四點所描述的,如果要比較的對象和本對象是同種類型的話,為什么還要寫 Course course=(Course)obj; 這段代碼,來進行類型轉化呢? 嗚嗚!我就一直卡在這里了,希望能進一步得到你的指點! 謝謝!
2015-07-13 回復 有任何疑惑可以回復我~
#2

康振寧 回復 南國雨 提問者

你看一下問答下面的問題,有和你一樣的,我也有過回答
2015-07-14 回復 有任何疑惑可以回復我~
#3

南國雨 提問者

非常感謝!
2015-07-14 回復 有任何疑惑可以回復我~

好的,已看到,謝謝!

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

舉報

0/150
提交
取消

重寫equals方法

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

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

幫助反饋 APP下載

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

公眾號

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