程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java中父類Object的經常使用辦法總結

Java中父類Object的經常使用辦法總結

編輯:關於JAVA

Java中父類Object的經常使用辦法總結。本站提示廣大學習愛好者:(Java中父類Object的經常使用辦法總結)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中父類Object的經常使用辦法總結正文


簡介

Object類: 這個類java.lang.java是一切類默許繼續的父類

Object類中經常使用的三個辦法:toString() , equal() , hashCode()

1、toString()辦法 對象的自我描寫,對象的毛遂自薦

在對象的自我描寫進程中,因為應用get()辦法打印實例變量比擬費事,為了輕便,應用toString() .

Public String toString(){


Return “學好” + getNo() + “姓名” + getName();

}

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

在打印:

    a.根本數據類型時 直接打印 其數值

    b.援用數據類型時 挪用toString() 在打印

若沒有重寫Object類中的toString()辦法時,直接打印對象,在掌握台得出的成果是:

包全名@對象的hashCode

2、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;

}

}

3、hashCode()辦法 用於加快查找,完成索引查找 (查詢算法,存儲算法)

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的三個經常使用辦法,願望對年夜家能有所贊助,假如有疑問年夜家可以留言交換,感謝年夜家對的支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved