Java 有人能解释一下下面程序中的toString()方法是如何工作的吗?
有人能解释一下下面程序中的toString()方法是如何工作的吗?在下面的程序中,我没有调用toString()方法。但是,当我创建一个对象时,消息是如何打印的,任何人都能解释我。我是java新手Java 有人能解释一下下面程序中的toString()方法是如何工作的吗?,java,Java,有人能解释一下下面程序中的toString()方法是如何工作的吗?在下面的程序中,我没有调用toString()方法。但是,当我创建一个对象时,消息是如何打印的,任何人都能解释我。我是java新手 class Inner { public String toString() { return "Hai this is java"; } } class Main { public static void main(
class Inner
{
public String toString()
{
return "Hai this is java";
}
}
class Main
{
public static void main(String [] java)
{
System.out.println(new Inner());
}
}
print命令将始终打印作为参数传递的对象的toString方法返回的值
要么像以前那样重写它,然后返回,要么使用从对象类继承的默认实现。
System.out
返回一个PrintStream
实例PrintStream
有一个public void println(Object x)
方法,该方法为传递给它的对象调用String.valueOf(x)
String.valueOf(x)
在向对象传递非空引用时调用对象的toString()
方法。此问题完全重复,您应该将其关闭。public void println(object x){String s=String.valueOf(x);synchronized(This){print(s);newLine();}//我知道它是如何工作的,但是为什么这里使用synchronized这里什么是synchronized(这个)?@CSiva你应该用谷歌搜索synchronized
保留字。它用于同步对对象的访问。在这种情况下,对象是PrintStream
实例。如果两个线程试图同时写入同一个PrintStream
实例,则其中一个线程必须等待另一个线程完成。