A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 老衲玩IT 中级黑马   /  2013-8-27 08:11  /  822 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package com.itheima;
  2. /**
  3. *红灯下一个是黄灯,绿灯下一个是黄灯,如果黄灯前一个是红灯则下一个是绿灯,反之,前一个是绿灯则下一个是红灯
  4. * @author 老衲玩IT
  5. *
  6. */
  7. public class Test2 {
  8.         public static void main(String[] args) {
  9.                 TraLamp lamp=TraLamp.RED;
  10.                 while (true) {
  11.                         System.out.println(lamp+"...");
  12.                         try {
  13.                                 //根据交通灯的持续时间休眠,然后启动下一个灯
  14.                                 Thread.sleep(lamp.time*100);
  15.                                 lamp=lamp.nextLamp();
  16.                         } catch (InterruptedException e) {
  17.                                 // TODO Auto-generated catch block
  18.                                 e.printStackTrace();
  19.                         }
  20.                 }
  21.         }
  22.         //定义交通灯枚举
  23.         public enum TraLamp{
  24.                 RED(30) {
  25.                         @Override
  26.                         TraLamp nextLamp() {
  27.                                 preLamp=RED;
  28.                                 return YELLOW;
  29.                         }
  30.                 },GREEN(45) {
  31.                         @Override
  32.                         TraLamp nextLamp() {
  33.                                 preLamp=GREEN;
  34.                                 return YELLOW;
  35.                         }
  36.                 },
  37.                 YELLOW(5) {
  38.                         @Override
  39.                         TraLamp nextLamp() {
  40.                                 if (preLamp==RED) {
  41.                                         preLamp=YELLOW;
  42.                                         return GREEN;
  43.                                 }else {
  44.                                         preLamp=YELLOW;
  45.                                         return RED;
  46.                                 }
  47.                                
  48.                         }
  49.                 };       
  50.                 //交通灯的持续时间
  51.                 private int time;
  52.                 //上一次亮的灯
  53.                 static private TraLamp preLamp;
  54.                 private TraLamp(int time) {
  55.                         this.time=time;
  56.                 }
  57.                 abstract TraLamp nextLamp();
  58.         }
  59. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张智文 + 1

查看全部评分

您需要登录后才可以回帖 登录 | 加入黑马