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