Java枚举使用详解

java

一、枚举的概念

枚举:在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是特定类型对象的计数。

语法:需要使用enum关键字,在java.lang.enum类(抽象)的子类。

enum EnumTest1 {

ONE, TWO, THREE, FOUR, FIVE

}

枚举类型的每一个值都将映射到protected Enum(String name, int ordinal)构造函数中,然后每个值的名称都会被转换成一个字符串。

EnumTest1 etSimple = EnumTest1.ONE;

switch(etSimple) {

case ONE:

System.out.println(etSimple.toString());

break;

case TWO:

System.out.println(etSimple.toString());

break;

case THREE:

System.out.println(etSimple.toString());

break;

case FOUR:

System.out.println(etSimple.toString());

break;

case FIVE:

System.out.println(etSimple.toString());

break;

// 如果所有的枚举值都有,那么可以省略default

//default:

// System.out.println(etSimple.toString());

// break;

}

 

二、自定义属性和方法

enum在Java中是以class的形式被编译器翻译的

// 使用javap EnumTest解析代码得到以下代码
final class EnumTest extends java.lang.Enum<EnumTest> {

public static final EnumTest ONE;

public static final EnumTest TWO;

public static EnumTest[] values();

public static EnumTest valueOf(java.lang.String);

static {};

}

 

这就说明enum本质上是一个类,具有类的部分特性。但enum本身又不是类,enum不能被继承或者继承其他的枚举(java.lang.Enum是抽象类),构造函数只能是private类型(否则编译器会报错)。

既然是一个类,那我们可以为类添加方法和属性

enum EnumTest {

MON(1, "星期一"), TUE(2, "星期二"), WED(3, "星期三"), THU(4, "星期四"), FRI(5, "星期五"), SAT(6, "星期六"), SUN(7, "星期日");

// private 可以省略,不能是其他的控制符

private EnumTest(int value, String text) {

this.value = value;

this.valueString = text;

}

// 属性

int value;

String valueString;


  // 自定义的方法

void testMethod() {

System.out.println("这是一个枚举类型中的方法!!!!");

}

}

EnumTest et = EnumTest.ONE;
System.out.println(et.valueString);

 

三、常用的枚举方法

int compareTo(E o)// 比较此枚举对象与对象 o 的顺序,同一类型的枚举值
Class<E> getDeclaringClass() // 返回与此枚举常量的枚举类型相对应的Class对象
String name()// 返回枚举常量的名字
String toString()// 返回枚举常量的名称
static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)// 返回指定类型的枚举常量

 

 

 

 

 

---恢复内容结束---

以上是 Java枚举使用详解 的全部内容, 来源链接: utcz.com/z/394951.html

回到顶部