是否有一种方法可以在计算方法中使用构造函数上声明的参数?



这真的很难表达,因为我不太确定我应该问什么,但基本上任务是做一个每周工资计算器(忽略税收),计算加班和正常工资

我有以下类

public class Hourly extends Employee {
private static double HourlyWage;
private static double Worked;
public Hourly(int Id, String Name, double HourlyWage, int Worked) {
super(Name, Id);
Hourly.HourlyWage = HourlyWage;
Hourly.Worked = Worked;
}
protected double WeeklyPay() {
if (Worked> 40) {
return (Worked - 40) * (HourlyWage * 1.5);
} else {
return HourlyWage * Worked;
}
}


@Override
public String toString() {
return "ID: " + Id + ", Name: " + Name + ", Hourly Wage: " + HourlyWage + ", Hours Worked: " + Worked;
}

和下面的构造函数

public static void main(String[] args) {
Hourly A = new Hourly (1111, "John Smith", 15.25, 40);
System.out.println(A);
Hourly B  = new Hourly (2222, "Oliver Thomas", 15.50, 60);
System.out.println(B);
System.out.println("Weekly pay for Hourly worker: " + A.WeeklyPay());
System.out.println("Weekly pay for Hourly worker: " + B.WeeklyPay());

我得到的输出是:

ID: 1111,姓名:John Smith,小时工资:15.25,工作时间:40.0

ID: 2222,姓名:Oliver Thomas,时薪:15.5,工作时间:60.0

小时工周薪:465.0

小时工#2周薪:465.0

显然,它没有考虑工作的小时数或每小时的工资我该如何解决这个问题?

如果有任何进一步的细节,我需要提供让我知道,谢谢!

我所要做的就是把

Hourly.HourlyWage = HourlyWage;
Hourly.Worked = Worked;
我需要把它改成
this.hourlyWage = hourlyWage;
this.worked = worked;

此外,数学是不完整的,要计算每周加班的总数,正确的公式是

(worked - 40) * (hourlyWage * 1.5) + (hourlyWage * worked)

它神奇地起作用了

最新更新