A console-based Java application that simulates a simple banking system using object-oriented programming principles. The project models different account types with shared behavior and specialized rules.
- Abstract base
Accountclass CheckingAccountandSavingsAccountsubclasses- Account-specific withdrawal rules
- Interest calculation over time
- Polymorphic behavior via an account array
- Console-based test driver
- Object-Oriented Programming (OOP)
- Abstraction and abstract classes
- Inheritance and method overriding
- Polymorphism
- Encapsulation
- Static class members
- Java Time API (
LocalDate,ChronoUnit) - Business rule enforcement
- Console I/O
- No minimum balance
- No interest accumulation
- Unlimited withdrawals
- Minimum balance requirement ($300)
- Maximum of 3 withdrawals per month
- Interest accrued monthly based on account age
- Account.java
- CheckingAccount.java
- SavingsAccount.java
- BankTest.java
Compile all files:
javac *.javaRun the program:
java BankTest
The program performs multiple withdrawal attempts on each account and displays updated balances, account details, and calculated account values (including interest for savings accounts).
This project was created to reinforce core Java and object-oriented programming concepts. It demonstrates class design, inheritance, polymorphism, and business rule enforcement, and is suitable as both an academic project and a portfolio example for software engineering internships.
Rishit Srinivas, Computer Science Student, San José State University