和equals的區別及重寫

2021-09-01 11:42:18 字數 388 閱讀 6983

1.共同點:都可以做比較,返回值都是boolean

2.不同點:

1,==是比較運算符號,既可以比較基本資料型別,也可以比較引用資料型別,基本資料型別比較的是值,引用資料型別比較的是位址值

2,equals方法只能比較引用資料型別,equals方法在沒有重寫之前,比較的是位址值,底層依賴的是==號,但是比較位址值是沒有意義的,我們需要重寫equals方法比較物件中的屬性值。

這個是重寫equals類的方法,其中傳進來的引數為 s2,相當於父類object指向子類s2,因此obj是不能直接訪問s2的私有屬性的,因此要向上轉型,將obj轉換成student類。

重寫Equals 的區別

以c 為例。同一性 x.equals x 為true,通過referenceequals this,obj 實現 自反性 x.equals y y.equals x 通過this.gettype obj.gettype 判斷型別是否相同,再進一步對屬性進行判斷 傳遞性 if x.equals y t...

C 區別對待 和Equals,重寫Equals

clr中將 相等性 分為兩類 值相等性 和 引用相等性 值相等性 兩個變數所包含的數值相等。引用相等性 兩個變數引用的是記憶體中的同乙個物件。無論是操作符 還是方法 equals 都傾向於表達這樣乙個原則 對於值型別,如果型別的值相等,就應該返回true 對於引用型別,如果型別指向同乙個物件,則返回...

equals和hashcode的重寫

下面給出例項 package xuming class student public student string name,int age,int classnum 重寫equals方法 public boolean equals object o 測試引用o是都為null if o null 測...