Phase III
- Added: - AccountInterface - CheckingAccount - SavingsAccount - Converted Account to abstract class - All instance variables are validated via exception handling
This commit is contained in:
42
src/bankAcctApp/CheckingAccount.java
Normal file
42
src/bankAcctApp/CheckingAccount.java
Normal file
@@ -0,0 +1,42 @@
|
||||
/* Phase III */
|
||||
|
||||
package bankAcctApp;
|
||||
|
||||
// Class representing checking accounts
|
||||
public class CheckingAccount extends Account {
|
||||
|
||||
// Overridden method for withdrawals in checking accounts
|
||||
@Override
|
||||
public void withdrawal(double amount) {
|
||||
double newBalance = getBalance() - amount - getSvcFee(); // Deduct amount and service fee
|
||||
if (newBalance < 0) { // Check for overdraft
|
||||
newBalance -= getOverDraftFee(); // Apply overdraft fee if balance is negative
|
||||
}
|
||||
setBalance(newBalance); // Update balance
|
||||
}
|
||||
|
||||
// Overridden method for deposits in checking accounts
|
||||
@Override
|
||||
public void deposit(double amount) {
|
||||
setBalance(getBalance() + amount - getSvcFee()); // Add amount and deduct service fee
|
||||
}
|
||||
|
||||
// Overridden method for applying accrued interest in checking accounts
|
||||
@Override
|
||||
public double applyAccruedInterest(String transactionDate) {
|
||||
double interest = 0.0;
|
||||
if (getBalance() <= 0.0) { // Ensure balance is positive for interest accrual
|
||||
System.out.println("This account has an insufficient balance for interest to apply.");
|
||||
} else {
|
||||
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
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user