天天看點

Java的根類Object

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,傳回我們關心的資料.

繼續閱讀