簡介
Object類別: 這個類別java.lang.java是所有類別預設繼承的父類別
Object類別中常用的三個方法:toString() , equal() , hashCode()
toString()方法物件的自我描述,物件的自我介紹在物件的自我描述過程中,由於使用get()方法列印實例變數比較麻煩,為了簡便,使用toString() .Public String toString(){ Return “学好” + getNo() + “姓名” + getName(); }
自訂equals()方法: 1.類型德相同 2.定義自己的比較規則
public boolean equals(Object object){ //重写Object的equals()方法 EqualsTest equalsTest = (EqualsTest) object; if(equalsTest.getClass() == EqualsTest.class){ //??????????? if((this.name==equalsTest.name)&&(this.price== qualsTest.price)){ return true; }else{ return false; } }else{ return false; } })
(c )
Public int hashCode(){ Return this.name.hashCode()*13 + new Interger(getAge).hashCode()*12; }
hashCode的兩個原則:
1.兩個物件equals()方法比較回傳值為true時,那麼他們的hashCode()方法也確保回傳值相同。
2.物件中使用equals()來比較使用的屬性,都應該用來計算hashCode() 。
hashCode() 雜湊演算法
需求:
1.hashCode()回傳值相同,equals()回傳值也必須相同。
2.重寫hashCode()使用啦什麼屬性,在equals()方法中也要使用什麼屬 性。
註:hashCode相同,equals不一定相同。
hashCode用來判斷資料夾,equals用來判斷檔案。
如果不重寫hashCode()方法,預設的hashCode()方法是根據物件的位址求出來的(鍵值就是物件的位址)
如果重寫啦hashCode()方法就不能用來判斷是不是同一個對象,
則可以使用System.identityHashCode(對象的引用名) 若hashCode相同,則為同一個對象。
System.out.println(System.identityHashCode(物件的引用名稱));
如果沒有hashCode() ,其物件的hashCode是透過物件位址算出來的。
System.out.println(物件參考名.hashCode());
註:HashSet集合中元素是否存在以及刪除運算依賴的方法是元素的hashCode()和equals()
總結
就是以上為大家整理的Java中父類Object的三個常用方法,希望對大家能有所幫助,如果有疑問大家可以留言交流,謝謝大家對PHP中文網的支持。
更多Java中父類別Object的常用方法總結相關文章請關注PHP中文網!