2017-02-09 54 views
0

我已經創建了一個賬戶類,但是在第一次計算之後,它會繼續並將第二行加倍。我錯過了代碼中的任何東西嗎?賬戶類Java OOP

public class Account 
{ 
    private double balance; //STATE 
    private double interestRate; //STATE 
    private double rate;//STATE 

    public Account() 
    { 
     balance = 0; 
     interestRate = 0; 
    } 

    public Account(double amount, double interestRate) 
    { 
     balance = amount; 
     rate = interestRate; 

    } 

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

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

    public void setInterest(double rate) 
    { 
     balance = balance + balance * rate; 
     //this.setInterst = setInterest; 
     //setInterest = InterestRate/12; 
    } 

    public double computeInterest(int n) 
    { 
     balance=Math.pow(balance*(1+rate),n/12); 
     return balance; 
    } 

    public double getsetInterest() 
    { 
     return rate; 
    } 

    public double getBalance() 
    { 
     return balance; 
    } 

    public void close() 
    { 
     balance =0; 
    } 

} 

public class TestAccountInterest 
{ 
    public static void main (String[] args) 
    { 
     Account acc1 = new Account(500, 0.1);//0.10); 
     Account acc2 = new Account(400, 0.2); //0.20); 

     /************************************* 
     ACC1 ACCOUNT BELOW 
     *************************************/ 
     acc1.deposit(500); 
     acc1.withdraw(300); 
     acc1.computeInterest(12); 
     acc1.computeInterest(24); 
     System.out.println(acc1.computeInterest(12)); 

     /************************************** 
     ACC2 ACCOUNT BELOW 
     **************************************/ 
     acc2.withdraw(200); 
     acc2.deposit(800); 
     acc2.computeInterest(24); 
     System.out.println(acc2.computeInterest(24)); 

    } 

} 

我不知道我是否錯過了某些東西或者我寫錯了代碼。

+0

輸出是什麼?預期的產出是什麼? –

+0

這是一個例子,但預期的輸出應該是12個月-110,24個月-122 – Omor

+0

而且你稱它爲12個月,然後是24個月,然後是12個月?每個人都改變了對象? –

回答

1
acc1.computeInterest(12); 
    acc1.computeInterest(24); 

它在我看來,你想要的是,調用這些函數只返回計算利息,但它不應該改變你的平衡變量。

只需返回計算值而不將其保存在@balance變量中。

這是我對你的問題的解釋,你有點模糊。

0

您對對象acc1使用了兩次方法computeinterest(int n)。當你第一次使用acc1.computeInterest(12)時,你會得到一個值,但正如你之前使用acc1.computeInterest(24)那樣,你得到的答案不正確。