Java Date()构造函数如何返回值
当我调用Java Date()构造函数如何返回值,java,date,constructor,Java,Date,Constructor,当我调用System.out.println(newdate())时我不是在类Date中调用构造函数吗?如果我错了,请纠正我。那么在这种情况下,它是如何返回值的呢?new Date()是一个构造函数调用的表达式 这样一个表达式的结果保证是一个新构造的对象。(或异常)它打印一个值,因为您正在隐式调用新构造的Date对象的toString方法 这相当于以下内容: Date date = new Date(); System.out.println(date); 当然,您正在调用日期构造函数。每
System.out.println(newdate())时代码>我不是在类Date
中调用构造函数吗?如果我错了,请纠正我。那么在这种情况下,它是如何返回值的呢?new Date()
是一个构造函数调用的表达式
这样一个表达式的结果保证是一个新构造的对象。(或异常)它打印一个值,因为您正在隐式调用新构造的Date
对象的toString
方法
这相当于以下内容:
Date date = new Date();
System.out.println(date);
当然,您正在调用日期构造函数。每次使用“new”运算符时,都会调用构造函数。您只是没有存储对新创建对象的引用,因此它很快就会被丢弃。
因此发生的情况是:
调用日期构造函数
Date的实例被传递给println方法,该方法接受对象参数
println方法在日期调用toString()方法并获取字符串
代表性;打印出来
方法返回,date的实例被垃圾收集(最终)
如前所述,您确实在调用Date()
类的构造函数,并隐式调用其toString()
方法。如果您想知道该方法的作用,您需要查看
构造函数只是将系统时间以毫秒为单位(通常是几十毫秒)作为long
抓取,然后toString()
通过引用中可用的方法来解析它,然后生成一个StringBuilder对象,最终返回给您
因此,当您调用Date()
对象的构造函数(并隐式调用其toString()
方法)时,在引擎盖下还有很多事情要做。如果您的动机是构建自己的日期解析器,您可以查看相关类的源代码以获得指导,或者您可以简单地调用这些类并让它们完成工作。您是,它返回类型为date
的对象,println()
隐式调用toString()
在该对象上。为什么会被否决?仅仅看java标签上的问题就让我很难过,大多数问题至少是-1。java人真的那么讨厌问题吗?@arynaq:这个问题问的是什么还不清楚。@arynaq我不能代表其他反对者发言,但我反对它,因为new
操作符返回一个值的事实是微不足道的。问题是“我知道新操作符调用构造函数,构造函数如何返回值“不管怎样,我现在知道发生了什么,多亏了那些愿意解释的人。虽然是真的,但我认为它没有抓住问题的重点。@Woot4Moo:你对这个不清楚的问题的理解与我不同。@Sotirios Delimanolis我刚才也做了测试。”。谢谢各位。导入java.io.*;类outputobj{public outputobj(){int i;}public String to String(){返回“outPutString\n”}public static void main(String[]args){System.out.println(new outputobj());}给我输出:-)