我們通過前面的學習可以知道,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畢竟是...