如何在课堂上支持println?

我自己制作的类需要支持什么才能让println()打印出来? 例如,我有:

 public class A { ... } 

A类应该使用哪些方法来使这个代码有效? 也许是这样的:

 public static void main() { A a = new A(); System.out.println(a); } 

我猜想必须重载toString()方法。 我对吗? 这够了吗?

您可以使用System.out.println(Object)打印任何对象。 这个重载版本的println将打印出对象的toString表示。 如果要自定义要打印的内容,则必须覆盖Object#toString()方法,例如:

 public class A { private String foo; @Override public String toString() { // When you print out instance of A, value of its foo // field will be printed out return foo; } } 

如果不重写Object#toString()方法,将使用Object类的默认实现,它具有以下forms(类名和实例哈希码的hex表示):

 public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 

额外奖励:如果您需要从多个字段创建toString()实现,可以使用工具使其更容易。 例如来自Commons Lang的ToStringBuilder 。 或者像IntelliJ IDEA这样的Java IDE甚至可以根据类的字段为您生成toString

您需要为此提供toString()方法的覆盖:

 public class A { @Override public String toString() { return "A"; } } 

该方法返回对象的字符串表示forms。 通常,toString方法返回一个“文本表示”此对象的字符串。

您需要实现toString()方法。 从中返回的所有内容都将被打印出来。