我得到的错误是:
"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多个搜索结果中错过了它。
答案 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);
顺便说一下,使用浮点数类型进行货币计算并不是一个好主意。谷歌有理由。