Java基础--枚举Enum

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

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

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

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

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

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

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

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

 

例子

----------------

package demos.myenum;

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");
        
    }

}

 

----------------

 

posted @ 2016-08-16 23:35  dahuandahuan  阅读(174)  评论(0)    收藏  举报