类型中的方法不适用于参数

我收到此错误消息:

找到2个错误:

错误:PayCalculator类型中的方法determineTaxRate(double)不适用于arguments()

错误:PayCalculator类型中的calculateNetPay(double,double)方法不适用于arguments()

你能告诉我怎么做才能解决这个问题吗?

public class PayCalculator { private double hourlyRate; private double hoursWorked; /** * Two parameter constructor * Add hourlyRate and hoursWorked * @param the hourly rate * @param the hours worked */ public PayCalculator(double aHourlyRate, double aHoursWorked) { hourlyRate = aHourlyRate; hoursWorked = aHoursWorked; } /** * sets the hourly rate * @return hourlyRate */ public void setHourlyRate(double aHourlyRate) { hourlyRate = aHourlyRate; } /** * gets the hourly rate * @param hourlyRate */ public double getHourlyRate() { return hourlyRate; } /** * sets the hours worked * @return hoursWorked */ public void setHoursWorked(double aHoursWorked) { hoursWorked = aHoursWorked; } /** * gets the hours worked * @param hours worked */ public double getHoursWorked() { return hoursWorked; } public boolean workedOvertime() { if (hoursWorked > 40) { return true; } else { return false; } } public double numHoursOvertime() { if (hoursWorked > 40) { return hoursWorked - 40; } else { return 0; } } public double calculateGrossPay() { if (hourlyRate <= 10.25) { if (hourlyRate <= 40) return hourlyRate * hoursWorked; } else { double grossPay = ((40 * hourlyRate) + ((hourlyRate * 2) * hoursWorked - 40)); return grossPay; } if (hoursWorked = 800) { double tax = 0; tax = grossPay * 0.37; return tax; } else if ( grossPay >= 400) { double tax = 0; tax = grossPay * 0.22; return tax; } else { double tax = 0; tax = grossPay * 0.12; return tax; } } public double calculateNetPay(double grossPay, double tax) { double calculateNetPay = grossPay - tax; return calculateNetPay; } public void printData() { System.out.println("Hours Worked: " + hoursWorked); System.out.println("Hourly rate: " + hourlyRate); System.out.println("Number of hours of overtime worked: " + numHoursOvertime()); System.out.println("Worked overtime? " + workedOvertime()); System.out.println("Gross pay: " + calculateGrossPay()); System.out.println("Tax Rate: " + determineTaxRate()); System.out.println("Net Pay: " + calculateNetPay()); } } 

你在打电话

 determineTaxRate() 

但是您的方法定义如下:

 public double determineTaxRate(double grossPay) { 

与您的其他错误相同。 您需要将double传递给该方法。 如:

 determineTaxRate(calculateGrossPay()) 

您没有为从printData()方法调用的方法指定参数,例如:

 System.out.println("Net Pay: " + calculateNetPay()); 

您正在调用带有0个参数的calculateNetPay() ,在您指定的方法定义中,它需要2个双参数。

 public double calculateNetPay(double grossPay, double tax) { ... } 

同样适用于您获得的其他错误。

你的方法用一个参数定义。但你没有传递任何参数。

对于calculateNetPay(),你也在做同样的事情。

你已经声明了你的方法:

 public double determineTaxRate(double grossPay) 

然后像这样调用它:

 determineTaxRate() 

很明显,你在调用方法时错过了一个参数

通过determineTaxRate(someDoubleVar)修复此问题