1. ホーム
  2. java

[解決済み】Java、"変数名 "を変数に解決することができない

2022-01-19 03:49:24

質問

Javaを使用してEclipseを使用していますが、このエラーが発生します。

"Variable name" cannot be resolved to a variable.

この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;
    }
}

このエラーメッセージの原因は何ですか?

解決方法は?

変数 'hoursWorked' のスコープを見ると、それがクラスのメンバーであることがわかります(private int として宣言されています)。

あなたが困っている2つの変数は、コンストラクタにパラメータとして渡されます。

エラーメッセージは、セッターの中で 'hours' がスコープ外になっているためです。