summaryrefslogtreecommitdiff
path: root/java/06-simple-objects-better/AccountManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/06-simple-objects-better/AccountManager.java')
-rw-r--r--java/06-simple-objects-better/AccountManager.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/java/06-simple-objects-better/AccountManager.java b/java/06-simple-objects-better/AccountManager.java
new file mode 100644
index 0000000..5a3368c
--- /dev/null
+++ b/java/06-simple-objects-better/AccountManager.java
@@ -0,0 +1,39 @@
+import java.util.HashMap;
+import java.util.Map;
+
+public class AccountManager {
+
+ private Map<Integer, Account> accounts = new HashMap<>();
+
+ /*
+ This is a called a constructor. It gets executed when an object of this class is
+ created.
+ */
+ public AccountManager() {
+ // For testing, create some account objects.
+ // In a real systems, account data will be in a storage system like a database.
+
+ Account account = new Account(1, 10.0);
+ accounts.put(account.getAccountNumber(), account);
+
+ account = new Account(2, 20.0);
+ accounts.put(account.getAccountNumber(), account);
+
+ account = new Account(3, 10.0);
+ accounts.put(account.getAccountNumber(), account);
+ }
+
+ public void withdraw(int accountId, double amount) {
+ Account account = accounts.get(accountId);
+ account.setBalance(account.getBalance() - amount);
+ }
+
+ public void deposit(int accountId, double amount) {
+ Account account = accounts.get(accountId);
+ account.setBalance(account.getBalance() + amount);
+ }
+
+ public double getBalance(int accountId) {
+ return accounts.get(accountId).getBalance();
+ }
+}