1.1 认识枚举
枚举是一种特殊的类,它的格式是:
public enum 枚举类名{
枚举项1,枚举项2,枚举项3;
}
其实枚举项就表示枚举类的对象,只是这些对象在定义枚举类时就预先写好了,以后就只能用这几个固定的对象。
定义一个枚举类,在枚举类中定义三个枚举项X, Y, Z
public enum A{
X,Y,Z;
}
想要获取枚举类中的枚举项,只需要用类名调用就可以了
public class Test{
public static void main(String[] args){
//获取枚举A类的,枚举项
A a1 = A.X;
A a2 = A.Y;
A a3 = A.Z;
}
}
下面来验证一下枚举项实际上是枚举类的对象,可以通过反编译来验证 ,命令行命令:
javap A.class
可以看到,枚举类A是用class定义的,说明枚举确实是一个类,而且X,Y,Z都是A类的对象;而且每一个枚举项都是被public static final
修饰,所以被可以类名调用,而且不能更改。
小demo:
既然枚举是一个类的话,我们能不能在枚举类中定义构造器、成员变量、成员方法呢?答案是可以的 。但是一般不写,如果你真要这么干的话,到不如直接写普通类来的直接。
1.2 枚举的应用场景
枚举一般表示一组信息,然后作为参数进行传输。
来看一个案例。比如我们现在有这么一个应用,用户进入应用时,需要让用户选择是女生、还是男生,然后系统会根据用户选择的是男生,还是女生推荐不同的信息给用户观看。
常规写法:
枚举写法:
最终再总结一下枚举的应用场景:枚举一般表示几个固定的值,然后作为参数进行传输。