我正在完成一项任务,我必须:
使用以下属性/变量创建Employee类: 名称 年龄 系
创建一个名为Department的类,其中包含员工列表。
一个。部门类将有一种方法,将按年龄命令退还其员工。
湾部门的价值只能是以下之一:
我正在努力弄清楚如何完成2b。 以下是我到目前为止的情况:
import java.util.*;
public class Employee {
String name;
int age;
String department;
Employee (String name, int age, String department) {
this.name = name;
this.age = age;
this.department = department;
}
int getAge() {
return age;
}
}
class Department {
public static void main(String[] args) {
List<Employee>empList = new ArrayList<Employee>();
Collections.sort (empList, new Comparator<Employee>() {
public int compare (Employee e1, Employee e2) {
return new Integer (e1.getAge()).compareTo(e2.getAge());
}
});
}
}
答案 0 :(得分:15)
您可以将枚举用于相同的目的,这将限制您仅使用指定的值。
声明您的Department
枚举如下
public enum Department {
Accounting, Marketting, Human_Resources, Information_Systems
}
您Employee
课程现在可以
public class Employee {
String name;
int age;
Department department;
Employee(String name, int age, Department department) {
this.name = name;
this.age = age;
this.department = department;
}
int getAge() {
return age;
}
}
在创建员工时,您可以使用
Employee employee = new Employee("Prasad", 47, Department.Information_Systems);
Adrian Shum 建议编辑,当然因为这是一个很好的建议。
我们将修改枚举以包含toString()
方法和constructor
,其中包含字符串参数。
public enum Department {
ACCOUNTING("Accounting"), MARKETTING("Marketting"), HUMAN_RESOURCES(
"Human Resources"), INFORMATION_SYSTEMS("Information Systems");
private String deptName;
Department(String deptName) {
this.deptName = deptName;
}
@Override
public String toString() {
return this.deptName;
}
}
因此,当我们按照以下方式创建Employee
对象并使用它时,
Employee employee = new Employee("Prasad Kharkar", 47, Department.INFORMATION_SYSTEMS);
System.out.println(employee.getDepartment());
我们将获得一个可读的字符串表示形式Information Systems
,因为它由toString()
方法返回,由System.out.println()
语句隐式调用。
阅读关于Enumerations