您的位置:首页 > 职场人生

嘿牛程序员__成都传智博客__枚举的一个带有case的普通实现——以星期的转换为例

2012-06-14 16:05 288 查看
---------------------- 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.csdn.net/heima
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐