object類中的equals方法用於檢測乙個物件是否等於另乙個物件。
在object類中,這個方法將判斷兩個物件是否具有相同的引用。
getclass方法將返回物件所屬的類。
instanceof關鍵字用於判斷當前物件是否是屬於當前類
下面給出編寫乙個完美的equals方法的建議:
1.顯示引數命名為otherobject,稍後需要將他轉換成另乙個叫做other的變數。
2.檢測this與otherobject是否引用了同乙個物件:
if(this == otherobject) return true;
3.檢測otherobject是否為null,如果為null,返回false。這項檢測是很有必要的。
if(otherobject == null) return false;
4.比較this與otherobject是否為同一類。如果equals的語義在每乙個子類中有所改變,就用getclass檢測:
if(this.getclass() != otherobject.getclass()) return false;
5.將otherobject轉換為相應的類型別變數。
classname other = (classname) otherobject;
6.現在開始對所有需要比較的域進行比較了。使用==比較基本型別域,使用equals比較物件域。如果所有的域都匹配,就返回 true 否則返回 false
return field1 == other.field1 && object.equals(field2,other.field2) &&........;
java中equals方法和「 」的區別
有兩種用法說明 1 對於字串變數來說,使用 和 equals 方法比較字串時,其比較方法不同。比較兩個變數本身的值,即兩個物件在記憶體中的首位址。equals 比較字串中所包含的內容是否相同。2 對於非字串變數來說,和 equals 方法的作用是相同的都是用來比較其物件在堆記憶體的首位址,即用來比較...
java中equals方法和「 」的比較
有兩種用法說明 1 對於字串變數來說,使用 和 equals 方法比較字串時,其比較方法不同。比較兩個變數本身的值,即兩個物件在記憶體中的首位址。equals 比較字串中所包含的內容是否相同。比如 string s1,s2,s3 abc s4 abc s1 new string abc s2 new...
java中equals方法和「 」的比較
關於equals與 的區別從以下幾個方面來說 1 如果是基本型別比較,那麼只能用 來比較,不能用equals 比如 public class testequals 2 對於基本型別的包裝型別,比如boolean character byte shot integer long float doubl...