为什么有些java类似乎在构造时返回一个值?

mAn*_*oid 2 java return class

例如

import java.util.*;

public class mainXX {
    public static void main(String args[]){
    System.out.println(new Date());
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我运行此代码我正在创建一个新的Date对象但不调用任何方法,它只调用默认构造函数,如下所示:

public Date(){this(System.currentTimeMillis()); }

System.out.println如何从此声明中最终打印字符串日期(Tue Sep 27 12:04:42 EST 2011),因为构造函数不能返回值?

我知道这是一个简单的问题,但我无法弄清楚发生了什么.谢谢,m

Tom*_*m G 5

当调用println上的Object对象的toString()方法将自动调用.因此,新的Date是根据当前系统时间构造的,然后Date.toString()调用该方法,返回一个String.然后将字符串打印到控制台.