java 枚举类 int_Java枚举类

枚举其实是个特殊的 Java 类,创建枚举需用enum关键字,枚举类都是java.lang.Enum的子类,java.lang.Enum是一个抽象类,枚举类型符合通用类型模式Class Enum>,这里的 E 表示枚举类型的名称,枚举类的每个值都会映射到protected Enum(String name, int ordinal)构造函数中,每个值(如NumEnum中的ONE)的名称都被转成字符串, ordinal 表示被创建的顺序(默认是0,1,2,3...)。

枚举类enum定义如下:

enum NumEnum{

ONE,TWO,THREE,FOUR

}

实际上是调用了如下方法:

new Enum("ONE",0);

new Enum("TWO",1);

new Enum("THREE",2);

new Enum("FOUR",3);

常用方法如下:

//比较此枚举与指定对象的顺序

int compareTo(E o)

//返回与此枚举常量的枚举类型相对应的 Class 对象

Class getDeclaringClass()

//返回此枚举常量的名称

String name()

//返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)

int ordinal()

// 返回枚举常量的名称

String toString()

//返回带指定名称的指定枚举类型的枚举常量

static > T valueOf(Class enumType, String name)

NumEnum调用常用方法如下:

System.out.println(NumEnum.ONE.compareTo(NumEnum.FOUR));// -3

System.out.println(NumEnum.ONE.getDeclaringClass());//class com.jeeno.test.NumEnum

System.out.println(NumEnum.TWO.name());//TWO

System.out.println(NumEnum.THREE.ordinal());//2

System.out.println(NumEnum.THREE.toString());//THREE

System.out.println(NumEnum.ONE.valueOf("FOUR"));//FOUR

实际上enum就是一个class,只不过 Java 编译器帮我们做了语法的解析和编译而已。可以把enum看成是一个普通的class,它们都可以定义一些属性和方法,不同之处是:enum不能使用extends关键字继承其他类,因为enum已经继承了java.lang.Enum(java是单一继承)。

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页