首頁  >  文章  >  Java  >  Java中父類別Object的常用方法總結

Java中父類別Object的常用方法總結

高洛峰
高洛峰原創
2017-01-17 16:56:391132瀏覽

簡介

Object類別: 這個類別java.lang.java是所有類別預設繼承的父類別

Object類別中常用的三個方法:toString() , equal() , hashCode()

toString()方法物件的自我描述,物件的自我介紹

在物件的自我描述過程中,由於使用get()方法列印實例變數比較麻煩,為了簡便,使用toString() .

Public String toString(){
 
 
Return “学好” + getNo() + “姓名” + getName();
 
}


System .out.println(s); 就相當於 System.out.println(s.toString());

在列印:

    a.基本資料類型時直接列印其數值

   toString() 在列印

若沒有重寫Object類別中的toString()方法時,直接列印對象,在控制台得出的結果是:

包全名@對象的hashCode

二、equals()方法重寫equals()一定要重寫hashCode(),

Equals()比較的是兩個對象,或兩個物件的內容;hashCode() 是物件的內部位址,是整數。

==與equals()的區別?

答:==實質比較的是二進制,基本資料型別比較的是數值,引用資料型別比較的是位址

Equals()分為Object類別的equals()和String類別的equals() ,Object類別的equals()相當於==比較引用型別情況;String類別的equals()重寫啦Object類別中的equals()方法,比較的是字面值。

Instanceof判斷類別名,或者可能使用反射

物件的引用變數名稱instanceof 類別名稱這個表達式,如果物件的引用變數名稱是後面類別名稱的類別或基底類別物件傳回值任然是true.

自訂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中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn