构造函数中有多个参数



我已经把下面的构造函数组合在一起了。我面临的一个问题是:如何在没有参数的情况下同时使用两个或三个构造函数?有不止一种方法可以做到这一点吗?感谢

public class bankaccount {
  String firstnameString;
  String lastnameString;
  int accountnumber;
  double accountbalance;;
  public bankaccount(String firstname,String lastname){
    int accountnumber=999999;
    double accountbalance=0.0;
  }
}

您需要实现所有想要使用的变体。然后可以使用this()在构造函数之间调用,以避免代码冗余:

public class BankAccount {
  public BankAccount(){
     this("", "");
     // or this(null, null);
  }
  public BankAccount(String firstname){
     this(firstname, "");
     // or this(firstname, null);
  }
  public BankAccount(String firstname, String lastname){
      // implement the actual code here
  }
}

顺便说一句,您应该查看一下Java编码约定——类名(以及构造函数)是用驼色大小写的。

如果您没有实现任何构造函数,则会为您提供无参数构造函数。如果你想有多个构造函数,你可以自己实现所有的构造函数。

public class bankaccount {
  String firstnameString;
  String lastnameString;
  int accountnumber;
  double accountbalance;;
  public bankaccount(String firstname,String lastname){
    int accountnumber=999999;
    double accountbalance=0.0;
  }
  public bankaccount(){
    // put code here, or call this(null,null) / a different constructor
  }
}

其他人建议您创建多个构造函数,这很好。然而,在某些情况下,您可能更喜欢只有零参数构造函数,并使用getter和setter来访问属性。

您的BankAccount类可能就是其中一种情况。它看起来像是一个数据对象,是通过使用一些ORM(例如Hibernate)持久化到DBMS中的对象之一。Hibernate不需要多参数构造函数,它将调用零参数构造函数,并通过getter和setter访问属性。

这个班是干什么的?它是映射到对象的数据库实体吗?你真的需要所有这些成本构建器吗(这可能是浪费时间)?

从理论上讲,我的建议可以被认为是与OO设计的良好实践作斗争,但实践与理论有些不同。如果你的类只携带一些数据,而你的构造函数不检查所提供参数的有效性,那么你就可以列出属性,并使用IDE的工具来创建getter和setter。

相关内容

最新更新