黑马程序 枚举

------- android培训java培训、期待与您交流! ----------

枚举:

       枚举相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法。
枚举元素必须位于枚举体中的最开始部分,枚举元素列表的最后要有分号与其他成员分隔。
把枚举重的成员方法或变量等放在枚举元素的前面,编译报错

带构造方法的枚举:

构造方法必须定义成私有的
如果有多个构造方法,该如何选择哪个构造方法呢?--参数
枚举元素RED和RED()的效果一样,都是调用默认的构造方法

枚举只有一个成员(元素)时,就可以作为一种单例的实现方式。 
在枚举当中声明的所有变量默认都是public static final修饰,但是前面不可以显示的加这些修饰符。

TrafficLamp枚举:

public class EnumTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		TrafficLamp lamp= TrafficLamp.GREEN;
		TrafficLamp lamp1= TrafficLamp.RED;
		System.out.println(lamp.name());//GREEN
		System.out.println(lamp.ordinal());//1
		System.out.println(TrafficLamp.valueOf("RED"));//RED
		TrafficLamp[] lamps = TrafficLamp.values (); //values() 方法返回的是枚举类所有的元素集合
		for  (TrafficLamp lamp2 : lamps){
		System. out .print(lamp2.name());//REDGREENYELLOW
		}

	}

	public enum TrafficLamp{//定义枚举TrafficLamp
		RED(30){
			public TrafficLamp nextLamp(){
				return GREEN;
		}//每个元素分别由枚举的子类生成实例对象,子类采用类似内部类的方式进行定义
			
			},
		GREEN(30){
				public TrafficLamp nextLamp(){
					return YELLOW;
				}
			
			},
		YELLOW(3){
				public TrafficLamp nextLamp(){
					return RED;
				}
			};
		public abstract TrafficLamp nextLamp();
		private int time;
		private TrafficLamp(int time){
			this.time=time;
		}
		private TrafficLamp(){};
	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值