課程
/后端開(kāi)發(fā)
/Java
/Java入門(mén)第三季
為什么equals方法重寫(xiě)中要在調(diào)用equals而不用==
2015-04-28
源自:Java入門(mén)第三季 6-1
正在回答
Object類中的方法,適合所有子類。
1.toString()方法
在Object類里面定義了toString()方法的時(shí)候返回的對(duì)象的哈希code碼(對(duì)象地址字符串)
可以通過(guò)重寫(xiě)toString()方法表示出對(duì)象的屬性(source菜單欄下的Generate toString())
2.equals()方法(source菜單欄下的Generate hashCode()and equals())
比較的是對(duì)象的引用是否指向同一塊內(nèi)存地址
重寫(xiě)equals()方法以后可以比較兩個(gè)不同內(nèi)存地址的對(duì)象是否相等。
==:
* 如果操作的是基本數(shù)據(jù)類型的數(shù)據(jù),比較的數(shù)值是否相等
* 如果操作的是引用數(shù)據(jù)類型的數(shù)據(jù),比較的地址值是否相等
equals:
* 只能夠比較引用數(shù)據(jù)類型的數(shù)據(jù), 默認(rèn)比較的是地址值是否相等
* 默認(rèn)的比較方式通常來(lái)說(shuō)是沒(méi)有意義的
* 我們需要重寫(xiě)此方法,讓它來(lái)比較兩個(gè)對(duì)象中的內(nèi)容是否一致?
String對(duì)象繼承自O(shè)bject,并且對(duì)equals()方法進(jìn)行了重寫(xiě)
String s1 = new String("Hello");
String s2 = new String("Hello");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
以上代碼段的打印結(jié)果是:
false
true
yuanyinguo
我喜歡Love 提問(wèn)者
可以再認(rèn)真看一下字符串講解的章節(jié),對(duì)于字符串"=="和"equals"的作用不同
舉報(bào)
Java中你必須懂得常用技能,不容錯(cuò)過(guò)的精彩,快來(lái)加入吧
4 回答equals方法重寫(xiě)怎么包含了一個(gè)遞歸調(diào)用啊,這樣一來(lái)本質(zhì)上不還是在用==來(lái)判斷嗎?
3 回答重寫(xiě)equals后調(diào)用contains會(huì)自動(dòng)調(diào)用所重寫(xiě)的equals?(contains的原理?)
10 回答為什么不可以調(diào)用equals方法
2 回答equals與==的問(wèn)題
3 回答equals與==的問(wèn)題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2015-04-30
Object類中的方法,適合所有子類。
1.toString()方法
在Object類里面定義了toString()方法的時(shí)候返回的對(duì)象的哈希code碼(對(duì)象地址字符串)
可以通過(guò)重寫(xiě)toString()方法表示出對(duì)象的屬性(source菜單欄下的Generate toString())
2.equals()方法(source菜單欄下的Generate hashCode()and equals())
比較的是對(duì)象的引用是否指向同一塊內(nèi)存地址
重寫(xiě)equals()方法以后可以比較兩個(gè)不同內(nèi)存地址的對(duì)象是否相等。
==:
* 如果操作的是基本數(shù)據(jù)類型的數(shù)據(jù),比較的數(shù)值是否相等
* 如果操作的是引用數(shù)據(jù)類型的數(shù)據(jù),比較的地址值是否相等
equals:
* 只能夠比較引用數(shù)據(jù)類型的數(shù)據(jù), 默認(rèn)比較的是地址值是否相等
* 默認(rèn)的比較方式通常來(lái)說(shuō)是沒(méi)有意義的
* 我們需要重寫(xiě)此方法,讓它來(lái)比較兩個(gè)對(duì)象中的內(nèi)容是否一致?
String對(duì)象繼承自O(shè)bject,并且對(duì)equals()方法進(jìn)行了重寫(xiě)
String s1 = new String("Hello");
String s2 = new String("Hello");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
以上代碼段的打印結(jié)果是:
false
true
2015-04-28
可以再認(rèn)真看一下字符串講解的章節(jié),對(duì)于字符串"=="和"equals"的作用不同