摘要:類(lèi)的概述類(lèi)是類(lèi)層次結(jié)構(gòu)的根類(lèi),每個(gè)類(lèi)都使用作為超類(lèi)。即每個(gè)類(lèi)都直接或間接的繼承類(lèi)。在類(lèi)中有方法以的形式返回此對(duì)象所表示的實(shí)體類(lèi)接口數(shù)組類(lèi)基本類(lèi)型或名稱(chēng)。返回該對(duì)象的字符串表示。
object類(lèi)的概述
object類(lèi)是類(lèi)層次結(jié)構(gòu)的根類(lèi),每個(gè)類(lèi)都使用object作為超類(lèi)。object類(lèi)中方法介紹 hashCode即每個(gè)類(lèi)都直接或間接的繼承object類(lèi)。
public int hashCode():返回對(duì)象的哈希碼值。
? 注意:哈希值是根據(jù)哈希算法計(jì)算出來(lái)的一個(gè)值,該值與地址值有關(guān),但不是實(shí)際的值。可理解為地址值。
getClasspublic final Class> getClass():返回object運(yùn)行時(shí)類(lèi),得到一個(gè)Class對(duì)象。返回的 Class 對(duì)象是由所表示類(lèi)的 static synchronized 方法鎖定的對(duì)象。
? 在Class類(lèi)中有g(shù)etname()方法以 String 的形式返回此 Class 對(duì)象所表示的實(shí)體(類(lèi)、接口、數(shù)組類(lèi)、基本類(lèi)型或 void)名稱(chēng)。toString
public String toString():返回該對(duì)象的字符串表示。 toString方法返回一個(gè)字符串,它的值等于: getClass().getName() + "@" + Integer.toHexString(hashCode()) ps:Integer.toHexString()為Integer類(lèi)下一靜態(tài)方法, public static String toHexString(int i):以十六進(jìn)制(基數(shù) 16)無(wú)符號(hào)整數(shù)形式返回一個(gè)整數(shù)參數(shù)的字符串表示形式。 源碼: public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
但toString方法返回的信息是無(wú)意義的。所以建議所以子類(lèi)重寫(xiě)改方法。重寫(xiě)的格式為:把所有成員變量值返回即可。但這樣不是最好,自動(dòng)生成即可。
class Test{ int num; @Override public String toString() { return "Test [num=" + num + "]"; } }
直接輸出一個(gè)對(duì)象的名稱(chēng),就是調(diào)用改對(duì)象的toString()方法。
equalspublic boolean equals(Object obj):指示其他某個(gè)對(duì)象是否與此對(duì)象“相等”。 源碼: public boolean equals(Object obj) { return (this == obj); }
==:? 基本類(lèi)型:比較值是否相等。
? 引用類(lèi)型:比較其地址值是否相等。
該方法,默認(rèn)情況比較的是地址值,但是比較地址值意義不大,所以要重寫(xiě)改方法。
在方法重寫(xiě)時(shí)比較對(duì)象的成員變量值是否相同。
重寫(xiě)代碼優(yōu)化:提高效率,提高程序健壯性。
要想做到最好優(yōu)化還是自動(dòng)生成。(自動(dòng)生成時(shí)會(huì)和hascode()方法一起生成。)
class Test{ int num; String sfa; @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + num; result = prime * result + ((sfa == null) ? 0 : sfa.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Test other = (Test) obj; if (num != other.num) return false; if (sfa == null) { if (other.sfa != null) return false; } else if (!sfa.equals(other.sfa)) return false; return true; } }
注:此為eclipse生成可能與idea生成的有所不同,但效果一樣。
finalizeprotected void finalize() throws Throwable :當(dāng)垃圾回收器確定不存在對(duì)該對(duì)象的更多引用時(shí),由對(duì)象的垃圾回收器調(diào)用此方法。clone
protected Object clone() throws CloneNotSupportedException:創(chuàng)建并返回此對(duì)象的一個(gè)副本。“副本”的準(zhǔn)確含義可能依賴于對(duì)象的類(lèi)。
Cloneable:此類(lèi)實(shí)現(xiàn)了Cloneable接口,以示Object.clone()方法合法的進(jìn)行對(duì)該類(lèi)的按字段復(fù)制。
? Cloneable是一個(gè)標(biāo)記接口,表明實(shí)現(xiàn)該接口的類(lèi)可以實(shí)現(xiàn)對(duì)象的復(fù)制。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/74216.html
摘要:常用類(lèi)概述包含執(zhí)行基本數(shù)字運(yùn)算的方法沒(méi)有構(gòu)造方法,如何使用類(lèi)中的成員呢看類(lèi)的成員是否都是靜態(tài)的,如果是,通過(guò)類(lèi)名就可以直接調(diào)用。所有類(lèi)都直接或間接的繼承該類(lèi)。 1 常用API1.1 Math1.1.1 Math類(lèi)概述Math包含執(zhí)行基本數(shù)字運(yùn)算的方法沒(méi)有構(gòu)造方法,如何使用類(lèi)中的成員呢?看類(lèi)的成員是否都是靜態(tài)的,...
摘要:成員方法類(lèi)概述用于產(chǎn)生隨機(jī)數(shù)成員方法正則表達(dá)式相關(guān)方法判斷功能分割功能替換功能獲取功能和類(lèi)的使用類(lèi)概述包含一些有用的類(lèi)字段和方法。注意它不能被實(shí)例化,因?yàn)榇祟?lèi)構(gòu)造器是私有的成員方法類(lèi)類(lèi)概述表示特定的瞬間,精確到毫秒。 前言 我們都知道,JDK包含了JRE,而JRE中也提供了各種功能的java類(lèi),現(xiàn)在我們就對(duì)這些類(lèi)有個(gè)簡(jiǎn)單了解,然后靈活運(yùn)用。 常用類(lèi):Object類(lèi)/Scanner類(lèi),...
摘要:如何去掉默認(rèn)注釋選擇你不想要的內(nèi)容,通過(guò)右邊編輯。有什么用用別人寫(xiě)好的東西打包選中項(xiàng)目右鍵自己指定一個(gè)路徑和一個(gè)名稱(chēng)導(dǎo)入包復(fù)制到項(xiàng)目路徑下并添加至構(gòu)建路徑。 1.常見(jiàn)開(kāi)發(fā)工具了解 A:操作系統(tǒng)自帶的記事本軟件 B:高級(jí)記事本軟件 C:集成開(kāi)發(fā)環(huán)境 IDE (Integrated Development Environment) D:Eclipse和MyEclipse的區(qū)別 a...
1_(去除ArrayList中重復(fù)字符串元素方式)* A:案例演示 需求:ArrayList去除集合中字符串的重復(fù)值(字符串的內(nèi)容相同) 思路:創(chuàng)建新集合方式 import java.util.ArrayList; import java.util.Iterator; public class ArrayList_1_demo { /* 創(chuàng)建新集合將重復(fù)元素去掉 * 1.明...
摘要:每一個(gè)對(duì)象直接量都是的子類(lèi),即構(gòu)造函數(shù)中的構(gòu)造函數(shù)與普通函數(shù)并沒(méi)有什么兩樣,只不過(guò)在調(diào)用時(shí),前面加上了關(guān)鍵字,就當(dāng)成是構(gòu)造函數(shù)了。由于沒(méi)有傳入變量,在調(diào)用的構(gòu)造函數(shù)時(shí),會(huì)出錯(cuò)這個(gè)問(wèn)題可以通過(guò)一個(gè)空對(duì)象來(lái)解決改自。 showImg(https://segmentfault.com/img/bVmNZj); 對(duì)于 OO 語(yǔ)言,有一句話叫Everything is object,雖然 Ja...
閱讀 1253·2023-04-25 18:57
閱讀 2138·2023-04-25 16:28
閱讀 3940·2021-11-24 09:39
閱讀 3638·2021-11-16 11:45
閱讀 1827·2021-10-13 09:40
閱讀 1267·2019-08-30 15:52
閱讀 1723·2019-08-30 10:57
閱讀 663·2019-08-29 16:55