用枚举来实现一个交通灯
2014-03-16 17:51
274 查看
package com.foresee.test; /** * 利用枚举来定义红黄绿灯 * * @author qinyujun */ public class EnumTest { public static void main(String[] args) { try{ while(true){ System.out.println("当前灯:"+TrafficLamp.GREEN); Thread.currentThread().sleep(TrafficLamp.GREEN.getTime()); System.out.println("当前灯:"+TrafficLamp.GREEN.nextLamp()); Thread.currentThread().sleep(TrafficLamp.GREEN.nextLamp().getTime()); System.out.println("当前灯:"+TrafficLamp.GREEN.nextLamp().nextLamp()); Thread.currentThread().sleep(TrafficLamp.GREEN.nextLamp().nextLamp().getTime()); } }catch(Exception e){ e.printStackTrace(); } } public enum TrafficLamp { GREEN(5000){ public TrafficLamp nextLamp(){ return YELLOW; } }, YELLOW(2000){ public TrafficLamp nextLamp(){ return RED; } }, RED(5000){ public TrafficLamp nextLamp(){ return GREEN; } }; //获取下一个灯,在枚举元素中实现 public abstract TrafficLamp nextLamp(); //灯亮的时间 private long time; private TrafficLamp(long time) { this.time = time; } public long getTime(){ return this.time; } } }
在看张孝祥教学视频里学到枚举类型,这个不常用的特性,今天就学着做了一个交通灯。
运行效果:
先是绿灯,等过了5秒后,变为黄灯,过了2秒变为红灯,再过5秒变绿灯,之后这样一直循环下去
相关文章推荐
- 嘿牛程序员__成都传智博客__枚举的一个带参构造函数的实现——以交通灯的转换为例
- 用友uap nc65 如何实现一个下拉框(枚举类型实体)
- 嘿牛程序员__成都传智博客__枚举的一个带有case的普通实现——以星期的转换为例
- 让枚举实现一个接口
- 1、使用快速枚举语法实现: //构建一个NSSMutableArray数组,用@”1”至@”100”进行填充。以NSLog依次打印数组中的内容,将此数组分为奇偶两数组,再打印两新数组中的元素。
- 题目:定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法, * 例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯
- 通过枚举控制比较TreeSet内容排序(实现接口comparator);随机生成一个汉字
- 黑马入学测试题:/* * 1、 定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法,例如:红灯获取下一个灯是绿灯, * 绿灯获取下一个灯是黄灯。 * * 分析:
- 定义一个交通灯枚举
- C语言枚举进程,实现一个简单的内存补丁
- 设计、实现一个全国大城市间的交通咨询程序,为旅客提供三种最优决策方案:(1)飞行时间最短(2)总用时最短(3)费用最小(4)中转次数最少。
- GWT 2.0 UiBinder 实现一个简单的分页.实现简单的CRUD.
- C#实现一次只能打开一个客户端以及关闭自动重启的问题
- iframe窗口高度自适应的又一个巧妙实现思路
- php 实现同一个账号同时只能一个人登录
- 一步步实现WebServer中间件——自己实现一个线程池
- 一个简单的AJAX实现
- 通过HashMap和ArrayList容器实现一个Key对多个值
- 一个分解字符串函数strtok 实现(不使用<string.h>)
- 10.1-7 两个队列实现一个栈