-2

このメソッドを取得するのに非常に苦労しています。保存されている BankAccounts の詳細を出力する printBankDetails という名前の SmallBank のメソッド。このメソッドは、BankAccount が 2 つある場合と同様に、BankAccount が 1 つしかない場合にも機能します。次のように、account2 インスタンス変数に値があるかどうかを確認できます。作成したプリミティブ型 account1 と account2 の値を取得して、その値を出力する方法がわかりません。助言がありますか?

public class SmallBank
{
    private BankAccount account1;
    private BankAccount account2;

    public SmallBank(String name, int balance)
    {
        account1 = new BankAccount(name, balance);
        account2 = null;
    }

    public void addSecondAccount(BankAccount newAccount)
    {
        account2 = newAccount;
    }

    public void printBlankDetails()
    {
        account1.getDeclaredFields();
        String name = field.getName();
        Int balance = field.getBalance();
        System.out.println(b);

    }
}
4

3 に答える 3

0

まず、account1andaccount2はプリミティブ型ではありません。

また、以下のように非常に簡単に両方にアクセスできます。

public void printBlankDetails()
{
    String name1 =  account1.getName();


    String name2 =  account2.getName();

}

ps 関数には多くの問題があるprintBlankDetailsため、複製しようとしませんでした。

于 2013-01-31T05:56:37.100 に答える
0

BankAccount を次のように宣言できます。

class BankAccount {

    private int balance;
    private String name;

    public BankAccount (String name, int balance) {
        this.name = name;
        this.balance = balance;
    }

    public String getName () {
        return name;
    }

    public int getBalance () {
        return balance;
    }

}

次に、SmallBank クラスのメソッドを呼び出します。

public void printBankDetails () {
    System.out.println("Account 1:");
    System.out.println("Name: " + account1.getName());
    System.out.println("Balance: " + account1.getBalance());
}
于 2013-01-31T06:04:39.187 に答える
0

別の設計はprintDetails()BankAccountクラス自体で発言することです。何かのようなもの:

public class BankAccount {
  String name;
  int balance;
  ...
  ...

  public String printDetails() {
      return (name + "/" + balance);
  }
}

次にSmallBank::printBlankDetails()、次のようにメソッドで使用します。

printBlankDetails() {
   if(account1 != null) system.out.println(account1.printDetails());
   if(account2 != null) system.out.println(account2.printDetails());
}

IMO、このアプローチはより良いカプセル化を提供し、クラスの詳細を隠しBankAccountますSmallBank

于 2013-01-31T06:08:28.287 に答える