---------------------- android培训、java培训、期待与您交流! ----------------------
枚举(二)
关于枚举的相关概念,我们上一篇已经讨论过。前面的而一个例子是通过抽象方法来实现的。我们都知道抽象方法只能定义,如果要实现只能被继承或被子类实现。前面的例子,我们是通过内部类来完成。下面我们借助一个例子,用一个普通方法来实现枚举之间值得转换。
例二:要求定义一个枚举类,实现星期的转化,并实现get 、set方法,用于设置转换时间
//实现如下:
package javaEnum;
/**
* 枚举 例二
* 本程序没有采用抽象方法,而是采用普通方法来实现的,实现的原理基本相似。用到CASE方法
*
* */
public enum Weekday2 {
SUN("星期日",3),MON("星期一",3),TUE("星期二",3),WED("星期三",3),THU("星期四",3),FRI("星期五",3),SAT("星期六",3);
private String name;
private long time;
private Weekday2(String name,long time){
this.name=name;
this.time=time;
}
public Weekday2 nextDay(){
switch(this){
case SUN:
System.out.println("周日转向周一,等待时间为"+getTime()+"秒");
getStop();
return MON;
case MON:
System.out.println("周一转向周二,等待时间为"+getTime()+"秒");
getStop();
return TUE;
case TUE:
System.out.println("周二转向周三,等待时间为"+getTime()+"秒");
getStop();
return WED;
case WED:
System.out.println("周三转向周四,等待时间为"+getTime()+"秒");
getStop();
return THU;
case THU:
System.out.println("周四转向周五,等待时间为"+getTime()+"秒");
getStop();
return FRI;
case FRI:
System.out.println("周五转向周六,等待时间为"+getTime()+"秒");
getStop();
return SAT;
case SAT:
System.out.println("周六转向周日,等待时间为"+getTime()+"秒");
getStop();
return SUN;
default:
return null;
}
}
public String getName() {
return name;
}
public void setTime(long time) {
this.time = time;
}
public long getTime() {
return time;
}
public void getStop() {
try{
Thread.sleep(1000*time);
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
//测试类
package javaEnum;
public class TestWeekday2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//遍历weekday
for(Weekday2 w:Weekday2.values())
System.out.println("find value:"+ w);
//测试
Weekday2 we01=Weekday2.MON;
System.out.println(we01.nextDay());
System.out.println(we01.nextDay().getName());
Weekday2 we02=Weekday2.SUN;
System.out.println(we02.nextDay());
System.out.println(we02.getName());
//周期循环
Weekday2 w01=Weekday2.SUN;
Weekday2 w02=Weekday2.MON;
Weekday2 w03=Weekday2.TUE;
Weekday2 w04=Weekday2.WED;
Weekday2 w05=Weekday2.THU;
Weekday2 w06=Weekday2.FRI;
Weekday2 w07=Weekday2.SAT;
//设定时间
w01.setTime(3);
w02.setTime(1);
w03.setTime(3);
w04.setTime(1);
w05.setTime(3);
w06.setTime(1);
w07.setTime(3);
//实现两次循环
for(int i=0;i<2;i++)
{
w01.nextDay();
w02.nextDay();
w03.nextDay();
w04.nextDay();
w05.nextDay();
w06.nextDay();
w07.nextDay();
}
}
}
---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.youkuaiyun.com/heima