java基礎十五 Object類詳解

Object類:java中類層次結構的根類 所有類都直接/間接繼承自該類
構造方法
public Object()
子類構造方法默認訪問的是父類的無參構造
主要方法
1.public int hasCode()
返回該對象的哈希碼值 默認情況下 該方法會根據對象的地址來計算 不同對象的hashCode()一般不同 但是同一對象的hashCode()值肯定相同
2.pulic final Class getClass()
獲取該對象的字節碼文件 返回這個對象(Object)的運行時類
注意:這裏的Class是描述類的一個類(在java後期的反射會用的比較多) 可以通過Class類中的一個方法(getName())來獲取對象所屬的類的全名稱
3.public String toString()
返回該對象的字符串表示 如果打印對象的引用會默認調用toString()方法 如果它沒有重寫這個方法 就會調用Object類的toString()方法
注意:
這個方法默認的返回值等於:
對象.getClass().getName()+"@"+Integer.toHexString(hashCode())
相當於:類名稱@哈希碼的十六進制表示
其中toHexString()方法返回的是數字的十六進制表示形式
默認情況下 toString()方法返回的數據對我們來說是沒有意義的 所以一般建議重寫
4.public boolean equals(Object obj)
這個方法表示其他某個對象是否和這個對象“相等" 默認情況下比較的是對象的引用是否相同 沒有意義 所以在開發中一般重寫 用來比較屬性值

知識點:
==和equals方法的異同?
同:都可以用來作比較 返回值都是boolean
異:
1.==是一個比較運算符號 既可以比較基本數據類型(此時比較的是值) 又可以比較引用數據類型 (此時比較的是地址值)
2.equals()是一個方法 只能比較引用數據類型 所有對象都繼承Object中的方法 如果沒有重寫Object類中的equals方法 equals()方法和==號在比較引用類型數據時沒有區別(此時底層依賴的是==來實現)重寫後的equals方法比較的是對象的屬性

發佈了72 篇原創文章 · 獲贊 50 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章