java中enum枚举的使用

public abstract class WeekDay1 {

	private WeekDay1(){}
	
	public final static WeekDay1 SUN = new WeekDay1() {
		//抽象类的方法不能实现,所以只能用内部子类实现
		@Override
		public WeekDay1 nextDay() {
			// TODO Auto-generated method stub
			return MON;
		}
		
	};
	
	public final static WeekDay1 MON = new WeekDay1() {

		@Override
		public WeekDay1 nextDay() {
			// TODO Auto-generated method stub
			return SUN;
		}
		
	};
	
	public abstract WeekDay1 nextDay();
	
	/***
	 * 
	 * @author Administrator
		枚举 周一  到  周日  及带参数的构造方法
	 */
	public enum WeekDay{
		SUN(1),MON(),TUE(1,2,3,4),WED,THI,FRI,SAT;
		private WeekDay(){System.out.println("first");}
		private WeekDay(int day){System.out.println("second");}
		private WeekDay(int day,int ... args){
			System.out.println("thired");
		}
	}
	
	public static void main(String[] args) {
		System.out.println(WeekDay.SUN);
	}
	
	
	/***
	 * 枚举红绿黄灯
	 */
	public enum TrafficLamp{
		RED(30) {
			@Override
			public TrafficLamp nextLamp() {
				// TODO Auto-generated method stub
				return GREEN;
			}
		} ,
		GREEN(40) {
			@Override
			public TrafficLamp nextLamp() {
				// TODO Auto-generated method stub
				return YELLOW;
			}
		},
		YELLOW(5) {
			@Override
			public TrafficLamp nextLamp() {
				// TODO Auto-generated method stub
				return RED;
			}
		};
		public abstract TrafficLamp nextLamp();
		private int time;
		private TrafficLamp(){}
		private TrafficLamp(int time){
			this.time = time;
		}
	}
}

猜你喜欢

转载自suleeair.iteye.com/blog/2338076