重寫equals 方法簡介

2021-06-09 14:03:05 字數 683 閱讀 1152

l         首先應該測試兩個引用是否指向同乙個物件,如果是則直接返回true。這一步不是必須的,但可以提高比較時的效能,因為如果兩個引用指向同乙個物件,其equals測試肯定返回true,不再去比較任何內容

l         接下來應該測試傳遞進來的物件引用是否為null,如果是則直接返回false

l         然後測試傳遞進來的物件引用是否通過自己型別的instanceof測試,如果不通過則返回false,因為傳遞進來的物件一定是object型,也就是說指向的物件有可能是其他型別的,若是其他型別則沒可比性的

l         將傳進來的引用強制型別轉換為自己的型別,測試相關的成員是否相等,成立則返回true,否則返回false

注意:重寫equals方法時訪問限制必須為public,因為object類中的該方法已經是public型別,重寫方法的訪問限制只能與原來相同或比原來寬;方法入口引數必須為object型別,不可以是其他的型別。

class student

public student(string name,int age)

if(o==null)

if(!(o instanceof student))

student s=(student)o;

if(this.name.equals(s.name)&&this.age==s.age)

else }}

重寫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 但是這一性質並不符...