equals()用於數值與數值和物件與物件的比較
boolean a= 要進行比較的乙個物件.equals(另乙個物件);
equals方法的原碼:
public boolean equals(object obj)
關於this,這裡誰呼叫的equals方法,這個this就是誰的,obj就是被比較的的那個的物件的,其實上面**中的( this== obj)其實就是兩個物件的位址值相同。
這裡的引數可以傳遞任意的物件。
(== )是比較運算子,返回的是布林型別,不是true就是false。
資料型別有基本資料型別和引用資料型別兩種,前一種是數值的比較,後一種是位址值的比較。
綜上所述,以上equals方法沒有重寫其實就是沒有意義的,想要有意義就要方法重寫。
方法重寫時,要有個判斷,如果是和本身或者null預設值判斷是沒有意義的,所以要加這個判斷,有時還會遇到多型的問題,那就需要強制轉換
在object類中還要注意空指標異常,空的物件不能夠呼叫方法。
Java中Object類的equals方法
所有類都從object類中繼承了equals方法 object類中equals方法源 如下 public boolean equals object obj object中的equals方法是直接判斷this和obj本身的值是否相等,即用來判斷呼叫equals的物件和形參obj所引用的物件是否是同一...
重寫object類中的equals方法
equals 方法預設比較物件的位址值,所以如果要比較屬性的話,要對equals方法進行重寫 問題 舉例 建立了乙個person的object的子類 隱含乙個問題,object是person的父類,重寫之後無法使用person的獨有方法 屬性和方法 只能將object obj向下轉型成person ...
Object類中的方法 equals方法
public boolean equals object obj 從原始碼可以看得出來,預設父類object類的equals方法底層還是跟 一樣,比較的是位址值,而比較兩個物件的位址是沒有意義的,一般都是比較物件的成員是否相等.當父類方法無法滿足子類需要的時候,需要重寫 1 至於怎麼重寫,我們可以先...