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
添加回答
举报