-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathAccount.java
More file actions
47 lines (34 loc) · 1.08 KB
/
Account.java
File metadata and controls
47 lines (34 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package rocks.zipcode.atm.bank;
/**
* @author ZipCodeWilmington
*/
public abstract class Account {
private AccountData accountData;
public Account(AccountData accountData) {
this.accountData = accountData;
}
public AccountData getAccountData() {
return accountData;
}
public void deposit(Float amount) {
accountData = new AccountData (accountData.getId(), accountData.getName(), accountData.getEmail(), accountData.getBalance() + amount);
}
public boolean withdraw(Float amount) {
if (canWithdraw(amount)) {
updateBalance(((getBalance() - amount)));
return true;
} else {
return false;
}
}
protected boolean canWithdraw(float amount) {
return accountData.getBalance() >= amount;
}
public int getBalance() {
return (int) accountData.getBalance();
}
private void updateBalance(float newBalance) {
accountData = new AccountData(accountData.getId(), accountData.getName(), accountData.getEmail(),
newBalance);
}
}