比較兩個物件是否相等之重寫equals 方法

2021-08-21 22:33:13 字數 856 閱讀 2979

/*題目簡述:

* 自定義乙個person類,有name和age屬性,並建乙個兩個引數的建構函式,

* 在主函式main中,定義兩個person物件p1和p2,如下,呼叫equals比較這個兩個物件是否相等。

person p1 = new person(「xiaowang」,12);

person p2 = new person(「xiaowang」,12);

p1.equals(p2);

*//*分析

如果不重寫equals()方法的話,返回的是false,因為objec類中equals()方法用的是「==」比較,"=="比較的是位址值

因此,object裡的equals()方法比較的是物件的位址值無實際意義

(string型別之所以能進行內容的比較是因為string類中重寫了equals()方法)

故,在此處要想比較物件的內容是否相同,也得重寫equals()方法

未重寫之前的equals()方法:

public boolean equals(object obj)
eg之重寫equals()方法: 

public class test5 

}class person

public void setname(string name)

public int getage()

public void setage(int age)

person()

person(string name,int age)

public boolean equals(object obj)

}

比較兩個物件是否相等

using system using system.collections.generic using system.text using system.reflection namespace objectcompare public int age static class program 測試...

比較兩個Json物件是否相等

1.先準備三個工具方法,用於判斷是否是物件型別,是否是陣列,獲取物件長度 function isobj object function isarray object function getlength object 2.準備兩個相同或不同的json物件 var jsonobja address 馬...

判斷兩個物件是否相等 equals 方法重寫分析

如果想要判斷堆中兩個物件的內容是否一樣,需要重寫equals 方法,根據雜湊約定,如果兩個物件的equals 相等,那麼這兩個物件的hashcode 也應該相等,即重寫equals 的同時,也要重寫hashcode 快捷鍵 alt shift s generate hashcode and equa...