判斷兩個物件內容相等與equals方法

2021-07-02 04:04:35 字數 842 閱讀 1412

判斷兩個物件內容相等

不能直接呼叫object類裡的equals方法,將equals方法寫到object類當中是讓所有物件都擁有equals方法,,它的目的是給開發者重寫的,不然其方法實現的功能與』==』一模一樣

而用==號是不能判斷兩個物件內容相等的

eg.

user a = new user();

user b = new user();

system.out.println(a == b);

system.out.println(a.equals(b)); //還未重寫equals方法

上面兩行**列印出來的都是false,因為兩個引用物件a和b指向的是不同物件,只有指向相同的物件才會返回true

另外,在object類的equals方法如下:

public

boolean

equals(object obj)

由此可以看出,為重寫的equals方法實現的功能與』==』一樣

所以當我們呼叫equals方法的時候,要重寫

class user 

else

return

false;

}else

return

false;

}public

user(string name, int age)

}

public

class testequals

}

結果:

false

true

判斷兩個物件內容值是否相等

現在有兩個物件 let a let b 如何判斷物件a和物件b相等呢?a b falseobject.is a,b false 這個時候需要自己定義乙個方法來判斷物件內容值是否相等,如下 function objequal a,b for let key in a if a key b key re...

js怎麼判斷兩個物件相等?

es6 中有乙個方法判斷兩個物件是否相等,這個方法判斷是兩個物件引用位址是否一致 let obj1 let obj2 console.log object.is obj1,obj2 false let obj3 obj1 console.log object.is obj1,obj3 true co...

C 判斷兩個物件是否相等

首先在c 中判斷物件相等,是對於引用型別的,兩個 物件用 只是判斷他們的記憶體位址是否一樣 對於字串或者數值,判斷相等只需要用 運算 引用型別 1.對乙個類只是例項化一次 向那些只有賦值沒有new例項化乙個物件的話,拿這些物件指的都是乙個位址 people p1 newpeople people p...