在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  網(wǎng)絡(luò)安全/ Java比較兩個(gè)對(duì)象

Java比較兩個(gè)對(duì)象

public class Computer {

String name;
String color;
int price;

@Override
public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((color == null) ? 0 : color.hashCode());
    result = prime * result + ((name == null) ? 0 : name.hashCode());
    result = prime * result + price;
    return result;
}

@Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    Computer other = (Computer) obj;
    if (color == null) {
        if (other.color != null)
            return false;
    } else if (!color.equals(other.color))
        return false;
    if (name == null) {
        if (other.name != null)
            return false;
    } else if (!name.equals(other.name))
        return false;
    if (price != other.price)
        return false;
    return true;
}

}
這個(gè)類重寫了Object類的equals方法誰能說一下這思路是什么樣的?

回答
編輯回答
網(wǎng)妓

1.兩個(gè)Object比較時(shí)(equals),比較的是內(nèi)存地址.
那么創(chuàng)建兩個(gè)對(duì)象是,盡管對(duì)象的各個(gè)屬性值相同,但是equals的值也為false.

2.很明顯這個(gè)答案不是我們想要的.我們想要比較的是對(duì)象的屬性值.
那么通常在對(duì)象類里面,會(huì)重寫equals方法.
重寫就是判斷對(duì)象里的屬性值是否相同, 有的屬性可以用==號(hào)判斷,有的屬性要用equals判斷.
java的基礎(chǔ)數(shù)據(jù)類型的判斷是可以用==號(hào)的,因?yàn)榕袛嗟氖侵? 引用類型(Object)判斷就要用equals.

2018年8月10日 21:40