对Java中枚举类型Enum的理解
Java 中的枚举,是和类(class),接口(interface)平级 的概念,在用intellij idea 创建class文件的时候,可以看见:
换句话说,我们可以把枚举Enum, 理解成我们创建的一个类型。
public enum TestENum { chi,he,wan,le }我们创建了一个名为TestEnum的枚举类型。那枚举中包含的成员是什么呢?
枚举中包含的成员,类似于类class 中定义的静态常量对象,类似于如下代码:
public class TestENum{ public static final TestENum chi = new TestENum(); public static final TestENum he= new TestENum(); public static final TestENum wan= new TestENum(); public static final TestENum le= new TestENum(); }
我们能看到 TestENum类型能够直接调用chi,he,wan,le这几个成员,并且这几个成员的返回类型为TestENum
既然枚举中的元素是枚举类型的静态常量对象,那么我们也能够想到,可以利用构造函数为其赋值。
public enum TestENum { chi("吃"),he("喝"),wan("玩"),le("乐"); private String s; //构造函数 TestENum(String s){ this.s = s; } String getName(){ return s; } }
我们定义了构造函数,还定义了一个方法获得TestENum类型的对象的String成员s的值。
我们就像使用普通的class类型的对象一样使用枚举类型吧。
public class Main { public static void main(String[]args){ System.out.println(TestENum.chi.getName()); System.out.println(TestENum.he.getName()); System.out.println(TestENum.wan.getName()); System.out.println(TestENum.le.getName()); } }
返回值:
吃 喝 玩 乐