第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Java自定義類中重寫equals方法

標(biāo)簽:
Java

equals方法的要求:
a.自反性:对于任何非空的x,x.equals(x)都应该返回true
b.对称性:对于任何引用x和y,当且仅当x.equals(y)返回true时,y.equals(x)也应该返回true
c.传递性:对于任何引用x,y,z,如果x.equals(y)返回true,y.equals(z)返回true,那么x.equals(z)也应该返回true
d.一致性:如果x和y的引用没有发生变化,那么反复调用x.equals(y)的结果应该相同
e.对于任何非空的引用x,x.equals(null)应该返回false

public class A   {   
       public boolean equals(Object otherObject)
  {       //测试两个对象是否是同一个对象,是的话返回true
       if(this==otherObject) return true;       //测试检测的对象是否为空,是就返回false
       if(otherObject==null) return false;       //测试两个对象所属的类是否相同,否则返回false
       if(getClass()!=otherObject.getClass())  return false;       //对otherObject进行类型转换以便和类A的对象进行比较
       A other=(A)otherObject;       //对于值可能为null的属性,检测时应使用Object的equals方法,不为null的可以直接使用==检测
       return Object.equals(类A对象的属性A,other的属性A)&&类A对象的属性B==other的属性B……;
   }    
}

在子类定义equals方法时使用super.equals方法进行重载复写。

一般来说,重写了equals方法就同时也要重写hashCode方法

700

重写hashCode方法的原因

public int hashCode(){  //其中Double根据需要换成所需类型,第一个乘数因子为素数(也叫质数)
   return 7*Object.hashCode(有可能为null的属性A)+         11*new Double(不为null的属性B).hashcode()+
         ……
}

或者有更简单的方法

public int hashCode(){    return Object.hashCode(属性A,属性B,属性C,……);
}

That's all.



作者:这是朕的江山
链接:https://www.jianshu.com/p/79ad7c352319


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消