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