java中的所有類都是Object類的子類,Object類是所有類的父類(基類)/祖先類/頂級類
Object類是java中的頂級類,即所有類的祖先類,Java里面除了Object類吼句,所有的類默認(rèn)都會隱式繼承Object類,只有Object類是沒有父類的(沒有繼承關(guān)系的)
所有的類的對象的內(nèi)存地址都可以被Object類類型的變量接收(向上轉(zhuǎn)型)事格,也就是使用Object類類型的變量可以接收所有類的對象的內(nèi)存地址
Object類中toString方法
Object類中定義了toString方法惕艳,當(dāng)我們打印對象/對象名的時候搞隐,會自動調(diào)用Object類當(dāng)中的toString方法,執(zhí)行Object類的toString方法远搪,輸出的是toString方法返回的內(nèi)容劣纲,也可以自己手動調(diào)用此方法
默認(rèn)的從Object類當(dāng)中繼承下來的toString方法,返回的是類名@對象的內(nèi)存地址(引用地址)經(jīng)過哈希算法后得到的十六進(jìn)制的哈希碼
如果我們想手動修改打印對象/對象名時候輸出的內(nèi)容终娃,可以在Object類的子類中(也就是其他所有類中)重寫toString方法味廊,將toString方法的返回值設(shè)置為自己想要打印的內(nèi)容
重寫toString方法寫法: public String toString() { 代碼...... }
Object類中equals方法
Object類中定義了equals方法蒸甜,當(dāng)我們比較兩個對象內(nèi)存地址(引用地址)是否相同時棠耕,可以使用Object類中的equals方法
Object類中equals方法使用:對象1.equals(對象2)
如果兩個對象的內(nèi)存地址(引用地址)相同,則返回true柠新,否則返回false
如果是兩個基本類數(shù)據(jù)類型數(shù)據(jù)進(jìn)行比較使用==雙等號來比較窍荧,如果是兩個引用數(shù)據(jù)類型數(shù)據(jù)的內(nèi)容就需要重寫equals來進(jìn)行比較,兩個引用數(shù)據(jù)類型數(shù)據(jù)使用==雙等號比較的是它們倆的內(nèi)存地址是否相同恨憎,也就是否是同一個對象
如果要比較對象中內(nèi)容蕊退,必須重寫Object中的equals方法,因?yàn)閑quals方法默認(rèn)也是按照地址比較的c究摇H坷蟆!比較對象中內(nèi)容是否相同的時候钥组,一定要重寫equals方法
重寫equals方法寫法: public boolean equals(Object obj) { 代碼..... }
兩個引用(