* a:指示其他某個物件是否與此物件「相等」。
* b:預設情況下比較的是物件的引用是否相同。
* c:由於比較物件的引用沒有意義,一般建議重寫該方法。
看以下**:
package com.heima.object;
import com.heima.bean.student;
public class demo4_equals
}
執行結果:
false
false
為什麼是false呢?我們先看一下object類的equals()方法實現方式。
public boolean equals(object obj)
obj表示傳參是乙個物件的位址值,this表示當前物件(誰呼叫它就是誰)的位址值,每new乙個物件,在堆記憶體中的位址都是不同的,所以是falseobject中的equals方法是比較物件中的位址值的,沒有什麼意義,我們需要重寫他,因為一般我們通常比較的是物件中的屬性值,我們認為相同屬性是同乙個物件,這樣我們就需要重寫equals方法在student類中重寫equals方法,**如下:
// 重寫equals方法
public boolean equals(object obj)
我們再次執行圖一中的**,執行結果如下:
* ==是乙個比較運算符號,既可以比較基本資料型別,也可以比較引用資料型別,基本資料型別比較的是值,引用資料型別比較的是位址值
* equals方法是乙個方法,只能比較引用資料型別,所有的物件都會繼承object類中的方法,如果沒有重寫object類中的equals方法,equals方法和==號比較引用資料型別無區別,重寫後的equals方法比較的是物件中的屬性
Java Object類的介紹
object類的介紹 1 object類是所有類的根類。2 object是不斷抽取而來,具備著所有物件都具備的共性內容。例子 class fu 這裡不寫extends object也是隱式的繼承object類。class zi extends fu class objectdemo 重要方法介紹 1...
java Object類的hashCode方法
1 返回該物件的雜湊碼值。預設情況下,該方法會根據物件的位址來計算。2 不同物件的,hashcode 一般來說不會相同。但是,同乙個物件的hashcode 值肯定相同。下方 public class demo1 hashcode 執行結果 366712642 366712642 1829164700...
java Object類的toString方法
這是object的方法,而所有類都是繼承object,所以 所有物件都有這個方法 先看以下 package com.heima.object import com.heima.bean.student public class demo3 tostring 執行結果 com.heima.bean.s...