1 枚举类的引入
Java枚举类型在特定的场景下通途很大,比如:对系统代码、系统参数等使用枚举类型表示,不仅解决使用常量配置参数可读性差的问题,还可以对数据进行分类,本文详解Java枚举类型在企业开发中的使用方法。
1)出于类型安全考虑,没用枚举类之前,常用静态常量来表示。比如对于性别的表示:
public static final int MAN = 0;
public static final int WOMAN = 1;
但是,会导致常量配置参数可读性差的问题。枚举类能方便我们定义自己想要的类型。
Java中对常量数据的配置可以使用枚举类型实现,枚举类型是面向对象中的一种类型,它也有对象、属性、方法等所以它非常方便定义,枚举类型将它的对象(实例)设置为常量方便读取和使用。枚举类型定义格式如下:
// 定义枚举类要用关键字enum
public enum 枚举类名 {
枚举项1,枚举项2,枚举项3…;
构造方法
成员变量
成员方法
}
package com.zs;
/**
* 枚举类型
*/
public enum Week {
// 枚举项1, 枚举项2, ...
MONDAY(1, "星期一"),
TUESDAY(2, "星期二"),
WEDNESDAY(3, "星期三"),
THURSDAY(4, "星期四"),
FRIDAY(5, "星期五"),
SATURDAY(6, "星期六"),
SUNDAY(7, "星期日");
// 成员变量
private Integer code;
private String desc;
// 构造方法(private)
private Week(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
private Week(){}
public Integer getCode() {
return code;
}
public String getDesc() {
return desc;
}
}
@Test
public void test() {
System.out.println(Week.MONDAY.getCode());
System.out.println(Week.MONDAY.getDesc());
}
1、每个枚举类型继承java.lang.Enum,所以枚举类不能再继承其它类型。
2、枚举项就是枚举类型的对象(实例),一般使用大写字母,一个枚举项表示一个常量项,多个枚举项中间用逗号分隔。
3、枚举类型的构造方法使用private私有。
4、通过"枚举类名.枚举项名称"去访问指定的枚举项。
2 枚举类实现接口
package com.zs;
public interface SystemCode {
Integer getCode();
String getDesc();
}
package com.zs;
/**
* 枚举类型
*/
public enum Week implements SystemCode{
// ...
@Override
public Integer getCode() {
return this.code;
}
@Override
public String getDesc() {
return this.getDesc();
}
}
3 switch中使用枚举类型
枚举项即枚举类型的对象或实例,枚举项自动为常量,比较两个枚举项使用==来比较,如下代码:
@Test
public void test() {
Week monday = Week.MONDAY;
System.out.println(monday == Week.MONDAY);
}
@Test
public void test() {
Week week = Week.MONDAY;
switch (week) {
case MONDAY:
System.out.println("Week.MONDAY.getDesc()");
break;
case TUESDAY:
System.out.println("Week.TUESDAY.getDesc()");
break;
case WEDNESDAY:
System.out.println("Week.WEDNESDAY.getDesc()");
break;
// ...
default:
break;
}
}