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);