在 Java 的 ArrayList 中使用变量

Using variables inside of an ArrayList in Java

所以我的员工中有这段代码 class:

     public static double HoursWorked;
     public static double HourlyWage;  

    public static double AnnualGrossSalary = HoursWorked*HourlyWage*52;

    public double getAnnualGrossSalary(){       
        return AnnualGrossSalary;
    }

现在我将它们设置为静态,因为我在其他 classes 中使用 AnnualGrossSalary 并且出于某种原因他们要求我将其设置为静态,不会与编译器争论(Java新手!)

基本上在我的主要 class 我有:

report.println(ArrEmployee.get(0).getAnnualGrossSalary());

这个年薪总额应该打印在一个文件中。我的数组列表 ArrEmployee 包含包含变量 HoursWorkedHourlyWage 的 Employee 对象。

现在我遇到的问题是在报告中我只得到 0.0,当 HourlyWageHoursWorked 都 > 0 时......我似乎无法在这里找到问题,有人可以帮忙吗?

不应该每个Employee都有自己的薪水吗?看起来它们不应该是静态的。

类似于:

private double hoursWorked, hourlyWage;

public double getAnnualGrossSalary(){
  return hoursWorked * hourlyWage * 52;
}

如果您还需要访问这些变量,您应该使用 setter 和 getter 来保持封装。

public void setHoursWorked(double hours){
  this.hoursWorked = hours;
}

public double getHoursWorked(){
  return this.hoursWorked;
}

然后您可以像这样在 ArrayList 中使用它们:

Employee emp = new Employee();
emp.setHourlyWage(12.5);
emp.setHoursWorked(100);

List<Employee> employees = new ArrayList<Employee>();
employees.add(emp);

for(Employee e : employees){
  System.out.println(e.getAnnualGrossSalary());
}