黑马程序员_简单类实现枚举_枚举的高级应用

----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流!----------------------

WeekD.java(普通的if....else判断)

public class WeekDay {
	private WeekDay(){
		
	}
	public final static WeekDay SUN=new WeekDay();
	public final static WeekDay SAT=new WeekDay();
	public final static WeekDay FN=new WeekDay();
	public final static WeekDay THU=new WeekDay();
	public final static WeekDay WED=new WeekDay();
	public final static WeekDay TUE=new WeekDay();
	public final static WeekDay MON=new WeekDay();
	public WeekDay nextDay(){
		if(this==SUN){
			return MON;
		}else if(this==MON){
			return TUE;
		}else if(this==TUE){
			return WED;
		}else if(this==WED){
			return THU;
		}else if(this==THU){
			return FN;
		}else if(this==FN){
			return SAT;
		}else{
			return SUN;
		}
	}
	public String toString(){
		if(this==SUN){
			return "星期日";
		}else if(this==SAT){
			return "星期六";
		}else if(this==FN){
			return "星期五";
		}else if(this==THU){
			return "星期四";
		}else if(this==WED){
			return "星期三";
		}else if(this==TUE){
			return "星期二";
		}else{
			return "星期一";
		}
	}
}
AbstractWeekDay1.java(抽象nextDay()方法实现)

/*
采用抽象方法定义nextDay()就将大量的if...else语句转移成了一个个独立的类
如果想在一个类中编写完各个枚举类和测试调用类,那么可以将枚举定义成调用类的内部类。
*/

public abstract class AbstractWeekDay1 {
	private AbstractWeekDay1(){
		
	}
/*
为了避免写
	if(this==SUN){
		return MON;
	}else{
		return SUN;
	}
	就采用覆写抽象方法nextDay()
*/
	public final static AbstractWeekDay1 SUN=new AbstractWeekDay1(){
		public AbstractWeekDay1 nextDay(){
			return SAT;
		}
	};
	public final static AbstractWeekDay1 SAT=new AbstractWeekDay1(){
		public AbstractWeekDay1 nextDay(){
			return SUN;
		}
	};
	public final static AbstractWeekDay1 FN=new AbstractWeekDay1(){
		public AbstractWeekDay1 nextDay(){
			return THU;
		}
	};
	public final static AbstractWeekDay1 THU=new AbstractWeekDay1(){
		public AbstractWeekDay1 nextDay(){
			return WED;
		}
	};
	public final static AbstractWeekDay1 WED=new AbstractWeekDay1(){
		public AbstractWeekDay1 nextDay(){
			return TUE;
		}
	};
	public final static AbstractWeekDay1 TUE=new AbstractWeekDay1(){
		public AbstractWeekDay1 nextDay(){
			return MON;
		}
	};
	public final static AbstractWeekDay1 MON=new AbstractWeekDay1(){
		public AbstractWeekDay1 nextDay(){
			return SUN;
		}
	};
	public abstract AbstractWeekDay1 nextDay();
	public String toString(){
		if(this==SUN){
			return "星期日";
		}else if(this==SAT){
			return "星期六";
		}else if(this==FN){
			return "星期五";
		}else if(this==THU){
			return "星期四";
		}else if(this==WED){
			return "星期三";
		}else if(this==TUE){
			return "星期二";
		}else{
			return "星期一";
		}
	}
	
}

测试用的EnumTest.java

public class EnumTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(AbstractWeekDay1.SUN.nextDay());
	}
	

}


----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流!----------------------



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值