重寫(xiě)equals方法
如果三個(gè)前三個(gè)If都通過(guò)了話,說(shuō)明obj就是Course類型了,那么為什么還要寫(xiě) Course course=(Course)obj;
為什么還要把obj強(qiáng)制轉(zhuǎn)化成obj類型了呢?
如果三個(gè)前三個(gè)If都通過(guò)了話,說(shuō)明obj就是Course類型了,那么為什么還要寫(xiě) Course course=(Course)obj;
為什么還要把obj強(qiáng)制轉(zhuǎn)化成obj類型了呢?
2015-07-10
舉報(bào)
2015-07-13
equals方法是有Object類定義的,所有類型都必須要有此方法,因此其參數(shù)必須是Object類型的對(duì)象,其功能是比較兩個(gè)對(duì)象的值是否相等,如果相等則返回true否則返回false。
當(dāng)我們覆寫(xiě)此方法的時(shí)候即希望能夠能夠比較同種類型的兩個(gè)對(duì)象,如上題的,Course類型的對(duì)象。
比較思路:
1、先判斷地址,如果地址一樣則是同樣一個(gè)對(duì)象,則返回true,否則進(jìn)行第2點(diǎn)的比較
2、如果要比較的對(duì)象是空(本對(duì)象(this)能調(diào)用equals方法肯定不為空),則返回false,否則進(jìn)行第3點(diǎn)比較
3、如果要比較的對(duì)象不是當(dāng)前本對(duì)象(this)的類型則返回false(豬和狗比較的結(jié)果是false),否則進(jìn)行第4點(diǎn)比較
4、如果能運(yùn)行到此處說(shuō)明要比較的對(duì)象和本對(duì)象是同中類型(比較的基礎(chǔ)),此時(shí)可根據(jù)需要自定義規(guī)則,如只要課程的名字一樣則就認(rèn)為其值相同。舉個(gè)例子:一個(gè)人和另一個(gè)人比較的時(shí)候我們希望自要身份證號(hào)碼和姓名相同則認(rèn)為是同一個(gè)人返回true,這時(shí)候我們就可以做兩判斷,一個(gè)身份證號(hào)碼和姓名是否相等的判斷
2015-07-14
好的,已看到,謝謝!