黑马程序员---枚举

---------------------- 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值