2015-06-15 5 views
2

Я пытаюсь изменить баланс на счете после выхода, но он просто остается в 10.00. Я не знаю, как правильно применить метод в SavingsAccount, который изменит его. Я старался, но не имел успеха.Программа банковского счета, смена баланса

import java.util.Date; 

public class Account { 
    private int id; 
    private double balance; 
    private double annualInterestRate; 
    private Date dateCreated; 
    private double monthlyInterestRate; 

    public Account() { 
     id = 0; 
     balance = 0; 
     annualInterestRate = 0; 
    } 

    public Account(int iD, double balancE) { 
     id = iD; 
     balance = balancE; 
    } 

    public void setID(int iD) { 
     id = iD; 
    } 

    public int getID() { 
     return (id); 
    } 

    public void setBalance(double balancE) { 
     balance = balancE; 
    } 

    public double getBalance() { 
     return (balance); 
    } 

    public void setAnnualInterestRate(double AIR) { 
     annualInterestRate = AIR; 
    } 

    public double getAnnualInterestRate() { 
     return (annualInterestRate); 
    } 

    public void setDateCreated(Date dateCreated) { 
     this.dateCreated = dateCreated; 
    } 

    public double getMonthlyInterestRate() { 
     return ((annualInterestRate/100)/12); 
    } 

    public double getMonthlyInterest() { 
     return (balance * monthlyInterestRate); 
    } 

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

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

public class SavingsAccount extends Account { 
    public SavingsAccount(int iD, double balancE) { 
     super(iD, balancE); 
    } 

    @Override 
    public void withdraw(double amount) { 
     if (amount > getBalance()) { 
      System.out.println("Current Balance: " + getBalance() 
        + "\nThe    withdrawal cannot be made due to insufficient funds."); 
     } 

    } 
} 



public class Test extends Account { 

    public static void main(String[] args) { 
     SavingsAccount a1 = new SavingsAccount(1122, 10.00); 
     a1.withdraw(5.00); 
     a1.deposit(00.00); 
     a1.setAnnualInterestRate(4.5); 
     Date dat = new Date(); 

     System.out.println("Balance: " + a1.getBalance() + 
       "\nMonthly Interest: " + a1.getMonthlyInterest() + 
       "\nDate Created: " + dat); 

    } 
} 
+0

Вы не меняете значение 'balance' (используйте' setBalance') – Paul

+0

Например, в этой ситуации баланс составляет 10.00, но после того, как я выхожу из 5,00, и я вызываю getBalance(), оно должно быть 5.00. Но это не так, это дает 10.00. –

ответ

2

попробовать:

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

Вы должны вызвать setBalance в конце выйти и баланса, переходя в новую сумму баланса.

+0

сделал безупречный смысл. спасибо –

+0

@EdwardLavaire Не забывайте отмечать как ответ! –

1

В withdraw() вы проверяете только состояние, при котором сумма снятия превышает баланс, а затем печатает сообщение. Вы также должны обращаться с тем случаем, когда это юридическая сумма для снятия.

@Override 
public void withdraw(double amount) { 
    if (amount > getBalance()) { 
     System.out.println("Current Balance: " + getBalance() 
       + "\nThe    withdrawal cannot be made due to insufficient funds."); 
    } else { 
     super.withdraw(amount); 
    } 

} 
+0

приятно! спасибо ... –

+0

Добро пожаловать, @EdwardLavaire! Пожалуйста, поддержите все/все ответы, которые вы найдете полезными. –

0

Вы должны использовать свой метод setBalance в своем методе public void withdraw. Как это:

public void withdraw(double amount) { 
     if (amount > getBalance()) { 
      System.out.println("Current Balance: " + getBalance() + "\nThewithdrawal cannot be made due to insufficient funds."); 
     } 
     else 
     { 
      setBalance(getBalance() - amount); 
     } 

Теперь он устанавливает в ваше balance переменного вашего нового значения, потому что если вы снимаете, вы будете иметь balance-amount денег на вашем счете.

Я надеюсь, это будет полезно для вас!