创建新对象时使用 set 方法的替代方法

Alternative for using set methods when creating a new object

所以我正在尝试创建一个程序来帮助我跟踪我的开支,但我有一个关于如何创建我的对象的问题。

到目前为止,我一直在像这样创建我的对象:

Grocery milk = new Grocery();

    milk.setName("Milk");
    milk.setCost(2.84);
    milk.setDate(30, 12, 2014);
    milk.setType("Food");

我的杂货店 class 增加了这笔费用 class:

public Expense(){}
public Expense(String name, Double cost, Calendar purchaseDate){
    name =  _name;
    cost = _cost;
    purchaseDate = _purchaseDate;

}

到目前为止,我的杂货店 class 只添加了另一个我称为类型的字符串参数,所以这是我的问题:

我不想使用 set 方法为每个新创建的对象设置参数:

Grocery milk = new Grocery("Milk", 2.84, ??Date??, "Food")

但是日期参数比其他只有字符串和双精度类型的参数复杂一点,有没有办法做我想做的事情,还是我最好使用设置方法?

在此先感谢您的帮助。

您可以简单地使用类型为 Date

Object
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = formatter.parse("16/01/2015");

Grocery milk = new Grocery("Milk", 2.84, date, "Food")

备选方案包括使用 Calendar 对象(它有更多 flexible/powerful 日期操作方法),或者只是将您的日期存储为 String.

至于决定是使用setX()方法还是使用综合构造函数,除非有理由不行,你可以两者兼备,并在任何时候使用最合适的。

进一步阅读: