2014-03-28 43 views
-4

可能是一个非常愚蠢的问题,但我不能得到默认的构造函数与日期一起工作。这是我剩下要做的。谢谢你,如果你能解释为什么你初始化它,这样也会是美好的。谢谢!默认的构造函数重载

private String first; 
private String last; 
private double sales; 
private Date date; 

public SalesAgent(){ 
    this("", "", 0, (my problem lays here)); 
} 
public SalesAgent(String first, String last, double sales, Date date){ 
    setDate(date); 
    setFirst(first); 
    setLast(last); 
    setSales(sales); 
} 
+1

你试图打电话给你的构造与3个参数时,需要4.其实,这看起来像一个编译错误,因为最后一个逗号。 –

+0

我知道,但如何在默认构造函数中初始化Date日期谢谢 – alwill

+1

'new Date()'不是你想要的吗? – Makoto

回答

1

如果你有一个无参数的构造函数充当传递到另一个构造,设置字段,然后首选的惯例是设置字段,而不是直接通过setter去。

public SalesAgent() { 
    // Seems more desirable to instantiate a new Date than leave it null 
    this("", "", 0, new Date()); 
} 

没有二传手:

public SalesAgent(String first, String last, double sales, Date date) { 
    this.first = first; 
    this.last = last; 
    this.sales = sales; 
    this.date = date; 
} 
+0

宠物peeve:它不是一个默认的构造函数,如果它提供了资源。它是一个无参数或无参数的构造函数。 –

+0

我同意。我想知道为什么我在想“默认构造函数”。 – Makoto