---------------------- android培训、java培训、期待与您交流! ----------------------
java中本来是没有枚举的,应为当初java发布的时候就宣称去掉C中没有用的东西,但是随着技术的发展,枚举也再一次的让java得到了肯定,所以在jdk1.5发布的时候就将枚举列入到java的阵营中。
那么枚举到底是怎样子用的呢??枚举的本意就是要让程序员遵循一定的规范,比如我们在定义星期的时候,我们每一个人的定义方式不一样,就可能在编程的时候出现了差异,有些人喜欢把星期天定义为1,但是有些人又喜欢定义为7,那么我们该如何做呢???我们先用普通类的方式来定义一下代码如下:
class WeekDay
{
private WeekDay(){}
public final static WeekDay SUN = new WeekDay();
public final static WeekDay MON = new WeekDay();
}
我们在用的时候,我们只能是通过WeekDay中的两个常量来赋值,而不能有其他的值,这就是我们模拟出来的枚举的。
为什么要用枚举呢??枚举就是要让某个类型变量的取值只能为若干个固定值中的一个,否则编译器就会报错,枚举也可以让编译器在编译的时候可以控制程序中填写的非法值。但是我们自己编写的普通类根本就无法做得到的。
通过上面的例子我们可以清楚的发现普通类在实现枚举是有三点:
1.私有话构造方法,是为了不让别人创建出我们的模拟的类,你要用可以 但是不能创建。这里就有点像单例模式。
2.每一个元素分别用一个公有的静态成员表示。
3.可以有若干个共有方法或抽象方法。
在实际的开发中用枚举的代码:
class EnumTest
{
public enum WeekDay
{
SUN,MON,TUE,WED,THI,FRI,SAT
}
public enum TrafficLamp
{
RED
{
public TrafficLamp nextLamp()
{
return GREEN;
}
},
GREEN
{
public TrafficLamp nextLamp()
{
return YELLOW;
}
},
YELLOW
{
public TrafficLamp nextLamp()
{
return RED;
}
};
public abstract TrafficLamp nextLamp();
}
}
枚举是可以有构造方法的。枚举还有几个比较常见的方法如ordinal,valueOf等方法。
---------------------android培训、java培训、期待与您交流! ----------------------
详细请查看:
http://edu.csdn.net/heima