枚举的使用
2017-06-09 15:32
99 查看
枚举的用法:
枚举用关键字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)
*/
4000
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 (EnumTest
e : 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
枚举用关键字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)
*/
4000
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 (EnumTest
e : 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
相关文章推荐
- AddressFamily 枚举-----指定 Socket 类的实例可以使用的寻址方案
- Java中使用枚举
- 按位枚举(flags)的使用
- ATL ActiveX 控件的方法或事件中使用枚举常量 (补遗)
- 谈谈JS中“枚举”的使用
- 枚举的简单使用
- 如何使用枚举的组合值
- 使用 ToolHelp32 库枚举进程
- 集合已修改;枚举操作可能无法执行。使用foreach 循环删除DataRow的时候的问题! 该死的AcceptChanges() Row.elete() Remove(Row)使用不同。
- 整理:J2SE5枚举使用范例
- 使用SELECT-OPTIONS存放分类、枚举等内容,提高程序的可定制性。
- WIN32编程 -- 通过使用SetupDi 调用函数枚举硬件设备
- 枚举的使用
- 使用枚举
- .NET中Flags枚举的使用
- 使用Managed DirectX编写游戏----理解sample framework 之枚举设备
- 使用IShellFolder::EnumObjects()不能正确枚举虚目录“我的电脑”下的对象,为什么?
- 让C++和Python使用同一个枚举
- 使用VisualTreeHelper.GetDrawing(Visual v)枚举所有Visual内容的对象
- 使用特性和反射输出枚举类型各项列表,并可以自定义显示文字