use*_*913 18 java variables scope
我使用Java使用Eclipse,我收到此错误:
"Variable name" cannot be resolved to a variable.
Run Code Online (Sandbox Code Playgroud)
有了这个Java程序:
public class SalCal {
private int hoursWorked;
public SalCal(String name, int hours, double hoursRate) {
nameEmployee = name;
hoursWorked = hours;
ratePrHour = hoursRate;
}
public void setHoursWorked() {
hoursWorked = hours; //ERROR HERE, hours cannot be resolved to a type
}
public double calculateSalary() {
if (hoursWorked <= 40) {
totalSalary = ratePrHour * (double) hoursWorked;
}
if (hoursWorked > 40) {
salaryAfter40 = hoursWorked - 40;
totalSalary = (ratePrHour * 40)
+ (ratePrHour * 1.5 * salaryAfter40);
}
return totalSalary;
}
}
Run Code Online (Sandbox Code Playgroud)
是什么导致此错误消息?
Hug*_*nes 12
如果查看变量'hoursWorked'的范围,您将看到它是该类的成员(声明为private int)
您遇到问题的两个变量将作为参数传递给构造函数.
错误消息是因为'hours'超出了setter的范围.
public void setHoursWorked(){
hoursWorked = hours;
}
Run Code Online (Sandbox Code Playgroud)
您尚未hours在该方法中定义.小时不作为参数传入,它不被声明为变量,并且它不被用作类成员,因此您得到该错误.