intellij version of CashMachineBlueJ

Account.java 978B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package rocks.zipcode.atm.bank;
  2. /**
  3. * @author ZipCodeWilmington
  4. */
  5. public abstract class Account {
  6. private AccountData accountData;
  7. public Account(AccountData accountData) {
  8. this.accountData = accountData;
  9. }
  10. public AccountData getAccountData() {
  11. return accountData;
  12. }
  13. public void deposit(int amount) {
  14. updateBalance(getBalance() + amount);
  15. }
  16. public boolean withdraw(int amount) {
  17. if (canWithdraw(amount)) {
  18. updateBalance(getBalance() - amount);
  19. return true;
  20. } else {
  21. return false;
  22. }
  23. }
  24. protected boolean canWithdraw(int amount) {
  25. return getBalance() >= amount;
  26. }
  27. public int getBalance() {
  28. return accountData.getBalance();
  29. }
  30. private void updateBalance(int newBalance) {
  31. accountData = new AccountData(accountData.getId(), accountData.getName(), accountData.getEmail(),
  32. newBalance);
  33. }
  34. }