【发布时间】:2021-04-27 21:06:13
【问题描述】:
在我的 Java College Class 中,我必须创建类 Customer。客户必须有名字、姓氏、生日和地址。
我的问题是填充默认构造函数,因为我必须为birthday 赋值。但我不知道该怎么做。如果我尝试写birthday = (1999,1,1),它会抛出一个错误并询问我是否要将生日转换为int。
我的代码:
import java.util.Date;
public class Customer {
private String firstName, lastName;
private Date birthday;
private String address;
public Customer() {
firstName = "Hans";
lastName = "Meier";
//birthday = ?
address = "-";
}
public Customer(String firstName, String lastName, Date birthday, String address) {
this.firstName = firstName;
this.lastName = lastName;
this.birthday = birthday;
this.address = address;
}
public Customer(Customer customer) {
firstName = customer.firstName;
lastName = customer.lastName;
birthday = customer.birthday;
address = customer.address;
}
}
【问题讨论】:
-
这样的类通常没有默认构造函数。为什么你认为你需要一个?如果必须提供默认构造函数,我只会将类字段留空。
-
If i try to write birthday = (1999,1,1)调用构造函数时,必须调用new和类名。= new Date( 1999, 1, 1) -
包括创建一些默认值?我再次认为将它们留空更好,它表明对象没有完全构造。
-
是的,您可能不应该像这样使用 Date。因为这只是一个课堂作业,我认为这并不重要。它已被弃用,但它仍然有效。有关
LocaleDate的正确现代用法,请参阅下面的答案。但您可能想问您的讲师您应该使用哪种 API。 -
如果生日未知,则应设置为
null值,表示没有可用的日期。使用虚拟日期会产生误导。
标签: java java-time java.util.date