在 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
包含包含变量 HoursWorked
和 HourlyWage
的 Employee 对象。
现在我遇到的问题是在报告中我只得到 0.0,当 HourlyWage
和 HoursWorked
都 > 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());
}
所以我的员工中有这段代码 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
包含包含变量 HoursWorked
和 HourlyWage
的 Employee 对象。
现在我遇到的问题是在报告中我只得到 0.0,当 HourlyWage
和 HoursWorked
都 > 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());
}