一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - Java中父類Object的常用方法總結(jié)

Java中父類Object的常用方法總結(jié)

2020-06-15 11:32daisy JAVA教程

這篇文章給大家介紹了Java中父類Object的三個(gè)常用方法,對(duì)大家學(xué)習(xí)或使用Java具有一定的參考借鑒價(jià)值,有需要的朋友們下面來一起看看吧。

簡(jiǎn)介

Object類: 這個(gè)類java.lang.java是所有類默認(rèn)繼承的父類

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

一、toString()方法 對(duì)象的自我描述,對(duì)象的自我介紹

在對(duì)象的自我描述過程中,由于使用get()方法打印實(shí)例變量比較麻煩,為了簡(jiǎn)便,使用toString() .

?
1
2
3
4
5
6
Public String toString(){
 
 
Return “學(xué)好” + getNo() + “姓名” + getName();
 
}

System.out.println(s); 就相當(dāng)于 System.out.println(s.toString());

在打印:

    a.基本數(shù)據(jù)類型時(shí) 直接打印 其數(shù)值

    b.引用數(shù)據(jù)類型時(shí) 調(diào)用toString() 在打印

若沒有重寫Object類中的toString()方法時(shí),直接打印對(duì)象,在控制臺(tái)得出的結(jié)果是:

包全名@對(duì)象的hashCode

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

Equals()比較的是兩個(gè)對(duì)象,或者兩個(gè)對(duì)象的內(nèi)容;hashCode() 是對(duì)象的內(nèi)部地址,是一個(gè)整數(shù)。

==與equals()的區(qū)別?

答:==實(shí)質(zhì)比較的是二進(jìn)制,基本數(shù)據(jù)類型比較的是數(shù)值,引用數(shù)據(jù)類型比較的 是地址

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

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

對(duì)象的引用變量名 instanceof 類名 這個(gè)表達(dá)式,如果對(duì)象的引用變量名是 后面類名的類或者基類對(duì)象其返回值任然是true.

自定義equals()方法:

     1.類型德相同

     2.定義自己的比較規(guī)則

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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;
 
}
 
}

三、hashCode()方法 用于加速查找,實(shí)現(xiàn)索引查找 (查詢算法,存儲(chǔ)算法)

?
1
2
3
4
5
Public int hashCode(){
 
Return this.name.hashCode()*13 + new Interger(getAge).hashCode()*12;
 
}

hashCode的兩個(gè)原則:

     1.兩個(gè)對(duì)象equals()方法比較返回值為true時(shí),那么他們的hashCode()方法也要保證返回值相同。

     2.對(duì)象中用equals()來比較使用的屬性,都應(yīng)該用來計(jì)算hashCode()

hashCode() 哈希算法

需求:

     1.hashCode()返回值相同,equals()返回值也一定要相同。

     2.重寫hashCode()使用啦什么屬性,在equals()方法中也要使用什么屬 性。

注:hashCode相同,equals不一定相同。

hashCode用于判斷文件夾,equals用來判斷文件。

如果不重寫hashCode()方法,默認(rèn)的hashCode()方法是根據(jù)對(duì)象的地址求出來的(鍵值就是對(duì)象的地址)

如果重寫啦hashCode()方法就不能用來判斷是不是同一個(gè)對(duì)象,

則可以使用System.identityHashCode(對(duì)象的引用名) 若hashCode相同,則為同一個(gè)對(duì)象。

System.out.println(System.identityHashCode(對(duì)象的引用名));

如果沒有hashCode() ,其對(duì)象的hashCode是通過對(duì)象地址算出來的。

System.out.println(對(duì)象引用名.hashCode());

注:HashSet集合中元素是否存在以及刪除操作依賴的方法是元素的hashCode()equals()

總結(jié)

以上就是為大家整理的Java中父類Object的三個(gè)常用方法,希望對(duì)大家能有所幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)服務(wù)器之家的支持。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品国产在天天线在线麻豆 | 91私密保健女子养生spa | 555www成人网| 麻豆网站在线看 | 国产日本欧美亚洲精品视 | 亚洲不卡视频在线观看 | 成人福利免费在线观看 | 三上悠亚精品专区久久 | 国产在线观看一区 | 激情六月丁香婷婷四房播 | 亚洲首页国产精品丝袜 | 国产欧美成人免费观看 | 美女脱了内裤打开腿让人桶网站o | 嗯啊在线观看免费影院 | 香蕉精品国产高清自在自线 | 日韩亚洲一区中文字幕在线 | 精品日本一区二区 | 四虎国产精品免费久久麻豆 | 日本卡1卡2卡4卡免费 | 99久久免费国内精品 | 国产va免费精品高清在线 | 午夜宅男宅女看在线观看 | 精品国产品香蕉在线观看 | 国产日产欧产精品精品软件 | 咪咪爱991 | 久久精品久久久久 | 国产成人久久久精品一区二区三区 | 四虎精品影视 | ts人妖国产一区 | 色播艾小青国产专区在线播放 | 国产大片免费在线观看 | 日韩网站在线 | 2020年新四虎免费 | 亚洲精品中文字幕在线 | 国产在视频线在精品 | 久久成人精品免费播放 | 日本一道本中文字幕 | 高h短篇校园1v1 | 女子监狱第二季在线观看免费完整版 | 亚洲区视频在线观看 | 国产一区二区播放 |