java中重寫equals方法

來源:酷知科普網 2.06W

如何正確的重寫equals方法,應該遵循哪些原則

操作方法

(01)舉例說明public class Person {String name;int age;public Person() {  super(); }public Person(String name, int age) {  super();   = name;   = age; }

java中重寫equals方法

(02)// 自己重寫equals 方法 public boolean equals(Object obj) {  // 如果傳進來的物件 地址值和我們當前的一樣  if (this == obj) {   return true;  }  // 如果傳進來的是null, 返回 false  if (obj == null) {   return false;  }

java中重寫equals方法 第2張

(03)/**   * 如果傳進來的引用是一個人的型別,我們就將他的屬性和 我們當前的屬性進行比較   */  if (obj instanceof Person) {   // 將傳進來的 強轉成 人   Person p = (Person) obj;   // 比較各個屬性值   if (ls(name) && == age) {    return true;   }   return false;

java中重寫equals方法 第3張

方法/步驟2

(01)}  // 如果傳進來的不是人類型 肯定也是false  return false; }@Override public String toString() {  return "Person [name=" + name + ", age=" + age + "]"; }

java中重寫equals方法 第4張

(02)重寫equals方法的要求:1、自反性:對於任何非空引用x,ls(x)應該返回true。2、對稱性:對於任何引用x和y,如果ls(y)返回true,那麼ls(x)也應該返回true。

(03)3、傳遞性:對於任何引用x、y和z,如果ls(y)返回true,ls(z)返回true,那麼ls(z)也應該返回true。4、一致性:如果x和y引用的物件沒有發生變化,那麼反覆呼叫ls(y)應該返回同樣的結果。5、非空性:對於任意非空引用x,ls(null)應該返回false。eclipse給我們提供了重寫的方法,點選source

java中重寫equals方法 第5張
熱門標籤