枚举的使用

来源:互联网 发布:淘宝购物车营销 编辑:程序博客网 时间:2024/06/05 20:49

枚举的用法:

枚举用关键字enum来定义,一般用于定义常量。

构造方法:

Enum(String name, int ordinal) 默认访问,程序编写者无法访问,它给每一个枚举常量都定义了一个顺序,默认从0开始。

常用方法摘要:

1.compareTo(E o) 
   比较此枚举与指定对象的顺序。

2. equals(Object other) 

   当指定对象等于此枚举常量时,返回 true。

3.getDeclaringClass() 
    返回与此枚举常量的枚举类型相对应的 Class 对象。

4.name() 
    返回此枚举常量的名称,在其枚举声明中对其进行声明。

5.toString() 
    返回枚举常量的名称,它包含在声明中。

6.ordinal() 
   返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为0)。

7.valueOf(Class<T> enumType,String name) 
   返回带指定名称的指定枚举类型的枚举常量。

Demo:

创建一个枚举:

/**

 * 枚举常量,默认调用枚举的构造方法  newEnum<EnumTest>(MONDAY,0)

 */

public enum EnumTest {

MONDAY,

TUESDAY,

WEDNESDAY,

THURSDAY,

FRIDAY,

SATURDAY,

SUNDAY;

public static EnumTest getDay(Stringday){

return EnumTest.valueOf(day.toUpperCase());

}

}

测试:

public class Test1 {

public static void main(String[]args) {

//name和toString结果是一样的

for (EnumTeste : EnumTest.values()) {

//System.out.println(e.name());

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

}

System.out.println("=============================");

EnumTest t = EnumTest.FRIDAY;

switch(t){

case MONDAY:

System.out.println("星期一");

break;

case TUESDAY:

System.out.println("星期二");

break;

case FRIDAY:

System.out.println("星期五");

break;

default:

System.out.println(t);

break;

}

System.out.println("============================");

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

switch(t.compareTo(EnumTest.SATURDAY)){

case -1:

System.out.println("---------FRIDAYSATURDAY之前");

break;

case 1:

System.out.println("FRIDAYSATURDAY之后-----------");

break;

default:

System.out.println("相同==========");

break;

System.out.println("============================");

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

System.out.println("getDeclaringClass()"+t.getDeclaringClass());

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

System.out.println("ordinal()"+t.ordinal());

EnumTest day = EnumTest.getDay("sunday");

System.out.println(day);

}

}

运行结果:

MONDAY

TUESDAY

WEDNESDAY

THURSDAY

FRIDAY

SATURDAY

SUNDAY

=============================

星期五

============================

---------FRIDAYSATURDAY之前

============================

getDeclaringClass()class com.yuanyuan.EnumTest

ordinal()4

SUNDAY