Как использовать другой метод в методе? - PullRequest
1 голос
/ 27 сентября 2019

Я хочу использовать метод preisProKilo() в методе gesamtpreis()?Речь идет о расчете общей стоимости продукта.preis pro kilo = price per kilo и gesamtpreis = total amount.

class Kaffeeladen {

  double preisProKilo(double grundpreis) {        
        return (grundpreis + 2.19) * 1.19;
  }

  double gesamtpreis(int gewuenschteMenge, double preisProKilo) {      
    return preisProKilo * gewuenschteMenge; 
    //Here its not using the method "preisProKilo" from above. 
  }

  public static void main(String[] args) {
    Kaffeeladen k = new Kaffeeladen();

    double preis1 = k.preisProKilo(3.00);
    System.out.println("Bei einem Grundpreis von 3,00 Euro kostet 1 kg Kaffee inklusive Steuern " + preis1 + " Euro.");


  }
}

Ответы [ 3 ]

6 голосов
/ 27 сентября 2019

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

Вы вообще не вызываете метод, вы используете только переменную.

Это должно быть примерно так:

double preisProKilo(double grundpreis) {
    return (grundpreis + 2.19) * 1.19;
}

double gesamtpreis(int gewuenschteMenge, double newValueName) {
    return preisProKilo(newValueName) * gewuenschteMenge; 
}

Вы можете изменить имяnewValueName к тому, что вы выберете, просто попробуйте использовать другие имена.

Кроме того, я не вижу нигде, где вы на самом деле используете gesamtpreis(int, double), поэтому вам нужно будет использовать это также, выполняя вmain примерно так:

Kaffeeladen k = new Kaffeeladen();
double value = k.gesamtpreis(2, 3.00);
3 голосов
/ 27 сентября 2019

Вы, вероятно, хотели дать gewuenschteMenge, которое является желаемым количеством, и grundpreis, которое является базовой ценой в вашем gesamtpreis или методе полной цены.

class Kaffeeladen {

  double preisProKilo(double grundpreis) {        
        return (grundpreis + 2.19) * 1.19;
  }

  double gesamtpreis(int gewuenschteMenge, double grundpreis) {      
    return preisProKilo(grundpreis) * gewuenschteMenge; 
  }

  public static void main(String[] args) {
    Kaffeeladen k = new Kaffeeladen();

    double preis1 = k.preisProKilo(3.00);
    System.out.println("Bei einem Grundpreis von 3,00 Euro kostet 1 kg Kaffee inklusive Steuern " + preis1 + " Euro.");


  }
}

Вы фактически используете preisProKilo Переменная по вызову метода preisProKilo(double grundpreis), чтобы сделать это, вы должны вызвать его, как показано в коде выше.

0 голосов
/ 27 сентября 2019

Я не уверен, что именно вы пытаетесь сделать здесь, так как имена переменных совпадают с именами методов, но для вызова метода вам нужно использовать синтаксис methodToCall(arg1, arg2).

Кажется, у вас недостаточно понимания того, как работают методы.Один способ думать об этом с точки зрения математических функций.Например,

f(x)= x + 1

Если x равно 1, f(x) имеет значение 2. Если x равно 2, f(x) имеет значение 3 и т. Д.

Таким образом, тот же способ написать это в Java будет следующим:

public int addOne(int x) {
  return x + 1;
}

И для вызова этого метода вы сделаете это.

public int doWork(int value) {
  // doing work...
  value = addOne(value);
  // doing more work...
  return value;
} 
...