自定義類覆寫equals方法

2021-09-08 01:23:10 字數 987 閱讀 3527

我們通過前面的學習可以知道,string模擬較內容是否相等使用equals()方法,原因就是系統已經覆寫了string類中的equals()方法。故能否正常比較兩個類例項化物件內容是否相等,關鍵在於此類是否覆寫了equals()方法。

覆寫equals()方法思路:

(1)判斷要比較物件的是否為null,若是直接返回false,若不比較則可能會出現空指標異常(nullpointerexception);

(2)判斷是否在與自身比較(通過==比較位址),若是直接返回true;

(3)判斷要比較的兩個物件是否為同類,若是再進行接下來比較,若不是直接返回false。若不判斷,則可能出現強轉異常(classcastexception);

(4)通過向下轉型,比較兩物件內容是否相等。

class

person

public string tostring()

public

boolean

equals

(object obj)if(

this

==obj)if(

!(obj instanceof

person))

//到達此處時必定是同類但不同位址的物件在比較

person per=

(person)obj;

//向下轉型,比較屬性值

return

this

.name.

equals

(per.name)

&&this

.age==per.age;

//判定屬性內容是否相等(易錯點)}}

class

student

public

class

test

}

繼承基類覆寫方法

ext.define assign.baseviewport return form ext.define assign.groupviewport return form createqueryform被assign.groupviewport覆寫,基類的方法並麼有被呼叫,所以控制項的initco...

Python自定義類呼叫方法

自定義類呼叫方法 檔案名字小寫,類名字大寫,從檔名匯入類名就行,保證檔案名字和要呼叫的檔案在乙個資料夾。類儲存在類檔案裡面,在新檔案裡面呼叫類 比如from alien import alien 就是從檔案alien.py裡面匯入alien類 比如如下 from test import soluti...

thinkphp使用自定義類方法

1.通過model呼叫 積分模型 api介面 class apimodel elseif firstchar dump json decode res,true 沒有繼承model,否則會因為表不存在而報錯。呼叫,api d api api test 呼叫確實方便,但是總感覺有點不合理。這個d畢竟是...