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

时间:2015-01-16 15:39:43

标签: java oop

所以我正在尝试创建一个帮助我跟踪费用的程序,并且我对如何创建对象有疑问。

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

Grocery milk = new Grocery();

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

我的杂货类扩展了这个费用类:

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

}

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

我不想使用set方法为每个新创建的对象设置我的参数,而是这样做:

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

但是date参数比其他只有string和double类型的参数复杂一点,有没有办法做我想做的事情,或者我最好使用set方法?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

您只需使用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对象(具有更灵活/更强大的日期操作方法),或仅将日期存储为String

至于决定是否应该使用setX()方法或使用综合构造函数,除非有理由不能同时使用两者,并且在任何时候都使用最合适的方法。

进一步阅读: