Java 对象将如何隐式调用toString方法?
如果我正在打印类的对象,那么它正在打印Java 对象将如何隐式调用toString方法?,java,Java,如果我正在打印类的对象,那么它正在打印toString()方法实现,即使我没有编写toString()方法,那么实现是什么,它是如何在内部调用toString(),因此,如果尚未定义on对象,将调用on对象。您没有显式调用toString(),但隐式调用的是: 见: 是一个类,具有类型为的静态字段。因此,您正在调用PrintStream的方法 它是这样实现的: public void println(Object x) { String s = String.valueOf(
toString()
方法实现,即使我没有编写toString()
方法,那么实现是什么,它是如何在内部调用toString()
,因此,如果尚未定义on对象,将调用on对象。您没有显式调用toString()
,但隐式调用的是:
见:
是一个类,具有类型为的静态
字段。因此,您正在调用PrintStream
的方法
它是这样实现的:
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
正如我们看到的,它正在调用方法。具体实施如下:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
在这里您可以看到,这就是所谓的。Java中的每个对象都是-A(n)
对象
。因此,如果类未提供toString()
实现,则会自动调用默认的对象.toString()
Object.toString()
的默认实现只是打印对象的类名,后跟对象的哈希代码,这不是很有帮助。因此,通常应该重写toString()
,以提供对象运行时状态的更有意义的字符串表示
即使我没有编写toString()方法,那么实现是什么,它是如何在内部调用toString()的呢
toString()
是为数不多的方法之一(如equals()
,hashCode()
等),在某些编程情况下,如(仅命名一些)隐式调用
- 使用
println()打印对象
- 打印对象的集合(
在所有元素上都被调用)toString()
- 与字符串串联(如
)strObj=“My obj as String is”+myObj;
在java中,对象类是每个类的超类。每当您将参数传递给system.out.println内部对象类到字符串方法时,就会执行。它返回类name@reference给定的值,但根据我们的应用程序要求,object class to string方法将在collection和string class.it中重写返回它们的内容。打印
toString()
方法实现是什么意思?并键入:)。一个方法只有在我们显式调用它时才会被调用,但在这里,如果我们打印一个对象,toString()会被调用,这是怎么可能的?@marounnaroun你是说原语类型不是从对象类继承的?对象类是否有任何基元类型?@AsifMushtaq<代码>对象类没有基元类型,但有包装器-查找整数
,双精度
。。
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
public class DogArray {
@Override
public String toString() {
return "Im the newly created Object";
}
public static void main(String args[]) {
DogArray d1 = new DogArray();
System.out.println(d1);
}
}
output: Im the newly created Object