號和equals的區別

2021-08-14 16:48:27 字數 1294 閱讀 6647

==號和equals方法的區別: ==是乙個比較運算符號,既可以比較基本資料型別,也可以比較引用資料型別,基本資料型別比較的是值,引用資料型別比較的是位址值。equals方法是乙個方法,只能比較引用資料型別,所有的物件都會繼承object類中的方法,如果沒有重寫object類中的equals方法,equals方法和==號比較引用資料型別無區別,重寫後的equals方法比較的是物件中的屬性。

這裡著重說下equals在重寫前後重寫後的不同

下面舉例說明一下equals在重寫和重寫後的區別

重寫前:

package cn.com.hwadee;

public

class equal

}class student

public

void

setname(string name)

public

intgetage()

public

void

setage(int age)

}

執行結果:

重寫後:

package cn.com.huadee;

public

class

equal

}class student

public

void

setname(string name)

public

intgetage()

public

void

setage(int age)

//equals重寫

***@override

public

boolean

equals(object obj) else

if (!name.equals(other.name))

return

false;

return

true;

}***

}

執行結果:

說的簡單點就是equals在重寫前,所比較的是記憶體位址,不同物件的位址不同,也就導致了比較結果為false.而在重寫後,equals比較的是物件的屬性(也就是物件的值),故結果顯示為true

號和equals方法的區別

是乙個比較運算符號,既可以比較基本資料型別,也可以比較引用資料型別,基本資料型別比較的是值,引用資料型別比較的是位址值 只能比較引用資料型別,所有的物件都會繼承 object 類中的方法,沒有重寫 object 類中的 equals 方法,equals方法和 號比較引用資料型別無區別,重寫後的equ...

equals方法與 號的區別

操作符,是比較變數的值是否相等 記憶體位址也要相等 不涉及物件內容的比較 equals 方法,是比較物件的內容是否相等 不涉及記憶體位址的比較,如果是自己建立的類就必須重寫 equals 方法,創造者來決定 equals 的判斷標準 例如 string s1 new string foo strin...

Equals 和 的區別

對於值型別,如果物件的值相等,則相等運算子 返回 true,否則返回 false。對於string 以外的引用型別,如果兩個物件引用同乙個物件,則 返回 true。對於 string 型別,比較字串的值。操作比較的是兩個變數的值是否相等。equals 方法比較的是兩個物件的內容是否一致 equals...