嘿牛程序员__成都传智博客__枚举的一个带有case的普通实现——以星期的转换为例
来源:互联网 发布:网络协议分层的优缺点 编辑:程序博客网 时间:2024/06/02 13:14
---------------------- 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
- 嘿牛程序员__成都传智博客__枚举的一个带有case的普通实现——以星期的转换为例
- 嘿牛程序员__成都传智博客__枚举的一个带参构造函数的实现——以交通灯的转换为例
- 嘿牛程序员__成都传智博客__文件的拷贝:实现整个文件夹的拷贝
- 嘿牛程序员__成都传智博客__文件的拷贝:单个文件的拷贝(上)
- 嘿牛程序员__成都传智博客__文件的拷贝:单个文件的拷贝(下)
- 嘿牛程序员__成都传智博客__javascript的注册表单验证、提交问题
- 嘿牛程序员__成都传智博客__JavaScript中的复选框的全选、反选问题
- 嘿牛程序员__成都传智博客__可变参数举例
- 嘿牛程序员__成都传智博客__网络编程(上)
- 嘿牛程序员__成都传智博客__网络编程(下)
- 嘿牛程序员__成都传智博客__包装类(一)
- 嘿牛程序员__成都传智博客__包装类(二)
- 黑马程序员__枚举
- C++11__自己实现的一个swap类
- 金典——最接近的数__
- 黑马程序员__注解的学习心得
- 程序员的小节日__回文日
- 设计模式系列之一__单例模式(2)__各种实现的优缺点
- Linux设备驱动之I/O端口与I/O内存
- Android解析XML
- 正则表达式30分钟入门教程
- atoi函数
- UIImage图片转NSData
- 嘿牛程序员__成都传智博客__枚举的一个带有case的普通实现——以星期的转换为例
- Linux设备驱动之mmap设备操作
- Linux 性能监测:IO
- oracle 增加日志组,日志成员的一些命令
- GridView行内LinkButton传递值问题
- GridView行内LinkButton传递值问题
- C++ 初始化操作由 case 标签跳过
- 日期格式模式 说明
- 如何获取当前视图中成为第一响应者的组件,并取消注册