Как ввести этот метод для вычисления стоимости

#java

#java

Вопрос:

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

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

В любом случае, вот исходный код класса Drama

 class Drama extends Movie
{
    public Drama()
    {
        super();
    }
    public Drama(String rating, int IDnumber, String MovieTitle)
    {
        super(rating, IDnumber, MovieTitle);
    }
    public double CalcLateFees(Fee * dayLate);
}
  

Я не думаю, что я правильно использовал этот метод.

Ответ №1:

Вы не можете написать свою логику в прототипе метода, вместо этого вы должны получить значения в качестве параметра и выполнить логику и вернуть значения, как показано ниже:

 public double CalcLateFees(double fee, double dayLate) {

return (fee * dayLate);

}
  

Комментарии:

1. Спасибо, я думаю, это то, что мне нужно сделать, поставьте перед ним double, хотя мой dayLate имеет тип int (Извините, я не показал эту часть) Становится поздно, поэтому мне придется попробовать это завтра. Спасибо

Ответ №2:

Java не использует указатель, просто использует ссылку

Так что измените это

 public double CalcLateFees(Fee * dayLate);
  

Для

 public double CalcLateFees(Fee  dayLate);
  

Также убедитесь, что Movie класс имеет const по умолчанию и const с (String rating, int IDnumber, String MovieTitle) аргументами

Комментарии:

1. Я не думаю, что он пытался использовать указатель, но вычислял в сигнатуре метода.

Ответ №3:

Предпочтение композиции перед наследованием. Попробуйте использовать свойство genre в классе movie. Класс genre может содержать участника с оплатой.

Ответ №4:

переключатель (ваш выбор) {

пример 1: Как-то реализовать свой метод CalclateFees:

 public double CalcLateFees(Fee dayLate) {
   double fee = 0;
   ....
   return fee;
}
  

случай 2:
Объявите свой метод CalclateFees как абстрактный:

 public abstract double CalcLateFees(Fee  dayLate);
  

пример 3:
Пусть класс Fee обрабатывает вычисление:

 public double CalcLateFees(Fee  dayLate) {
    return dayLate.calc(this);
}
  

}