yearly interest rate, (represented as a percentage, e.g., a 7% rate is represented by .07). The interest is applied monthly, (i.e., at the end of each month 1/12 of the interest is deposited into the account). public class Bankasseuat, public BankasGOUnt, (double rate) public BankAsGOunt, (double irátBab, double rate) public double getBalanse() public double getiatBate() public void gettatBate(double rate) public void deposit (double amount) public void withdraw(double amount) public void addMenthsintexest () private double balance; private double irtrate/ Suppose a bank offers to its special customers a new type of savings account, called a “Credit Account", that allows the customer to withdraw extra money if needed, so that the account balance is allowed to be negative at some times. These accounts award interest at the end of every month, as long as the balance is positive. If the balance is negative, then the account is charged the monthly interest for the negative amount, plus 0.5%. In addition, any withdrawals to an account with a non-positive balance are charged a fee of $2. Provide the code for this extension class. Be sure to include constructor methods and override the appropriate methods. CODT

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

JAVA

Please please help me with this i'd really appreciate it; thanks so so much!

The `BankAccount` class described below is used to represent a personal savings account with a yearly interest rate (represented as a percentage, e.g., a 7% rate is represented by .07). The interest is applied monthly (i.e., at the end of each month 1/12 of the interest is deposited into the account).

```java
public class BankAccount
{
    public BankAccount(double rate)
    public BankAccount(double initBal, double rate)
    public double getBalance()
    public double getIntRate()
    public void setBalance(double amount)
    public void deposit(double amount)
    public void withdraw(double amount)
    public void addMonthsInterest()
    private double balance;
    private double intRate;
}
```

Suppose a bank offers to its special customers a new type of savings account, called a "Credit Account", that allows the customer to withdraw extra money if needed, so that the account balance is allowed to be negative at some times. These accounts award interest at the end of every month, as long as the balance is positive. If the balance is negative, then the account is charged the monthly interest for the negative amount, plus 0.5%.

In addition, any withdrawals to an account with a non-positive balance are charged a fee of $2. Provide the code for this extension class. Be sure to include constructor methods and override the appropriate methods.

**CODE:**

```java
class BankAccount {
    private double intRate;
    private double balance;

    public BankAccount(double rate, double initBal) {
        this.intRate = rate;
        this.balance = initBal;
    }

    public BankAccount(double rate) {
        this.intRate = rate;
    }

    public double getIntRate() {
        return intRate;
    }

    public double getBalance() {
        return balance;
    }

    public void setIntRate(double rate) {
        this.intRate = rate;
    }
    
    public void setBalance(double amount) {
        this.balance = amount;
    }

    public void deposit(double amount) {
        balance = balance + amount;
    }

    public void withdraw(double amount) {
        if(balance > amount) {
            balance = balance - amount;
        } else {
            System.out.println("Not sufficient balance");
        }
    }

    public void addMonthsInterest() {
        double interest_monthly = (balance * intRate) / 12;
        balance = balance
Transcribed Image Text:The `BankAccount` class described below is used to represent a personal savings account with a yearly interest rate (represented as a percentage, e.g., a 7% rate is represented by .07). The interest is applied monthly (i.e., at the end of each month 1/12 of the interest is deposited into the account). ```java public class BankAccount { public BankAccount(double rate) public BankAccount(double initBal, double rate) public double getBalance() public double getIntRate() public void setBalance(double amount) public void deposit(double amount) public void withdraw(double amount) public void addMonthsInterest() private double balance; private double intRate; } ``` Suppose a bank offers to its special customers a new type of savings account, called a "Credit Account", that allows the customer to withdraw extra money if needed, so that the account balance is allowed to be negative at some times. These accounts award interest at the end of every month, as long as the balance is positive. If the balance is negative, then the account is charged the monthly interest for the negative amount, plus 0.5%. In addition, any withdrawals to an account with a non-positive balance are charged a fee of $2. Provide the code for this extension class. Be sure to include constructor methods and override the appropriate methods. **CODE:** ```java class BankAccount { private double intRate; private double balance; public BankAccount(double rate, double initBal) { this.intRate = rate; this.balance = initBal; } public BankAccount(double rate) { this.intRate = rate; } public double getIntRate() { return intRate; } public double getBalance() { return balance; } public void setIntRate(double rate) { this.intRate = rate; } public void setBalance(double amount) { this.balance = amount; } public void deposit(double amount) { balance = balance + amount; } public void withdraw(double amount) { if(balance > amount) { balance = balance - amount; } else { System.out.println("Not sufficient balance"); } } public void addMonthsInterest() { double interest_monthly = (balance * intRate) / 12; balance = balance
### Transcription and Explanation

#### Code Explanation

The image displays Java code snippets for a credit account simulation, focusing on balance calculation with interest. The code is divided into two main parts: a class for handling the credit account logic and a driver class `Main` to execute the operations.

#### `CreditAccount` Class

1. **Fields and Methods**:
   - Handles balance updates by withdrawing amounts and adding monthly interest.
   - Updates balance differently depending on whether the account balance is positive or negative.

2. **Methods**:
   - `withdraw(double amount)`: Handles withdrawal operations.
     - Updates account balance after subtraction or keeps it unchanged if withdrawal exceeds current balance.
   
   - `addMonthsInterest()`: Adds interest to the account.
     - If the balance is positive, calculates interest regularly.
     - If the balance is negative, a different rate is used to subtract interest.

```java
// Code Block 1: Withdraw Method
public void withdraw(double amount) {
    if(this.getBalance() - amount < 0){
        ...
    }
    else {
        balance_left = this.getBalance() - amount;
        this.setBalance(balance_left);
    }
}

// Code Block 2: Add Monthly Interest Method
public void addMonthsInterest() {
    if(this.getBalance() >= 0){
        ...
    }
    else{
        ...
    }
}
```

#### `Main` Class (Driver Class)

The `Main` class serves as the driver to demonstrate how the `CreditAccount` class is utilized:

1. Initializes a credit account with a balance of 10,000 and an interest rate of 7%.
2. Withdraws $15,000, which is more than the current balance, testing if the code handles overdrafts.
3. Calls `addMonthsInterest()` to test interest application.
4. Prints initial balance, post-withdrawal balance, and balance after applying interest.

```java
// Driver Class: Main
public class Main {
    public static void main(String[] args) {
        CreditAccount creditAccount = new CreditAccount(0.07, 10000);
        System.out.println("Initial amount : $" + creditAccount.getBalance());
        System.out.println("Withdrawing $15000 from this account");
        creditAccount.withdraw(15000);
        System.out.println("Balance after withdrawing : $" + creditAccount.getBalance());
        creditAccount.addMonthsInterest();
        System.out.println("Balance after adding interest :
Transcribed Image Text:### Transcription and Explanation #### Code Explanation The image displays Java code snippets for a credit account simulation, focusing on balance calculation with interest. The code is divided into two main parts: a class for handling the credit account logic and a driver class `Main` to execute the operations. #### `CreditAccount` Class 1. **Fields and Methods**: - Handles balance updates by withdrawing amounts and adding monthly interest. - Updates balance differently depending on whether the account balance is positive or negative. 2. **Methods**: - `withdraw(double amount)`: Handles withdrawal operations. - Updates account balance after subtraction or keeps it unchanged if withdrawal exceeds current balance. - `addMonthsInterest()`: Adds interest to the account. - If the balance is positive, calculates interest regularly. - If the balance is negative, a different rate is used to subtract interest. ```java // Code Block 1: Withdraw Method public void withdraw(double amount) { if(this.getBalance() - amount < 0){ ... } else { balance_left = this.getBalance() - amount; this.setBalance(balance_left); } } // Code Block 2: Add Monthly Interest Method public void addMonthsInterest() { if(this.getBalance() >= 0){ ... } else{ ... } } ``` #### `Main` Class (Driver Class) The `Main` class serves as the driver to demonstrate how the `CreditAccount` class is utilized: 1. Initializes a credit account with a balance of 10,000 and an interest rate of 7%. 2. Withdraws $15,000, which is more than the current balance, testing if the code handles overdrafts. 3. Calls `addMonthsInterest()` to test interest application. 4. Prints initial balance, post-withdrawal balance, and balance after applying interest. ```java // Driver Class: Main public class Main { public static void main(String[] args) { CreditAccount creditAccount = new CreditAccount(0.07, 10000); System.out.println("Initial amount : $" + creditAccount.getBalance()); System.out.println("Withdrawing $15000 from this account"); creditAccount.withdraw(15000); System.out.println("Balance after withdrawing : $" + creditAccount.getBalance()); creditAccount.addMonthsInterest(); System.out.println("Balance after adding interest :
Expert Solution
steps

Step by step

Solved in 5 steps with 4 images

Blurred answer
Knowledge Booster
Class
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education