2

以下にコンストラクタをまとめました。私が持っている質問は、同じコンストラクターを引数なしで、同時に 2 つまたは 3 つ使用するにはどうすればよいかということです。これを行う方法は複数ありますか?ありがとう

public class bankaccount {

  String firstnameString;
  String lastnameString;
  int accountnumber;
  double accountbalance;;

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

3 に答える 3

6

使用するすべてのバリアントを実装する必要があります。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 Coding Conventionsを確認してください。クラス名(およびコンストラクター) はキャメルケースで表記されています。

于 2013-02-20T15:08:03.043 に答える
0

コンストラクターを実装しない場合は、引数なしのコンストラクターが提供されます。複数のコンストラクターが必要な場合は、それらすべてを自分で実装する必要があります。

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
  }

}
于 2013-02-20T15:09:19.543 に答える
0

他の人は、複数のコンストラクターを作成することを提案しましたが、それで問題ありません。ただし、引数なしのコンストラクターのみを使用し、getter と setter を使用してプロパティにアクセスしたい場合があります。

あなたのBankAccountクラスは、これらの状況の 1 つかもしれません。ORM (Hibernate など) を使用して DBMS に永続化されるオブジェクトの 1 つである、データ オブジェクトのように見えます。Hibernate は複数引数のコンストラクターを必要としません。引数なしのコンストラクターを呼び出し、ゲッターとセッターを介してプロパティにアクセスします。

このクラスは何のためですか?オブジェクトにマップされたデータベース エンティティですか。これらすべてのコンストラクターが本当に必要ですか (時間の無駄かもしれません)。

理論的には、私の提案は OO 設計の優れた実践との戦いと見なすことができますが、実践は理論とは多少異なります。クラスがいくつかのデータを運ぶだけで、コンストラクターが提供されたパラメーターの有効性をチェックしない場合は、プロパティを一覧表示し、IDE の機能を使用してゲッターとセッターを作成できます。

于 2013-02-20T15:13:56.153 に答える