枚举

enum 的全程事 Enumeration 是jdk1.5引进的

被enum 修饰的数据类型就是枚举类型:

1
enum Test { TEST0, TEST1, TEST2 }

如果枚举不添加任何方法,枚举值默认为从0开始的递增数值,ru上面的: TEST0:0, TEST1:1,TEST2:2

枚举的好处:可以将常量组织起来,便于管理
应用场景:状态码:错误码

枚举的本质

枚举的本质是一个类,受限制的类

创建enum是,编译器会自动为你生成一个相关的类,这个类继承 java.lang.Enum

b编译过后其实是

1
2
public abstract class Enum<E extends Enum<E>>
implements Comparable<E>, Serializable { ... }

是一个抽象类,并且继承了Comparable以及Serializable,也就是标记了序列化

而且枚举可以添加自己的方法、变量,但是不能为枚举常量用 “=”赋值,但不能继承其他类,因为已经继承了Enum类,也不能被继承。

枚举可以实现接口,像上面就是内部实现了两个接口,我们也可以自己实现其他接口

枚举添加方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

public enum TestEnum {

//此处调用额其实就是下面写的构造函数
TEST(22),
TEST1(33),
TEST2(44),
TEST3(55);


private TestEnum(int num) {

}

}