diff options
| author | Kamal Wickramanayake <kamal@inbox.lk> | 2026-02-14 17:57:08 +0530 |
|---|---|---|
| committer | Kamal Wickramanayake <kamal@inbox.lk> | 2026-02-14 17:57:08 +0530 |
| commit | 01edac7edf4154c77ffde449ebcb072c4995652e (patch) | |
| tree | 11a886e0937a99a6b6757e37c9ab5745ad70ac7a /java | |
| parent | 6020c31c64727a0ee74a9a5992bf17489fe0e914 (diff) | |
Java packaging sample code added.
Diffstat (limited to 'java')
| -rw-r--r-- | java/09-packages/.gitignore | 2 | ||||
| -rw-r--r-- | java/09-packages/README | 14 | ||||
| -rw-r--r-- | java/09-packages/src/lk/ac/pdn/ceit/fullstack/Account.java | 28 | ||||
| -rw-r--r-- | java/09-packages/src/lk/ac/pdn/ceit/fullstack/AccountApp.java | 18 | ||||
| -rw-r--r-- | java/09-packages/src/lk/ac/pdn/ceit/fullstack/AccountManager.java | 41 |
5 files changed, 103 insertions, 0 deletions
diff --git a/java/09-packages/.gitignore b/java/09-packages/.gitignore new file mode 100644 index 0000000..e493dd6 --- /dev/null +++ b/java/09-packages/.gitignore @@ -0,0 +1,2 @@ +bin +dist diff --git a/java/09-packages/README b/java/09-packages/README new file mode 100644 index 0000000..7618884 --- /dev/null +++ b/java/09-packages/README @@ -0,0 +1,14 @@ +# NOTE: +# On Windows, +# 1. Use \ as the directory seperator. + +# Compile: +mkdir bin +javac -d bin src/lk/ac/pdn/ceit/fullstack/*.java + +# Build jar file: +mkdir dist +jar cfe dist/my-accounts-app.jar lk.ac.pdn.ceit.fullstack.AccountApp -C bin . + +# Run +java -jar dist/my-accounts-app.jar 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(); + } +} |
