2 回答

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

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