summaryrefslogtreecommitdiff
path: root/java/09-packages/src/lk/ac/pdn/ceit/fullstack
diff options
context:
space:
mode:
Diffstat (limited to 'java/09-packages/src/lk/ac/pdn/ceit/fullstack')
-rw-r--r--java/09-packages/src/lk/ac/pdn/ceit/fullstack/Account.java28
-rw-r--r--java/09-packages/src/lk/ac/pdn/ceit/fullstack/AccountApp.java18
-rw-r--r--java/09-packages/src/lk/ac/pdn/ceit/fullstack/AccountManager.java41
3 files changed, 87 insertions, 0 deletions
diff --git a/java/09-packages/src/lk/ac/pdn/ceit/fullstack/Account.java b/java/09-packages/src/lk/ac/pdn/ceit/fullstack/Account.java
new file mode 100644
index 0000000..acc5fe6
--- /dev/null
+++ b/java/09-packages/src/lk/ac/pdn/ceit/fullstack/Account.java
@@ -0,0 +1,28 @@
+package lk.ac.pdn.ceit.fullstack;
+
+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/09-packages/src/lk/ac/pdn/ceit/fullstack/AccountApp.java b/java/09-packages/src/lk/ac/pdn/ceit/fullstack/AccountApp.java
new file mode 100644
index 0000000..a7736af
--- /dev/null
+++ b/java/09-packages/src/lk/ac/pdn/ceit/fullstack/AccountApp.java
@@ -0,0 +1,18 @@
+package lk.ac.pdn.ceit.fullstack;
+
+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/09-packages/src/lk/ac/pdn/ceit/fullstack/AccountManager.java b/java/09-packages/src/lk/ac/pdn/ceit/fullstack/AccountManager.java
new file mode 100644
index 0000000..429e0e7
--- /dev/null
+++ b/java/09-packages/src/lk/ac/pdn/ceit/fullstack/AccountManager.java
@@ -0,0 +1,41 @@
+package lk.ac.pdn.ceit.fullstack;
+
+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();
+ }
+}