1.什麼是Object
Object類是Java語言的根類,要麼是一個類的直接父類,要麼就是一個類的間接父類.class ABC{} 其實等價于 class ABC extends Object{}
------------------------------------------------------------------------------
所有對象(包括數組)都實作這個類的方法,這句話如何了解?
------------------------------------------------------------------------------
為什麼Object是所有類的根類,到底什麼是Object.
Object本身指對象的意思, 我們發現所有的對象都具有某一些共同的行為,是以,我們抽象出一個類:Object,表示對象類,其他都會繼承于Object類,也就擁有Object類中的方法.
引用資料類型: 類/接口/數組,,引用類型又稱之為對象類,所謂的數組變量名稱,應該指數組對象.
2.Object類的常見方法
1):protected void finalize() :當垃圾回收器确定不存在對該對象的更多引用時,由對象的垃圾回收器調用此方法.垃圾回收器在回收某一個對象之前,會先調用該方法,做掃尾操作. 該方法我們不要去調用.
2):Class getClass() :傳回目前對象的真實類型。
3):int hashCode(): 傳回該對象的哈希碼值,hashCode決定了對象再哈希表中的存儲位置,不同對象的hashCode是不一樣的.
4):boolean equals(Object obj) :拿目前對象(this)和參數obj做比較.
在Object類中的equals方法,本身和 “ == ”符号相同,都是比較對象的記憶體位址. 官方建議:每個類都應該覆寫equals方法,不要比較記憶體位址,而去比較我們關心的資料.,因為我們關系的是内容資料,而不是記憶體位址.比如:兩個學生對象,我們不管是如何new出來的,隻要學号相同我就應該認為是同一個對象.兩個字元串,隻要内容相同,我們就認為是同一個字元串.
5):String toString():表示把一個對象轉換為字元串.
列印對象時,其實列印的就是對象的toString方法.System.out.println(obj對象);等價于 System.out.println(obj對象.toString());
預設情況下列印對象,列印的是對象的十六進制的hashCode值,但是我們更關系對象中存儲的資料. 官方建議:我們應該每個類都應該覆寫toString,傳回我們關心的資料.