对Java中枚举类型Enum的理解

Java 中的枚举,是和类(class),接口(interface)平级 的概念,在用intellij idea 创建class文件的时候,可以看见:


对Java中枚举类型Enum的理解_第1张图片


换句话说,我们可以把枚举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

对Java中枚举类型Enum的理解_第2张图片


既然枚举中的元素是枚举类型的静态常量对象,那么我们也能够想到,可以利用构造函数为其赋值。


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());

    }
}


返回值:

吃
喝
玩
乐



你可能感兴趣的:(对Java中枚举类型Enum的理解)