Complete Application & Review
Assemble the complete banking application and review all Java concepts applied — the capstone that ties together the entire course.
45 min•By Priygop Team•Last updated: Feb 2026
Concepts Applied
- OOP Principles: Encapsulation (private fields + public methods), Inheritance (SavingsAccount extends BankAccount), Polymorphism (calculateInterest() override), Abstraction (BankAccount interface hides complexity)
- Collections Applied: ArrayList<Transaction> for ordered transaction history, HashMap<String, BankAccount> for O(1) account lookup, Collections.sort() for sorting accounts by balance
- Exception Handling Applied: IllegalArgumentException for validation, FileNotFoundException for missing files, InputMismatchException for invalid user input, custom InsufficientFundsException
- File I/O Applied: BufferedReader/PrintWriter for CSV files, try-with-resources for automatic resource cleanup, append mode for transaction logs, directory creation with Files API
- Streams Applied: accounts.values().stream().mapToDouble(BankAccount::getBalance).sum() — calculate total bank assets. .filter(a -> a.getBalance() > 10000).count() — count high-value accounts
- Formatting Applied: String.format() and System.out.printf() for professional console output — aligned columns, currency formatting with commas, date formatting with SimpleDateFormat
Try It Yourself: Bank Account Class
Try It Yourself: Bank Account ClassJava
Java Editor
✓ ValidTab = 2 spaces
Java|47 lines|1315 chars|✓ Valid syntax
UTF-8