Java中的枚举是一种特殊的类,可以将一组固定常量的集合组成一种类型,使用方便且类型安全。使用enum关键字定义。
enum类型父类为Enum,通过Enum.class可见Enum为抽象类,实现了Comparable
私有属性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");
}
}
- 作者:luangeng
- 主页:https://wawazhua.cn
- 本文出处:https://wawazhua.cn/post/java/basic/java-enum/
- 版权声明:禁止转载-非商用-非衍生