我需要为我的作业做这个,但是,当我编译它时说我的打印数据中的变量无法解析为类型,我做错了什么?我还需要为此创建一个测试器类。
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 <= 60)
{
return hourlyRate * hoursWorked;
}
else
{
return 60 * hourlyRate;
}
}
public double determineTaxRate(double grossPay)
{
if (grossPay >= 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);
}
}
答案 0 :(得分:1)
您不能仅仅通过他们的名字来呼叫methods
。如下所示打电话给他们。
numHoursOvertime()
workedOvertime()
determineTaxRate(10) // example
calculateNetPay(10, 10) // example
您可以详细了解方法here。
答案 1 :(得分:0)
这些方法无法在System.out.println();
调用中使用。相反,在方法中,创建新的int
并使用方法分配它们,然后在此之后将它们打印出来。例如:
int a = calculateTax();
System.out.println("tax: " + a);
答案 2 :(得分:0)
numHoursOvertime processedOvertime是方法。你不能像这样打电话给他们!
numHoursOvertime()
workedOvertime()
答案 3 :(得分:0)
您令人困惑的方法名称和变量名称。例如,使用
numHoursOvertime()
而不是
numHoursOvertime
答案 4 :(得分:0)
使用括号hoursWorked()
调用方法。我在代码中看到的另一个可能的错误是方法public double determineTaxRate(double grossPay)
,变量tax
未定义