DB1010 Ответов: 1

Мне нужна помощь, чтобы закончить этот код..


Вопрос заключается в следующем-
Создайте абстрактный класс с именем BankAccount для хранения следующих данных для банковского счета:
● Баланс
● Количество депозитов в этом месяце
● Количество снятий средств
● Годовая процентная ставка
● Ежемесячная плата за обслуживание
Класс должен иметь следующие методы:
* Конструктор-конструктор должен принимать аргументы для баланса и годовой процентной ставки.
* Депозит-метод, принимающий аргумент в пользу суммы депозита. Метод должен добавить аргумент к балансу счета. Он также должен увеличить переменную, содержащую количество депозитов.
* Вывод средств-метод, который принимает аргумент в пользу суммы вывода. Метод должен вычесть аргумент из баланса. Он также должен увеличить переменную, содержащую количество снятий.
* calcInterest-метод, который обновляет баланс путем расчета ежемесячных процентов, заработанных на счете, и добавления этих процентов к балансу. Это выполняется по следующим формулам:
Ежемесячная Процентная Ставка 􏰀 (Годовая Процентная Ставка/12) Ежемесячная Процентная 􏰀 Баланс * Ежемесячная Процентная Ставка Баланс 􏰀 Баланс 􏰁 Ежемесячные Проценты
* monthlyProcess-метод, который вычитает ежемесячные сборы за обслуживание из баланса, вызывает метод calcInterest, а затем устанавливает переменные, удерживающие количество снятий, количество депозитов и ежемесячные сборы за обслуживание равными нулю.
---- Затем создайте класс SavingsAccount, который расширяет класс BankAccount. Класс SavingsAccount должен иметь поле статуса для представления активной или неактивной учетной записи. Если баланс сберегательного счета падает ниже 25 долларов, он становится неактивным. (Поле состояния может быть булевой переменной.) Больше снимать средства нельзя до тех пор, пока баланс не поднимется выше 25 долларов, после чего счет снова станет активным. Класс сберегательного счета должен иметь следующие методы:
* вывод средств-метод, который определяет, является ли счет неактивным до того, как будет произведен вывод средств. (Вывод средств не будет разрешен, если счет не активен.) Затем вывод производится путем вызова суперклассовой версии метода.
* депозит-метод, который определяет, является ли счет неактивным до внесения депозита. Если счет неактивен и депозит приносит баланс выше 25 долларов, счет снова становится активным. Затем депозит вносится путем вызова суперклассовой версии метода.
* monthlyProcess-перед вызовом метода суперкласса этот метод проверяет количество изъятий. Если количество снятий за месяц превышает 4, то плата за обслуживание в размере 1 доллара США за каждый вывод средств выше 4 добавляется в поле суперкласс, содержащее ежемесячные сборы за обслуживание. (Не забудьте проверить баланс счета после того, как плата за обслуживание будет снята. Если баланс падает ниже 25 долларов, счет становится неактивным.)

Вот что у меня есть до сих пор, мой первый класс в порядке, я думаю, но 2-й дает мне проблемы.
public class BankAccount
{
    //declase class fields    
    private double balance;
    private double deposit;
    private double withdrawal;
    private double annualRate;
    private double monthlyFee;
    private double monthlyInterest;
    
    //constructor
    public BankAccount(double myBalance, double myAnnualRate)
    {
        //initiliaze class fields
        balance = myBalance;
        annualRate = myAnnualRate;
        deposit = 0;
        withdrawal = 0;
        monthlyFee = 0;
    }
    
    //class methods
    public double getBalance()
    {
        return balance;
    }
    
    public void setBalance(double myBalance)
    {
        balance = myBalance;
    }
    
    public double getDeposit()
    {
        return deposit;
    }
    
    public void setDeposits(double myDeposit)
    {
        balance = myDeposit;
        deposit += 1;
    }
    
    public double getWithdrawal()
    {
        return withdrawal;
    }
    
    public void setWithdrawal(double myAmount)
    {
        double amount = myAmount;
        balance = balance - myAmount;
        withdrawal += 1;
    }
    
    public double getAnnualRate()
    {
        return annualRate;
    }
    
    public double calcInterest()
    {
        double monthlyRate;
        monthlyRate = (annualRate/12);
        monthlyInterest = balance * monthlyInterest;
        balance = balance + monthlyRate;
        return balance;
    }
    
    public String getMonthlyProcess()
    {
        calcInterest();
        withdrawal = 0;
        deposit = 0;
        monthlyFee = 0;
        return "Monthly Process: " + balance;
    }
}

&усилитель;
public class SavingsAccount extends BankAccount
{
    public int minAmount;
    private double minAmout;
    private int numberOfWithdrawals;
    
    public boolean withdraw(double amount)
    {
     if (getBalance() >= amount + minAmount)
     {
         super.withdraw(amount);
         return true;
        }
        else return false;
    }
    
    public SavingsAccount()
    {
        balance = 0;
        numberOfwithdrawals = 0;
    }
    
    public void withdraw (int amount)
    {
        double tempBalance;
                tempBalance = balance - withdrawMoney;
            
                //checks to make sure you have enough money before calculations are done
                if (tempBalance < 25) {
                    System.out.println ("Insufficient funds! You only have $" + balance + " dollars" );
            }
            
                else {
                    balance -= withdrawMoney;
      
    }
}
    
    public void resetNumOfWithdrawals ()
    {
        
    }
}

Ошибка супер. withdraw(сумма) говорит, что не может найти метод withdraw (двойная) и возможные ошибки при этом, я сделал большую часть работы, но изо всех сил стараюсь завершить, любая помощь будет большое спасибо.

1 Ответов

Рейтинг:
0

Fabio V Silva

У вас есть свой метод вывода, объявленный для получения int в качестве входного параметра,но вы посылаете ему double.
Это вполне объяснимо...