枚举

实现一个枚举:

public enum TestEnums {
    test1("1", "2"),
    test2("3", "4");
    
    private String key;
    private String val;

    TestEnums(String key, String val) {
        this.key = key;
        this.val = val;
    }

    public String getKey() {
        return key;
    }

    public String getVal() {
        return val;
    }
}

创建一个枚举的方式很奇怪,不是 class 也不是 interface,而是 enum,这究竟是个什么鬼东西。。。

看了下我自己编写的枚举类的继承关系,好家伙,原来也是继承自一个 Enum 抽象类。之所以那样创建,是为了方便吧。的确不用显式继承 Enum 了,而且枚举类内部的枚举写法也很简洁,就像 interface 不用显式的标注方法为 public abstract 一样,没有道理,就是规定~

继承关系

那到底什么是枚举啊?

An enumeration is a complete, ordered listing of all the items in a collection.
一个集的枚举是列出某些有穷序列集的所有成员的程序。也就是在创建枚举类的时候就把所有的选项都列出来,使用的时候直接从里边取出即可。

以上面 TestEnums 为例,test1、test2 实际上就是 TestEnums 类型的对象,只不过简化了实例化过程和修饰符。枚举里的对象要和构造函数保持一致,如果是无参构造。构造方法是 private 隐式修饰的。

通过 TestEnums.test1.getKey() 的方式调用。

你可能感兴趣的:(枚举)