Java Employee 类实现和平均薪资计算示例
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Employee {
private String name;
private int age;
private BigDecimal salary;
private Date hireDate;
public Employee(String name, int age, BigDecimal salary, Date hireDate) {
this.name = name;
this.age = age;
this.salary = salary;
this.hireDate = hireDate;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public BigDecimal getSalary() {
return salary;
}
public void setSalary(BigDecimal salary) {
this.salary = salary;
}
public Date getHireDate() {
return hireDate;
}
public void setHireDate(Date hireDate) {
this.hireDate = hireDate;
}
public static void main(String[] args) throws ParseException {
String data = 'name=小红&age=17&salary=8000.00&hireDate=1991-07-03;' +
'name=小明&age=23&salary=10000.00&hireDate=1992-12-11;' +
'name=小白&age=18&salary=12000.00&hireDate=1996-01-09';
String[] employeesData = data.split(';');
List<Employee> employees = new ArrayList<>();
SimpleDateFormat dateFormat = new SimpleDateFormat('yyyy-MM-dd');
for (String employeeData : employeesData) {
String[] attributes = employeeData.split('&');
String name = attributes[0].split('=')[1];
int age = Integer.parseInt(attributes[1].split('=')[1]);
BigDecimal salary = new BigDecimal(attributes[2].split('=')[1]);
Date hireDate = dateFormat.parse(attributes[3].split('=')[1]);
employees.add(new Employee(name, age, salary, hireDate));
}
BigDecimal totalSalary = BigDecimal.ZERO;
for (Employee employee : employees) {
if (employee.getHireDate().before(dateFormat.parse('1996-01-01'))) {
totalSalary = totalSalary.add(employee.getSalary());
}
}
BigDecimal averageSalary = totalSalary.divide(BigDecimal.valueOf(employees.size()), 2, BigDecimal.ROUND_HALF_UP);
System.out.println('1996 年前入职的员工的平均薪资为: ' + averageSalary);
}
}
这段代码定义了一个 Employee 类,包含了员工的姓名、年龄、薪资和入职日期等属性。代码还演示了如何从字符串中解析员工信息并创建 Employee 对象,最后计算了 1996 年前入职员工的平均薪资。
代码分析:
- 首先,定义了一个 Employee 类,包含了
name、age、salary和hireDate属性,以及相应的 getter 和 setter 方法。 main方法中,首先定义了一个字符串data,包含了多个员工的信息,以;分隔,每个员工的信息以&分隔。- 接着,使用
split方法将data分割成多个员工信息字符串。 - 然后,使用循环遍历每个员工信息字符串,使用
split方法将每个员工信息字符串分割成多个属性值。 - 接着,根据属性值创建 Employee 对象,并将其添加到
employees列表中。 - 最后,使用循环遍历
employees列表,计算 1996 年前入职员工的总薪资,并根据总薪资和员工数量计算平均薪资,并将结果输出到控制台。
代码示例说明:
这段代码展示了如何使用 Java 语言定义类、创建对象以及处理字符串等基本操作,也展示了如何使用 Date 类处理日期信息。同时,代码也展示了如何使用 BigDecimal 类进行精确的数值计算。
建议:
为了提高代码的可读性和可维护性,建议使用更具描述性的变量名,并添加必要的注释来解释代码的功能。此外,可以使用更强大的数据结构和算法来提高代码的效率。
原文地址: https://www.cveoy.top/t/topic/pZHw 著作权归作者所有。请勿转载和采集!