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