課程
/后端開(kāi)發(fā)
/Java
/Java入門第二季 升級(jí)版
兩個(gè)類都重寫(xiě)完了
2018-08-06
源自:Java入門第二季 升級(jí)版 9-9
正在回答
因?yàn)殚_(kāi)辟了兩個(gè)不同的內(nèi)存空間。
兩個(gè)類都重寫(xiě)完了是什么意思?不是只需要重寫(xiě)equals方法么?非引用類型equals和==是相同的,都是進(jìn)行地址對(duì)比。除非你自己重寫(xiě)了equals方法。使他變成值對(duì)比。
public?boolean?equals(Object?anObject)?{??
????????if?(this?==?anObject)?{??
????????????return?true;??
????????}??
????????if?(anObject?instanceof?String)?{??
????????????String?anotherString?=?(String)anObject;??
????????????int?n?=?value.length;??
????????????if?(n?==?anotherString.value.length)?{??
????????????????char?v1[]?=?value;??
????????????????char?v2[]?=?anotherString.value;??
????????????????int?i?=?0;??
????????????????while?(n--?!=?0)?{??
????????????????????if?(v1[i]?!=?v2[i])??
????????????????????????return?false;??
????????????????????i++;??
????????????????}??
????????????????return?true;??
????????????}??
????????return?false;??
????}??
這是string類型系統(tǒng)默認(rèn)的重寫(xiě)equals,把對(duì)象內(nèi)容轉(zhuǎn)換為數(shù)組遍歷對(duì)比值是否相同。也就是說(shuō)非引用類型,==和equals是一樣的都是地址對(duì)比。想要對(duì)比值就要自己重新寫(xiě)方法,而string引用類型已經(jīng)重寫(xiě)好了。
new 一個(gè)對(duì)象 就開(kāi)辟一個(gè)新的內(nèi)存空間
重寫(xiě)后比較的不應(yīng)該是值嗎
舉報(bào)
課程升級(jí)!以終為始告別枯燥,在開(kāi)發(fā)和重構(gòu)中體會(huì)Java面向?qū)ο缶幊痰膴W妙
2 回答為什么我這里兩對(duì)象不同類型相同屬性的值用equals()方法判斷是相同的呢?
1 回答我這個(gè)的同一個(gè)類的兩個(gè)對(duì)象的引用輸入怎么是相同的?
2 回答為什么最后顯示兩個(gè)對(duì)象是相同的
2 回答兩個(gè)不同的包中類名是相同的,我如何在同一個(gè)類中用?
4 回答如視頻教程,若我用父類animal創(chuàng)建一個(gè)對(duì)象dog,,用子類dog創(chuàng)建一個(gè)dog2,并對(duì)兩個(gè)對(duì)象的name和age賦相同的值,用equal方法對(duì)比時(shí)為什么顯示不相同?
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)
2018-08-07
因?yàn)殚_(kāi)辟了兩個(gè)不同的內(nèi)存空間。
2018-08-13
兩個(gè)類都重寫(xiě)完了是什么意思?不是只需要重寫(xiě)equals方法么?非引用類型equals和==是相同的,都是進(jìn)行地址對(duì)比。除非你自己重寫(xiě)了equals方法。使他變成值對(duì)比。
public?boolean?equals(Object?anObject)?{??
????????if?(this?==?anObject)?{??
????????????return?true;??
????????}??
????????if?(anObject?instanceof?String)?{??
????????????String?anotherString?=?(String)anObject;??
????????????int?n?=?value.length;??
????????????if?(n?==?anotherString.value.length)?{??
????????????????char?v1[]?=?value;??
????????????????char?v2[]?=?anotherString.value;??
????????????????int?i?=?0;??
????????????????while?(n--?!=?0)?{??
????????????????????if?(v1[i]?!=?v2[i])??
????????????????????????return?false;??
????????????????????i++;??
????????????????}??
????????????????return?true;??
????????????}??
????????}??
????????return?false;??
????}??
這是string類型系統(tǒng)默認(rèn)的重寫(xiě)equals,把對(duì)象內(nèi)容轉(zhuǎn)換為數(shù)組遍歷對(duì)比值是否相同。也就是說(shuō)非引用類型,==和equals是一樣的都是地址對(duì)比。想要對(duì)比值就要自己重新寫(xiě)方法,而string引用類型已經(jīng)重寫(xiě)好了。
2018-08-08
new 一個(gè)對(duì)象 就開(kāi)辟一個(gè)新的內(nèi)存空間
2018-08-06
重寫(xiě)后比較的不應(yīng)該是值嗎