和 equals 的區別

2021-10-23 20:58:48 字數 1326 閱讀 4020

==

如果比較的物件是基本資料型別,則比較的是數值是否一致;如果比較的是引用資料型別,則比較的是物件的位址值是否一致。

equals():equals()方法不能用於比較基本資料型別的物件,如果物件和自身進行比較,則equals()方法與是一樣的。

對於string類 date類 file類等 可重寫equals() 方法用於比較物件的屬性內容是否一致。

舉例如果a,b 是基本型別,那麼 運算子比較的是什麼呢?

public class demo  

}

}

當a,b是基本型別,那麼== 運算子比較的就是基本型別的值。如果a,b 是引用型別, 那麼== 運算子比較的還是a,b 的值嗎?

public class demo   

}}

可知,當a,b是引用型別,那麼== 運算子比較的就是引用型別的物件位址值。如果a,b 是引用型別,那麼equals()方法比較的是什麼呢?

private static int a = 100;  

private static int b = 100;

public static void main(string args)

}

}

可知,預設情況下,equals()方法比較的是物件與自身是否一致。當物件與自身一致時,equals()方法與== 是一樣的。如果重寫equals()方法,是否可以比較物件的內容呢?

class

pigpublic string getname()

// 重寫equals()方法, 用於比較物件的屬性內容是否一致

public

boolean

equals

(object anobject)

// 判斷anobject與string是否為同類或存在繼承關係

if(anobject instanceof

string

)//判斷是同一類或者子父類關係,則將object型別強轉為pig

pig pig =

(pig)anobject;

// 比較pig的屬性name的內容是否一致 if(

this

.name == pig.name &&

this

.name.

equals

(pig.name)

)else

}}

重寫equals()方法,equals()方法是可以比較物件屬性內容是否一致的。

Equals 和 的區別

對於值型別,如果物件的值相等,則相等運算子 返回 true,否則返回 false。對於string 以外的引用型別,如果兩個物件引用同乙個物件,則 返回 true。對於 string 型別,比較字串的值。操作比較的是兩個變數的值是否相等。equals 方法比較的是兩個物件的內容是否一致 equals...

equals 和 的區別

equals 方法 是string類從它的超類object中繼承的 被用來檢測兩個物件是否相等,即兩個物件的內容是否相等。用於比較引用 和 比較基本資料型別時具有不同的功能 1.比較基本資料型別,如果兩個值相同,則結果為true 2.而在比較引用時,如果引用指向記憶體中的同一物件,結果為true s...

和equals的區別

和 equals 的區別 1.是乙個運算子。2.equals則是string物件的方法,可以.點 出來。我們比較無非就是這兩種 1 基本資料型別比較 2 引用物件比較 1 基本資料型別比較 和equals都比較兩個值是否相等。相等為true 否則為false 2 引用物件比較 和equals都是比較...