This project is a Java-based console application that simulates banking operations. It allows users to create different types of bank accounts, check balances, deposit and withdraw funds, transfer money between accounts, and calculate interest. The application uses Object-Oriented Programming (OOP) principles, including inheritance, polymorphism, and abstraction.
- 🏦 Create Savings, Current, Premium Savings, and Premium Current accounts
- 💰 Deposit and withdraw money with different methods
- 🔄 Fund transfers between accounts
- 📈 Interest calculation for eligible accounts
- 🏷️ View account details including IFSC code and branch name
- ⚖️ Enforce banking rules such as overdraft limits and minimum balances
- 📂 Maintain an array of accounts for user management
- The core programming language used for implementing the application.
- Provides object-oriented features such as inheritance, encapsulation, and polymorphism.
- Encapsulation: Private variables with public getter and setter methods.
- Inheritance:
BankAccountas the base class, withSavingsAccount,CurrentAccount, andPremiumAccountas derived classes. - Polymorphism: Overriding deposit and withdraw methods in subclasses.
- Abstraction:
AccountServicesinterface andPremiumAccountabstract class.
- Defines standard banking operations such as deposit, withdraw, and fund transfer.
- Enforces full implementation in all account types.
- Restricts object creation while allowing common methods for premium account types.
- Implements abstract method
getBenefits()which is defined uniquely in subclasses.
- Prevents withdrawal beyond balance or overdraft limit.
- Ensures deposits and withdrawals are non-negative.
- Generates unique account numbers using a static counter.
- 🔨 Compile the Java program
javac BankApp.java
▶️ Run the Applicationjava BankApp
├── BankApp.java # Main application logic and user interactions
├── BankAccount.java # Base class for account types
├── SavingsAccount.java # Savings account implementation
├── CurrentAccount.java # Current account implementation
├── PremiumAccount.java # Abstract class for premium accounts
├── PremiumSavingsAccount.java # Premium savings account with high interest
├── PremiumCurrentAccount.java # Premium current account with overdraft
└── BankUtil.java # Utility class for account number generation
- 🏦 Run the application and follow the menu options.
- 🆕 Create an account by providing the account holder's name and initial balance.
- 💳 Perform transactions such as deposits, withdrawals, and transfers.
- 🔍 Check balance and account details.
- 🎁 View benefits if the account is a premium account.
- 📊 Calculate interest for applicable accounts.
- 🖥️ Add a graphical user interface (GUI) for better user experience.
- 🗄️ Implement database storage for persistent account records.
- 🌍 Support for online banking features like bill payments.
- Daksh R Laxetti (dakshrl15@gmail.com)
This project is licensed under the MIT License.