枚举(Enums

JDK1.5加入了一个全新的类型的“类”-- 枚举类型。为此JDK1.5引入了一个新关键字enum

定义枚举类型时本质上就是定义一个类别,只不过很多细节由编译器帮您完成了,所以某种程度上,enum关键字的作用就像是classinterface

当您使用“enum”定义枚举类型时,实质上您定义出来的类型继承自java.lang.Enum类型,而每个枚举的成员其实就是您定义的枚举类型的一个实例(Instance),它们都被预设为final,所以您无法改变它们,它们也是static成员,所以您可以通过类型名称直接使用它们,当然最重要的它们都是公开的public。换句话说,当定义一个枚举类型后,在编译时刻就能确定该枚举类型有几个实例,分别是什么。在运行期间我们无法再使用该枚举类型创建新的实例了,这些实例在编译期间就已经完全确定下来了。

public enum Coin {

    penny("PENNY"), nickel("NICKEL"), dime("DIME"), quarter("QUARTER"); 
    
    private String value;
    
    Coin(String value){
        this.value = value;
    }
    
    public String getValue(){
        return value;
    }
    
    public static void main(String[] args){
        Coin coin = Coin.nickel;
        System.out.println(coin.getValue());
    }
}

枚举的构造函数定义 Coin(String value)和penny("PENNY")是对应的;

枚举中也可以定义变量、方法,还可以定义main方法。