最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

關(guān)于重寫compareTo()方法的疑問

http://img1.sycdn.imooc.com//5e7a2b7100018ff809920306.jpg

我給Student對象創(chuàng)建的id屬性都是private的,但我試過以后發(fā)現(xiàn),這里為什么o.id才會返回正常結(jié)果呀?o是Student對象,不應(yīng)該調(diào)用o.getId()才會返回正常比較結(jié)果嘛?

像這種重寫的方法內(nèi)部調(diào)用了該方法(這里重寫compareTo()方法在53行調(diào)用了compareTo()方法),是默認(rèn)調(diào)用重寫前的方法嗎?

正在回答

4 回答

重發(fā)下:翻了下以前的問答有這個重寫的:第三行的comparaTo是原始沒有被重寫的(事實上到這里為止comparaTo沒有被重寫完成,所以使用的也不可能是重寫的),這里之所以可以直接用,因為比較的兩者是基本類型,this.id.compareTo(arg0.id,都是字符型。兩個string做簡單比較是不存在歧義不需要重寫就可以實現(xiàn)的,只有當(dāng)比較對象是Student這種復(fù)雜的,里面包含多個屬性的類對象,原始的comparaTo才無法比較,需要重寫。

一個是比較學(xué)生對象,一個是比較id


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

奶尤糯米團(tuán)子 提問者

好的謝謝
2020-03-26 回復(fù) 有任何疑惑可以回復(fù)我~

其實講的這個重寫的Compare方法有些過于簡單了,可以嘗試下用Student.name的長度進(jìn)行判斷,這樣大家更能理解。

?@Override
????public?int?compareTo(Student?o)?{
????????if(this.name.length()>o.name.length())
????????{
????????????return?1;
????????}
????????else?if?(this.name.length()<o.name.length())
????????{
????????????return?-1;
????????}

????????else{
????????????return?0;
????????}
????}
}


0 回復(fù) 有任何疑惑可以回復(fù)我~

53行的comparaTo 是id這個屬性的comparaTo方法,是String類自帶的,和當(dāng)前類中重寫的comparaTo方法無關(guān)。屬于兩個不同類的兩個同名方法。


0 回復(fù) 有任何疑惑可以回復(fù)我~

private在本類中是可以直接調(diào)用的

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

奶尤糯米團(tuán)子 提問者

哦哦哦對 有點(diǎn)忘了哈哈
2020-03-25 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕斯卡7563590 回復(fù) 奶尤糯米團(tuán)子 提問者

第三行的comparaTo是原始沒有被重寫的(事實上到這里為止comparaTo沒有被重寫完成,所以使用的也不可能是重寫的),這里之所以可以直接用,因為比較的兩者是基本類型,this.id.compareTo(arg0.id,都是字符型。兩個string做簡單比較是不存在歧義不需要重寫就可以實現(xiàn)的,只有當(dāng)比較對象是Student這種復(fù)雜的,里面包含多個屬性的類對象,原始的comparaTo才無法比較,需要重寫。 一個是比較學(xué)生對象,一個是比較id
2020-03-25 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

關(guān)于重寫compareTo()方法的疑問

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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