課程
/后端開發
/Java
/Java入門第三季
如果三個前三個If都通過了話,說明obj就是Course類型了,那么為什么還要寫 Course course=(Course)obj;
為什么還要把obj強制轉化成obj類型了呢?
2015-07-10
源自:Java入門第三季 6-1
正在回答
equals方法是有Object類定義的,所有類型都必須要有此方法,因此其參數必須是Object類型的對象,其功能是比較兩個對象的值是否相等,如果相等則返回true否則返回false。
當我們覆寫此方法的時候即希望能夠能夠比較同種類型的兩個對象,如上題的,Course類型的對象。
比較思路:
1、先判斷地址,如果地址一樣則是同樣一個對象,則返回true,否則進行第2點的比較
2、如果要比較的對象是空(本對象(this)能調用equals方法肯定不為空),則返回false,否則進行第3點比較
3、如果要比較的對象不是當前本對象(this)的類型則返回false(豬和狗比較的結果是false),否則進行第4點比較
4、如果能運行到此處說明要比較的對象和本對象是同中類型(比較的基礎),此時可根據需要自定義規則,如只要課程的名字一樣則就認為其值相同。舉個例子:一個人和另一個人比較的時候我們希望自要身份證號碼和姓名相同則認為是同一個人返回true,這時候我們就可以做兩判斷,一個身份證號碼和姓名是否相等的判斷
南國雨 提問者
康振寧 回復 南國雨 提問者
好的,已看到,謝謝!
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
1 回答equals方法重寫
1 回答重寫equals方法的問題
1 回答在最后重寫的equals方法
4 回答為啥containsKey()方法不需要重寫equals()方法????
2 回答關于重寫equals方法的疑問
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-07-13
equals方法是有Object類定義的,所有類型都必須要有此方法,因此其參數必須是Object類型的對象,其功能是比較兩個對象的值是否相等,如果相等則返回true否則返回false。
當我們覆寫此方法的時候即希望能夠能夠比較同種類型的兩個對象,如上題的,Course類型的對象。
比較思路:
1、先判斷地址,如果地址一樣則是同樣一個對象,則返回true,否則進行第2點的比較
2、如果要比較的對象是空(本對象(this)能調用equals方法肯定不為空),則返回false,否則進行第3點比較
3、如果要比較的對象不是當前本對象(this)的類型則返回false(豬和狗比較的結果是false),否則進行第4點比較
4、如果能運行到此處說明要比較的對象和本對象是同中類型(比較的基礎),此時可根據需要自定義規則,如只要課程的名字一樣則就認為其值相同。舉個例子:一個人和另一個人比較的時候我們希望自要身份證號碼和姓名相同則認為是同一個人返回true,這時候我們就可以做兩判斷,一個身份證號碼和姓名是否相等的判斷
2015-07-14
好的,已看到,謝謝!