【问题标题】:Default Constructor overloading [closed]默认构造函数重载
【发布时间】:2014-03-28 02:19:45
【问题描述】:

可能是一个非常愚蠢的问题,但我无法让默认构造函数使用日期。这就是我要做的。谢谢您,如果您能解释一下为什么以这种方式初始化它,那也很棒。谢谢!

    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);
 }

【问题讨论】:

  • 当它需要 4 个参数时,您正尝试使用 3 个参数调用您的构造函数。实际上,由于最后一个逗号,这看起来像是一个编译错误。
  • 我知道但是如何在默认构造函数中初始化日期日期谢谢
  • new Date() 不是你想要的?
  • 你将一个引用传递给一个新的Date 对象,或者null。该默认值是什么,我们无法为您解答。

标签: java date constructor overloading


【解决方案1】:

如果您有一个无参数构造函数作为传递到另一个设置字段的构造函数的传递,那么首选约定是直接设置字段而不是通过设置器。

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;
 }

【讨论】:

  • 讨厌:如果它在源代码中提供,它不是默认构造函数。这是一个无参数或无参数的构造函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
  • 1970-01-01
  • 1970-01-01
  • 2011-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多