• Java

Java基础--枚举Enum

Java中的枚举是一种特殊的类,可以将一组固定常量的集合组成一种类型,使用方便且类型安全。使用enum关键字定义。

enum类型父类为Enum,通过Enum.class可见Enum为抽象类,实现了Comparable和Serializable接口。

私有属性name表示enum值的名称,可通过name()函数和toString()方法访问,可使用valueOf(String)将enum值的名字转变成enum值。

私有属性ordinal表示enum值定义时的顺序,可通过ordinal()函数访问,compareTo()方法按照ordinal来比较大小。

外界不可访问Enum的构造器,故它是实例受控的。

enum值不可被clone,保证单例,clone方法final,不可被子类重写。

enum值不可被反序列化,保证单例。

enum类型允许添加任意方法和域,可实现任意接口,可以包含内部类。

public enum MyEnum {

    ONE(1){public void print(){System.out.println(this.toString());}},

    TWO(2){public void print(){System.out.println(this.ordinal());}},

    THREE(3),

    FORE(4);

    private int value;

    public String desc;

    MyEnum(int a){
        System.out.println(super.name());
        value = a;
    }

    public void print(){
        System.out.println(this.value);
    }

    public static void main(String[] args) {

        MyEnum.FORE.value=123;

        MyEnum.FORE.print();

        MyEnum a  =MyEnum.valueOf("FORE");

    }

}

最新