如何在一个方法中使用另一个方法?

时间:2019-09-27 15:05:39

标签: java methods reference return

我想在方法preisProKilo()中使用方法gesamtpreis()?关于计算产品的总价。 preis pro kilo = price per kilogesamtpreis = 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 个答案:

答案 0 :(得分:6)

您因为将方法和变量命名为同一东西而感到困惑。不要这样

您根本不调用任何方法,仅使用变量。

应该是这样的:

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);

答案 1 :(得分:3)

您可能想用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)来执行此操作,因此您必须按上面的代码所示对其进行调用。

答案 2 :(得分:0)

我不确定您要在此做什么,因为变量的命名与方法名称相同,但是要调用方法,您需要使用语法methodToCall(arg1, arg2)。 / p>

您似乎对方法的工作方式缺乏了解。考虑它的一种方法是根据数学函数。例如,

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;
}