4.Write a Java programming to create a banking system with three classes - Bank, Account, SavingsAccount, and CurrentAccount. The bank should have a list of accounts and methods for adding them. Accounts should be an interface with methods to deposit, withdraw, calculate interest, and view balances. SavingsAccount and CurrentAccount should implement the Account interface and have their own unique methods.
💡Code:
// A class to represent a bank class Bank { // A list of accounts in the bank private java.util.Listaccounts; // A constructor to initialize the list public Bank() { accounts = new java.util.ArrayList (); } // A method to add an account to the bank public void addAccount(Account account) { accounts.add(account); } // A method to display the details of all accounts public void displayAccounts() { for (Account account : accounts) { System.out.println(account); } } } // An interface to represent an account interface Account { // A method to deposit money into the account public void deposit(double amount); // A method to withdraw money from the account public void withdraw(double amount); // A method to calculate the interest on the account public double calculateInterest(); // A method to view the balance of the account public double getBalance(); // A method to display the details of the account public String toString(); } // A class to represent a savings account class SavingsAccount implements Account { // A constant to store the interest rate private static final double INTEREST_RATE = 0.05; // A variable to store the account number private int accountNumber; // A variable to store the balance of the account private double balance; // A constructor to initialize the account number and balance public SavingsAccount(int accountNumber, double balance) { this.accountNumber = accountNumber; this.balance = balance; } // A method to deposit money into the account public void deposit(double amount) { balance += amount; } // A method to withdraw money from the account public void withdraw(double amount) { if (balance >= amount) { balance -= amount; } else { System.out.println("Insufficient funds"); } } // A method to calculate the interest on the account public double calculateInterest() { return balance * INTEREST_RATE; } // A method to view the balance of the account public double getBalance() { return balance; } // A method to display the details of the account public String toString() { return "SavingsAccount[accountNumber=" + accountNumber + ", balance=" + balance + "]"; } } // A class to represent a current account class CurrentAccount implements Account { // A constant to store the overdraft limit private static final double OVERDRAFT_LIMIT = 1000; // A variable to store the account number private int accountNumber; // A variable to store the balance of the account private double balance; // A constructor to initialize the account number and balance public CurrentAccount(int accountNumber, double balance) { this.accountNumber = accountNumber; this.balance = balance; } // A method to deposit money into the account public void deposit(double amount) { balance += amount; } // A method to withdraw money from the account public void withdraw(double amount) { if (balance + OVERDRAFT_LIMIT >= amount) { balance -= amount; } else { System.out.println("Overdraft limit exceeded"); } } // A method to calculate the interest on the account public double calculateInterest() { return 0; // No interest for current account } // A method to view the balance of the account public double getBalance() { return balance; } // A method to display the details of the account public String toString() { return "CurrentAccount[accountNumber=" + accountNumber + ", balance=" + balance + "]"; } } // A class to test the program class Test { public static void main(String[] args) { // Create a bank object Bank bank = new Bank(); // Create some account objects Account a1 = new SavingsAccount(101, 5000); Account a2 = new CurrentAccount(102, 3000); Account a3 = new SavingsAccount(103, 7000); Account a4 = new CurrentAccount(104, 4000); // Add the accounts to the bank bank.addAccount(a1); bank.addAccount(a2); bank.addAccount(a3); bank.addAccount(a4); // Display the details of all accounts bank.displayAccounts(); // Deposit some money into a1 a1.deposit(1000); // Withdraw some money from a2 a2.withdraw(2000); // Calculate the interest for a3 System.out.println("Interest for a3: " + a3.calculateInterest()); // Display the balance of a4 System.out.println("Balance of a4: " + a4.getBalance()); // Display the details of all accounts again bank.displayAccounts(); } }
📸Output :
