重寫equals方法

2021-10-09 17:15:40 字數 1705 閱讀 4750

對稱性:

如果x.equals(y)返回是「true」,那麼y.equals(x)也應該返回是 「true」。

自反性:

x.equals(x)必須返回是「true」。

傳遞性:

如果x.equalsly)返回是「true」,而且y.equals(z)返回是「true」,那麼z.equals(x)也應該返回是「true」。

一致性:

如果x.equals(y)返回是「true」,只要x和y內容一直不變,不管重複x.equals(y)多少次,返回結果都是「true」。

1、建立person類並重寫equals方法
@getter

@setter

@builder

@allargsconstructor

@noargsconstructor

public

class

person

return

false;}

}

2、建立subperson類並繼承person
@getter

@setter

@allargsconstructor

@noargsconstructor

public

class

subperson

extends

person

@override

public

boolean

equals

(object obj)

return

super

.equals

(obj);}

}

3、測試
person p1 =

newperson

("tom");

subperson p2 =

newsubperson(1

,"tom");

subperson p3 =

newsubperson(2

,"tom");

system.out.

println

(p1.

equals

(p1));

// true 自反性

system.out.

println

(p1.

equals

(p2));

// true 對稱型

system.out.

println

(p2.

equals

(p1));

// true

system.out.

println

(p1.

equals

(p3));

// true // 傳遞性

system.out.

println

(p3.

equals

(p2));

// true

重寫equals方法

對於重寫equals方法有以下例子 object類中的常用方法。object類是所有類的根類,定義了所有物件都具備的功能。api 應用程式介面 文件 class person extends object 判斷是否是同齡人。這個方法也是在比較兩個person物件是否相等。注意 person類中是否有...

equals方法重寫

來自的文章 一 為什麼equals 方法要重寫?判斷兩個物件在邏輯上是否相等,如根據類的成員變數來判斷兩個類的例項是否相等,而繼承object中的equals方法只能判斷兩個引用變數是否是同乙個物件。這樣我們往往需要重寫equals 方法。我們向乙個沒有重複物件的集合中新增元素時,集合中存放的往往是...

重寫equals方法

object物件中的 public boolean equals object obj 指示其他某個物件是否與此物件 相等 這裡的相等指的是比較的兩方指向同乙個物件 對於任何非空引用值 x 和 y,當且僅當 x 和 y 引用同乙個物件 就是同一塊記憶體位址 此方法才返回 true 但是這一性質並不符...