Java:使用double变量调用double方法

时间:2017-03-30 15:31:28

标签: java methods

我得到的错误是:

"Cannot invoke yearlyPay() on the primitive type double"

我正在尝试在变量yearlyPay()上调用方法:calcPay。 我创建了yearlyPay(),看起来如此:

public double yearlyPay(double pay)
{
    double yearlyPay = hourlyRate * HOURS_YEAR;
    System.out.println("public double yearlyPay(double pay): " + yearlyPay);
    System.out.println("");
    return yearlyPay;
}

然后我有另一种方法,其中calcPay位于

public double localTax(double calcPay)
{
    double pay = calcPay;
    double localTax;

    if (pay.yearlyPay() < 45000)
    {
        localTax = (1.15 / 100) * pay;
    }
    else
        localTax = (1.15 / 100) * 45000;

    return localTax;
}

我还认为有

double pay = calcPay

有点多余,所以我将其改为

public double localTax(double calcPay)
{   //removed double pay = calcPay
    double localTax;

    if (calcPay.yearlyPay() < 45000)
    {
        localTax = (1.15 / 100) * pay;
    }
    else
        localTax = (1.15 / 100) * 45000;

    return localTax;
}

但是......同样的事情发生了。

我用Google搜索了问题(带有错误信息),但我找不到任何有用的信息。

有一个地方据说要改为Double,但我不知道哪些地方要改变。所以我逐个尝试了每一个......不用说也没用。

任何帮助将不胜感激。代码还有更多(这是家庭作业)。我没有发布所有因为我不认为它有用。询问你是否需要特定的。

此外,如果这个问题与此类似,请告诉我,我会删除它并查看该问题。我可能在谷歌的3,000,000多个搜索结果中错过了它。

1 个答案:

答案 0 :(得分:2)

只有对象有方法。

double原语而不是对象。

您的yearlyPay()方法是您正在编写的课程的方法,而不是double

因此,如果yearlyPay()与调用在同一个类中定义,则将其称为:

double n = yearlyPay(calcPay);

...或者如果您在另一个类中编写该方法(例如,PayCalculator):

PayCalculator payCalculator = new PayCalculator(); 
...
double n = payCalculator.yearlyPay(calcPay);

...或者如果该方法位于PayCalculator static方法中:

double n = PayCalculator.yearlyPay(calcPay);

顺便说一下,使用浮点数类型进行货币计算并不是一个好主意。谷歌有理由。