2 回答

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
當(dāng)您在 Java 中調(diào)用打印任何對(duì)象時(shí),toString()會(huì)調(diào)用該類的內(nèi)部方法。正如在 Java 中一樣,Object 類是所有類的父類,并且toString()方法在 Object 類中可用。所以這個(gè)方法對(duì)所有Class對(duì)象都是可用的。
默認(rèn)情況下 toString() 對(duì)象返回getClass().getName() + '@' + Integer.toHexString(hashCode())。
因此,您將得到Student@6b2acb7a作為輸出。如果您想打印其他內(nèi)容,則需要重寫(xiě)toString()Student 類中的 ,并且return從該方法中獲得的任何內(nèi)容都將得到打印。
Object 類中的方法名為 toString()。所以你需要這樣做:
@Override
public String toString() {
return "Number: " + number + "\tTitle: " + title + "\tAuthor: " + author;
}
重要提示:當(dāng)您重寫(xiě)超類中的任何方法時(shí),請(qǐng)使用@Override注釋對(duì)其進(jìn)行注釋。如果您錯(cuò)誤地覆蓋它,您將收到編譯錯(cuò)誤。在編譯時(shí)發(fā)現(xiàn)問(wèn)題總是比在運(yùn)行時(shí)發(fā)現(xiàn)問(wèn)題更好。如果你這樣做了,你就會(huì)發(fā)現(xiàn)問(wèn)題了。

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
您必須public String toString()
在 Student 類中重寫(xiě)以在使用時(shí)提供 StringSystem.out.println()
但你已經(jīng)public String ToString()
將其更改為public String toString()
.
如果沒(méi)有 outtoString()
方法,則將調(diào)用from 方法Student
,該方法將返回實(shí)例的哈希碼。toString()
java.lang.Object
添加回答
舉報(bào)