枚举主要用于枚举常量,下面举个简单的应用。
比如一个公司有如下几个部门:
- 研发部:
- 销售部:
- 财务部:
(其他部门暂时不列举)
部门的某些信息相对固定,此时可以考虑使用枚举来说明;
枚举类 Depts.java
package myEnum;
public enum Depts {
FINACEDEPT("财务部","负责公司财务"),
DEVELOPDEPT("研发部","负责软件研发工作"),
SALEDEPT("销售部","负责公司的销售工作");
private final String name_cn; //中文名
private final String description; //描述
Depts(String n,String desc){
this.name_cn = n;
this.description = desc;
}
public String getName_cn() {
return name_cn;
}
public String getDescription() {
return description;
}
}
测试类:EnumTest.java
package myEnum;
public class EnumTest {
public static void main(String args[]) {
for (Depts dept : Depts.values()) {
System.out.println(dept + "-" + dept.getName_cn() + "-"
+ dept.getDescription());
}
System.out.println(Depts.DEVELOPDEPT.getDescription());
System.out.println(Depts.DEVELOPDEPT);
}
}
测试结果:
我们还可以为枚举参加抽象方法,然后让每个枚举值实现这个抽象方法。
package myEnum;
public enum Depts {
FINACEDEPT("财务部", "负责公司财务") {
void printInfo() {
System.out.println("最近公司财务信息不错");
}
},
DEVELOPDEPT("研发部","负责软件研发工作") {
void printInfo() {
System.out.println("公司使用Java作为研发工具");
}
},
SALEDEPT("销售部","负责公司的销售工作") {
void printInfo() {
System.out.println("公司销售目标:10000台/年");
}
};
private final String name_cn; //中文名
private final String description; //描述
Depts(String n,String desc){
this.name_cn = n;
this.description = desc;
}
public String getName_cn() {
return name_cn;
}
public String getDescription() {
return description;
}
abstract void printInfo();
}
测试类:
package myEnum;
public class EnumTest {
public static void main(String args[]) {
for (Depts dept : Depts.values()) {
System.out.print(dept);
dept.printInfo();
}
Depts.DEVELOPDEPT.printInfo();
}
}
测试结果: