summaryrefslogtreecommitdiff
path: root/java/06-simple-objects-better
diff options
context:
space:
mode:
Diffstat (limited to 'java/06-simple-objects-better')
-rw-r--r--java/06-simple-objects-better/.gitignore1
-rw-r--r--java/06-simple-objects-better/Account.java26
-rw-r--r--java/06-simple-objects-better/AccountApp.java16
-rw-r--r--java/06-simple-objects-better/AccountManager.java39
4 files changed, 82 insertions, 0 deletions
diff --git a/java/06-simple-objects-better/.gitignore b/java/06-simple-objects-better/.gitignore
new file mode 100644
index 0000000..6b468b6
--- /dev/null
+++ b/java/06-simple-objects-better/.gitignore
@@ -0,0 +1 @@
+*.class
diff --git a/java/06-simple-objects-better/Account.java b/java/06-simple-objects-better/Account.java
new file mode 100644
index 0000000..4b26eca
--- /dev/null
+++ b/java/06-simple-objects-better/Account.java
@@ -0,0 +1,26 @@
+public class Account {
+
+ /* Declaring fields - represent state */
+
+ int accountNumber;
+ double balance;
+
+ public Account(int accountNumber, double balance) {
+ this.accountNumber = accountNumber;
+ this.balance = balance;
+ }
+
+ public int getAccountNumber() {
+ return accountNumber;
+ }
+ public void setAccountNumber(int accountNumber) {
+ this.accountNumber = accountNumber;
+ }
+ public double getBalance() {
+ return balance;
+ }
+ public void setBalance(double balance) {
+ this.balance = balance;
+ }
+
+}
diff --git a/java/06-simple-objects-better/AccountApp.java b/java/06-simple-objects-better/AccountApp.java
new file mode 100644
index 0000000..3399770
--- /dev/null
+++ b/java/06-simple-objects-better/AccountApp.java
@@ -0,0 +1,16 @@
+public class AccountApp {
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) {
+ AccountManager accountManager = new AccountManager();
+
+ System.out.println(accountManager.getBalance(2));
+
+ accountManager.deposit(2, 2.0);
+
+ System.out.println(accountManager.getBalance(2));
+ }
+
+}
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();
+ }
+}