5C clear
Thu Jan 18 2024 00:04:47 GMT+0000 (Coordinated Universal Time)
Saved by @exam
import java.util.ArrayList; class Account { protected String accountNumber; protected double balance; public Account(String accountNumber, double balance) { this.accountNumber = accountNumber; this.balance = balance; } public void deposit(double amount) { balance += amount; System.out.println("Deposited: $" + amount); printBalance(); } public void withdraw(double amount) { if (amount <= balance) { balance -= amount; System.out.println("Withdrawn: $" + amount); } else { System.out.println("Insufficient funds"); } printBalance(); } public void printBalance() { System.out.println("Current Balance: $" + balance); } } class SavingsAccount extends Account { private double interestRate; public SavingsAccount(String accountNumber, double balance, double interestRate) { super(accountNumber, balance); this.interestRate = interestRate; } public void applyInterest() { balance += balance * interestRate; System.out.println("Interest applied. Updated Balance: $" + balance); } } class CheckingAccount extends Account { private double overdraftLimit; public CheckingAccount(String accountNumber, double balance, double overdraftLimit) { super(accountNumber, balance); this.overdraftLimit = overdraftLimit; } @Override public void withdraw(double amount) { if (amount <= balance + overdraftLimit) { balance -= amount; System.out.println("Withdrawn: $" + amount); } else { System.out.println("Exceeded overdraft limit"); } printBalance(); } } class Customer { private String name; private ArrayList<Account> accounts; public Customer(String name) { this.name = name; this.accounts = new ArrayList<>(); } public void addAccount(Account account) { accounts.add(account); System.out.println(name + " added an account: " + account.accountNumber); } public void printAccounts() { System.out.println(name + "'s Accounts:"); for (Account account : accounts) { System.out.println(account.accountNumber); } } } class Employee { private String name; public Employee(String name) { this.name = name; } public void processTransaction(Account account, double amount) { account.deposit(amount); } } public class BankingApplication { public static void main(String[] args) { Customer customer1 = new Customer("John Doe"); SavingsAccount savingsAccount = new SavingsAccount("SA123", 1000.0, 0.02); CheckingAccount checkingAccount = new CheckingAccount("CA456", 500.0, 200.0); customer1.addAccount(savingsAccount); customer1.addAccount(checkingAccount); customer1.printAccounts(); Employee bankEmployee = new Employee("Bank Employee"); bankEmployee.processTransaction(savingsAccount, 200.0); bankEmployee.processTransaction(checkingAccount, 300.0); savingsAccount.applyInterest(); } }
Comments