關(guān)于重寫(xiě)compareTo()方法的疑問(wèn)
我給Student對(duì)象創(chuàng)建的id屬性都是private的,但我試過(guò)以后發(fā)現(xiàn),這里為什么o.id才會(huì)返回正常結(jié)果呀?o是Student對(duì)象,不應(yīng)該調(diào)用o.getId()才會(huì)返回正常比較結(jié)果嘛?
像這種重寫(xiě)的方法內(nèi)部調(diào)用了該方法(這里重寫(xiě)compareTo()方法在53行調(diào)用了compareTo()方法),是默認(rèn)調(diào)用重寫(xiě)前的方法嗎?
2020-03-25
重發(fā)下:翻了下以前的問(wèn)答有這個(gè)重寫(xiě)的:第三行的comparaTo是原始沒(méi)有被重寫(xiě)的(事實(shí)上到這里為止comparaTo沒(méi)有被重寫(xiě)完成,所以使用的也不可能是重寫(xiě)的),這里之所以可以直接用,因?yàn)楸容^的兩者是基本類(lèi)型,this.id.compareTo(arg0.id,都是字符型。兩個(gè)string做簡(jiǎn)單比較是不存在歧義不需要重寫(xiě)就可以實(shí)現(xiàn)的,只有當(dāng)比較對(duì)象是Student這種復(fù)雜的,里面包含多個(gè)屬性的類(lèi)對(duì)象,原始的comparaTo才無(wú)法比較,需要重寫(xiě)。
一個(gè)是比較學(xué)生對(duì)象,一個(gè)是比較id
2020-12-24
其實(shí)講的這個(gè)重寫(xiě)的Compare方法有些過(guò)于簡(jiǎn)單了,可以嘗試下用Student.name的長(zhǎng)度進(jìn)行判斷,這樣大家更能理解。
2020-04-19
53行的comparaTo 是id這個(gè)屬性的comparaTo方法,是String類(lèi)自帶的,和當(dāng)前類(lèi)中重寫(xiě)的comparaTo方法無(wú)關(guān)。屬于兩個(gè)不同類(lèi)的兩個(gè)同名方法。
2020-03-25
private在本類(lèi)中是可以直接調(diào)用的