枚举的用法:
枚举用关键字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 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("---------FRIDAY在SATURDAY之前");
break;
case 1:
System.out.println("FRIDAY在SATURDAY之后-----------");
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
=============================
星期五
============================
---------FRIDAY在SATURDAY之前
============================
getDeclaringClass()class com.yuanyuan.EnumTest
ordinal()4
SUNDAY