文章目录
- 1、定义
- 2、语法
- 3、使用
- 3.1、普通用法
- 3.2、枚举比较
- 3.2.1、switch中使用
- 3.2.2、if中使用
- 3.3、枚举类型实现接口
1、定义
枚举类型是一个特殊的数据类型,能够为一个变量定义一组预定义的常量。枚举类型属于java类中的一种,可以拥有成员变量和方法。
2、语法
定义枚举类型使用 enum
关键字,它包括枚举项、私有构造方法、成员变量、成员方法。在枚举类中枚举项是就是这个类的对象,它会有自己的属性(变量和方法),所以在定义枚举项时可以调用构造方法,不调用的话直接默认为无参构造方法。
public enum 枚举类名 {
// 枚举项1, 枚举项2, 枚举项3, ...;
// 私有构造方法
// 成员变量
// 成员方法
}
3、使用
如果需要使用很多常量,并且这些常量用在同一个业务场景,那么可以使用枚举类型。
【注意】
- 枚举类型都继承java.lang.Enum,所以枚举类不能再继承其它类型。
- 定义枚举项时,多个枚举项之间需要使用
,
隔开,通常使用大写。 - 枚举类型的构造方法使用private修饰
- 通过
枚举类名.枚举项名称
去访问指定的枚举项 - 枚举类型可以实现接口
3.1、普通用法
使用枚举类型后,常量会被封装到枚举项中。枚举项就是一个对象。
public enum StateEnum {
// 枚举项
OK("请求成功"),
ERROR("请求失败");
private String msg;
private StateEnum() {
}
private StateEnum(String msg) {
this.msg = msg;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
public class TestEnum {
public static void main(String[] args) {
// 枚举项就是一个对象
StateEnum ok = StateEnum.OK;
System.out.println(ok);
System.out.println(StateEnum.OK);
System.out.println(StateEnum.ERROR);
}
}
3.2、枚举比较
枚举的比较通常使用在if支语句(switch、if)中,在if语句中,使用 ==
进行比较。
3.2.1、switch中使用
switch (StateEnum.ERROR) {
case OK:
System.out.println("成功!成功!");
break;
case ERROR:
System.out.println("失败!失败!");
break;
default:
break;
}
3.2.2、if中使用
StateEnum msg = StateEnum.OK;
if (msg == StateEnum.OK) {
System.out.println("成功!成功!");
} else if (msg == StateEnum.ERROR) {
System.out.println("失败!失败!");
}
3.3、枚举类型实现接口
枚举类型可以实现接口,实现的方式跟普通的类没什么区别。
public interface HttpCode {
int getGetCode();
String getGetDescription();
}
public enum CodeEnum implements HttpCode {
SUCCESS(200, "OK"),
PAGE_NOT_FOUND(404, "page not found");
private int code;
private String description;
private CodeEnum() {
}
private CodeEnum(int code, String description) {
this.code = code;
this.description = description;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public int getGetCode() {
return code;
}
@Override
public String getGetDescription() {
return description;
}
}
public class CodeTest {
public static void main(String[] args) {
CodeEnum codeEnum = CodeEnum.PAGE_NOT_FOUND;
System.out.println(codeEnum.getGetCode());
System.out.println(codeEnum.getGetDescription());
}
}
感谢小伙伴们的关注!
你的点赞、评论、关注、收藏是对博主的最大鼓励!
持续更新JavaSE学习笔记!欢迎订阅专栏!