object以及提供的方法
阿新 • • 發佈:2019-02-13
==簡單資料型別,比較的是值的大小;
引用資料型別,是比較的是是否為同一物件,比較的是記憶體地址;
object中equals就是用==進行兩個物件之間的對比,所以object提供給我們的equals方法和==沒區別;
當有特殊需求,如認為屬性相同即為同一物件時我們就需要重寫equals方法;
我們呼叫equals對比兩個字串所用的equals是經過string重寫了的,對比的是字串內容,
object提供給我們的tostring方法是返回當前物件的有關資訊,按字串物件返回;
而我們呼叫輸入字元方法syso的時候tostring也被string重寫了,輸出的是字串內容!
Object類
Object是所有類的祖宗,是最開始的父類;例如我們寫一個pet類,並沒有繼承任何類,但java預設它繼承了Object類:
public class Pet extends Object{
.......
}
有一句話:Class Object is the root of the class hierarchy.
Object類被繼承時裡面的方法都被下面的類所繼承:
方法 說明
toString() 返回當前物件本身有關資訊,按字串物件返回
equals() 比較兩個物件是否是同一物件(包括記憶體地址),是則返回true
hashCode() 返回該物件的雜湊程式碼值
getClass() 獲取當前物件所屬的類資訊,返回class物件
我們可以根據需求重寫object提供給我們的初始方法
原因:使用String的時候它已將將這兩個方法重寫了,不再是Object給我們的初始方法!
補充:instanceof(特殊字元)用於判斷一個引用型別所引用的物件是否是一個類的例項;
(也就是比較關鍵字前後的物件是夠有上下級關係)
綜合練習
需求說明:
重寫比較規則,判斷兩名學員(Student)是否為同一物件
Student相關屬性:
id(學號)、那麼(名字)、age(年齡)
如果兩名學員學號以及姓名相同,則為同一物件