【发布时间】:2022-01-12 19:03:14
【问题描述】:
我是 Java 新手,刚刚尝试了一些可行的方法,但我并不完全理解它。
public void test(){
Employee employee = new Employee(new Date(1,2,1990));
}
我正在调用 Employee 的构造函数,然后 将一个新类作为参数传递并调用它的构造函数。这叫什么?我无法找到任何有关这方面的信息,并且想了解这里实际发生的情况。
更多细节:我的第一个尝试是创建 Date 类的实例,然后将对象作为参数传递,但为了节省代码和内存,我决定尝试这样做。它按我的预期工作,但我想了解它的对象生命周期,并知道这样做是否有任何缺点?
谢谢@hfontanez!搜索“匿名参考”帮助我找到了一些相关信息。但是没有太多可以解释的。
【问题讨论】:
-
“这叫什么?”它只是调用一个构造函数。
-
没有专门的名称。您只是调用一个带有一个参数的构造函数。也就是说,您传递的是
Date对象的匿名引用,因为您传递的实例没有(变量)名称。 -
你调用一个构造函数,另一个对象是通过调用
Date的构造函数作为参数创建的。 -
(附带说明,
Date已过时;您通常应该改用java.time.LocalDate。) -
我建议你不要使用
Date。该课程设计不良且早已过时。而且即使你坚持使用Date,你也应该远离三参数构造函数。它已被弃用 25 年(大约),因为它跨时区工作不可靠。取而代之的是 @chrylis-cautiouslyoptimistic- 提到的使用来自 java.time, the modern Java date and time API 的LocalDate。
标签: java parameters constructor parameter-passing