-4

Q. 一連のステートメントで、Nick の口座のすべてのお金 (当座預金と普通預金の両方) を Carol の当座預金口座に移動します。これにより、最終的に Nick にはお金がなくなります。つまり、両方のアカウントのお金が 0 になります。これを行う方法はいくつかあります。1 つ以上の中間変数を使用して Nick の口座からの値を保持し、その値を Carol の当座預金口座に入金することをお勧めします。注: BankAccount クラスで定義されているメソッドを呼び出して、Nick の口座から値を取得する必要があります。BankAccount クラスの適切なメソッドを使用して、Nick と Carol の両方の口座の当座預金と普通預金の情報のレポートを出力します。

A.

パブリッククラス BankAccount{

  private String name;
  private int checkMoney;
  private int saveMoney;

   public BankAccount(String who, int checking, int saving){
     name = who;
     checkMoney = checking;
     saveMoney = saving;
  }

   public String getAccountName(){
     return name;
   }

   public int getCheckMoney(){
     return checkMoney;
   }

   public int getSaveMoney(){
     return saveMoney;
   }

   public void makeCheckingDeposit(int amt){
       checkMoney = checkMoney + amt;
   }

   public void makeSavingsDeposit(int amt){
     saveMoney = saveMoney + amt;
   }

   public void makeCheckingWithdrawal(int amt){
    if(checkMoney >= amt)
     checkMoney = checkMoney - amt;
   }

   public void makeSavingsWithdrawal(int amt){
    if(saveMoney >= amt)
     saveMoney = saveMoney - amt;
   }

   //prints name and both account balances to the console
   public void printReport() {
     System.out.println(name + " checking: " + checkMoney + " savings: " + saveMoney);
   }

}

  1. public class BankingDriver {

  2. public static void main (String [] args) {

  3. BankAccount nicksAcct = new BankAccount("Nick", 450, 550);

  4. BankAccount carolsAcct = new BankAccount("キャロル", 600, 700);

  5. int nicksCheckingMoney = nicksAcct.getCheckMoney();

  6. int nicksSaveMoney = nicksAcct.getSaveMoney();

  7. int 預金 = (nicksAcct.makeCheckingWithdrawal(nicksCheckingMoney) + nicksAcct.makeSavingsWithdrawal(nicksSaveMoney));

  8. carolsAcct.makeCheckingDeposit(預金);

  9. nicksAcct.printReport();

  10. carolsAcct.printReport();

    } }

BankDriver の 7 行目で、'void' type not allowed here エラーが表示され続けます。誰かがなぜこれをしているのか説明できますか?

4

1 に答える 1

1

void2 つのメソッドの結果を一緒に追加することはできません。例えば:

private static void foo() {}
private static void bar() {}

public static void main(String... args) {
  System.out.println(foo() + bar());
}

これは明らかに無意味であることを願っています。実際、メソッドの結果に対しては何もできませんvoid。メソッドを呼び出すことしかできません。

makeCheckingWithdrawalandメソッドの結果を追加したい場合は、makeSavingsWithdrawalそれらが数値型を返すようにする必要があります。たとえば、次のようになります。

public int makeCheckingWithdrawal(int amt) { ... }
public int makeSavingsWithdrawal(int amt) { ... }

これらのメソッドから返される値は、要件に応じて自由に決定できます。

于 2015-12-22T00:09:17.813 に答える