41 lines
1.6 KiB
Java
41 lines
1.6 KiB
Java
/* Phase IV */
|
|
|
|
package bankAcctApp;
|
|
|
|
//Class representing savings accounts
|
|
public class SavingsAccount extends Account {
|
|
|
|
// Overridden method for withdrawals in savings accounts
|
|
@Override
|
|
public void withdrawal(double amount) {
|
|
if (getBalance() >= amount + getSvcFee()) { // Ensure sufficient balance
|
|
setBalance(getBalance() - amount - getSvcFee()); // Deduct amount and service fee
|
|
} else {
|
|
throw new IllegalArgumentException("Insufficient funds for withdrawal. Savings accounts cannot overdraft.");
|
|
}
|
|
}
|
|
|
|
// Overridden method for deposits in savings accounts
|
|
@Override
|
|
public void deposit(double amount) {
|
|
setBalance(getBalance() + amount - getSvcFee()); // Add amount and deduct service fee
|
|
}
|
|
|
|
// Overridden method for applying accrued interest in savings accounts
|
|
@Override
|
|
public double applyAccruedInterest(String transactionDate) {
|
|
if (getBalance() <= 0) { // Ensure balance is positive for interest accrual
|
|
throw new IllegalArgumentException("The account has an insufficient balance for interest to apply.");
|
|
}
|
|
double interest = getBalance() * (getInterestRate() / 100); // Calculate interest
|
|
setBalance(getBalance() + interest); // Add interest to the balance
|
|
logTransaction(transactionDate, "INT", interest); // Log the interest transaction
|
|
return interest;
|
|
}
|
|
|
|
// Implementation of balance() method from AccountInterface
|
|
@Override
|
|
public double balance() {
|
|
return getBalance(); // Return the current balance
|
|
}
|
|
} |