Java 传递对象时println()会发生什么情况

Java 传递对象时println()会发生什么情况,java,Java,现在考虑一个类Circle,println语句在类Circle中有toString()方法,而在类Circle中没有方法时会做什么。toString()是对象的方法,这个类是所有类的超类(如果您创建一个不扩展其他类的新类,它将从对象类隐式继承。请记住,Java不支持多重继承,即类只能有一个直接超类)。如果您重写toString()在继承类中,您的实现将被系统.out.println()隐式调用。如果您不重写此方法,也将调用toString(),但使用对象的默认实现。默认实现返回: class对象

现在考虑一个类
Circle
println
语句在类
Circle
中有
toString()
方法,而在类
Circle
中没有方法时会做什么。

toString()
对象的方法,这个类是所有类的超类(如果您创建一个不扩展其他类的新类,它将从
对象
类隐式继承。请记住,Java不支持多重继承,即类只能有一个直接超类)。如果您重写
toString()
在继承类中,您的实现将被
系统.out.println()
隐式调用。如果您不重写此方法,也将调用
toString()
,但使用
对象的默认实现。默认实现返回:

class对象的toString方法返回一个字符串,该字符串由对象作为实例的类的名称、at符号字符“@”和对象哈希代码的无符号十六进制表示形式组成。换句话说,此方法返回一个等于以下值的字符串: getClass().getName()+'@'+Integer.toHexString(hashCode())


您总是有
toString()
在Java对象中。如果类没有声明自己的,
toString
将来自超类,或者如果没有中间超类提供,则来自
Object
。太糟糕了,
println
的源代码无法在某处读取。太糟糕了,绝对没有办法一步一步地执行程序。
Circle c = new Circle(colour, radius);
System.out.println(c);