Java中的equals方法

2021-08-21 15:29:00 字數 966 閱讀 4623

object類中的equals方法用於檢測乙個物件是否等於另乙個物件。

在object類中,這個方法將判斷兩個物件是否具有相同的引用。

getclass方法將返回物件所屬的類。

instanceof關鍵字用於判斷當前物件是否是屬於當前類

下面給出編寫乙個完美的equals方法的建議:

1.顯示引數命名為otherobject,稍後需要將他轉換成另乙個叫做other的變數。

2.檢測this與otherobject是否引用了同乙個物件:

if(this == otherobject) return  true;

3.檢測otherobject是否為null,如果為null,返回false。這項檢測是很有必要的。

if(otherobject == null)    return false;

4.比較this與otherobject是否為同一類。如果equals的語義在每乙個子類中有所改變,就用getclass檢測:

if(this.getclass() != otherobject.getclass())  return false;

5.將otherobject轉換為相應的類型別變數。

classname  other = (classname)  otherobject;

6.現在開始對所有需要比較的域進行比較了。使用==比較基本型別域,使用equals比較物件域。如果所有的域都匹配,就返回   true 否則返回 false

return  field1  ==  other.field1  &&  object.equals(field2,other.field2) &&........;

java中equals方法和「 」的區別

有兩種用法說明 1 對於字串變數來說,使用 和 equals 方法比較字串時,其比較方法不同。比較兩個變數本身的值,即兩個物件在記憶體中的首位址。equals 比較字串中所包含的內容是否相同。2 對於非字串變數來說,和 equals 方法的作用是相同的都是用來比較其物件在堆記憶體的首位址,即用來比較...

java中equals方法和「 」的比較

有兩種用法說明 1 對於字串變數來說,使用 和 equals 方法比較字串時,其比較方法不同。比較兩個變數本身的值,即兩個物件在記憶體中的首位址。equals 比較字串中所包含的內容是否相同。比如 string s1,s2,s3 abc s4 abc s1 new string abc s2 new...

java中equals方法和「 」的比較

關於equals與 的區別從以下幾個方面來說 1 如果是基本型別比較,那麼只能用 來比較,不能用equals 比如 public class testequals 2 對於基本型別的包裝型別,比如boolean character byte shot integer long float doubl...