2016-08-25 16 views
-2

私は宿題のための非常に基本的な銀行口座プログラムを作成します。預金、撤退、および利息の追加後に合計残高を与えるプログラムの代わりに、預金額を出力するだけです。撤回した金額です。銀行口座プログラムロジックエラー

public class BankAccount 
{ 

    public BankAccount(double initBalance, double initInterest) 
    { 
     balance = 0; 
     interest = 0; 
    } 

    public void deposit(double amtDep) 
    { 
     balance = balance + amtDep; 
    } 

    public void withdraw(double amtWd) 
    { 
     balance = balance - amtWd; 
    } 

    public void addInterest() 
    { 
     balance = balance + balance * interest; 
    } 

    public double checkBal() 
    { 
     return balance; 
    } 

    private double balance; 
    private double interest; 
} 

テストクラス

public class BankTester 
{ 

    public static void main(String[] args) 
    { 
     BankAccount account1 = new BankAccount(500, .01); 
     account1.deposit(100); 
     account1.withdraw(50); 
     account1.addInterest(); 
     System.out.println(account1.checkBal()); 
     //Outputs 50 instead of 555.5 
    } 

} 
+1

変数を正しく初期化していません。 'balance = initBalance;が必要です。興味= initInterest'です。 –

+1

説明なしの下投票は役に立ちません。また、新しいユーザーにヘルプやアドバイスを求めたり求めたりすることを妨げることもあります。私は 新しいユーザーの下投票の質問はできるだけ避けるべきだと思います。それらの私は反対をお勧めします:ダウン投票なしの説明。 – c0der

答えて

4

私は信じていますあなたのコンストラクタに問題があります:

public BankAccount(double initBalance, double initInterest) 
{ 
    balance = 0; // try balance = initBalance 
    interest = 0; // try interest = initInterest 
} 
4

あなたのコンストラクタは

public BankAccount(double initBalance, double initInterest) 
    { 
     balance = initBalance; 
     interest = initInterest; 
    } 

としてあなたはインスタンス変数にコンストラクタに渡している値を代入されていない変更

2

デフォルトでは、残高と利息の値を0に割り当てていますが、代わりにメソッドパラメータを割り当てます。以下のコードを置き換えてください

public BankAccount(double initBalance, double initInterest) 
{ 
    balance = 0; 
    interest = 0; 
} 

public BankAccount(double initBalance, double initInterest) 
{ 
    this.balance = initBalance; 
    this.interest = initInterest; 
} 
関連する問題