所以我的 Employee 类中有这段代码:
public static double HoursWorked;
public static double HourlyWage;
public static double AnnualGrossSalary = HoursWorked*HourlyWage*52;
public double getAnnualGrossSalary(){
return AnnualGrossSalary;
}
现在我已将它们设置为静态,因为我在其他类中使用 AnnualGrossSalary,并且出于某种原因,他们要求我将其设置为静态,不会与编译器争论(Java 新手!)
基本上在我的主课中我有:
report.println(ArrEmployee.get(0).getAnnualGrossSalary());
这个年薪总额应该打印在文件中。我的数组列表 ArrEmployee
包含 Employee 对象,其中包含变量 HoursWorked
和 HourlyWage
。
现在我遇到的问题是在报告中,当 HourlyWage
和 HoursWorked
都 > 0 时,我只得到 0.0...我似乎找不到这里的问题,有人可以帮忙吗?
最佳答案
每个员工
不应该有自己的工资吗?看起来它们不应该是静态的。
类似于:
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());
}
关于java - 在 Java 中使用 ArrayList 内部的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29136995/