zoukankan      html  css  js  c++  java
  • JDK5新特性_5.交通灯案例与枚举的总结

    使用枚举实现交通灯案例:

    /**
     * 枚举总结案例:交通灯
     * 
     * @author linguoren
     *
     */
    public class T5_EnumResult {
    
        public static void main(String[] args) {
            System.out.println(TrafficLamp.GREEN_LAMP);
            System.out.println("绿灯下一个灯:" + TrafficLamp.GREEN_LAMP.nextLamp());
            System.out.println("黄灯下一个灯:" + TrafficLamp.YELLOW_LAMP.nextLamp());
    
        }
    
        public enum TrafficLamp {
            RED_LAMP(30) {
                public TrafficLamp nextLamp() {
                    return GREEN_LAMP;
                }
    
                @Override
                public String toString() {
                    return "红灯,时长为:" + this.time;
                }
            },
            GREEN_LAMP(45) {
    
                @Override
                public TrafficLamp nextLamp() {
                    return YELLOW_LAMP;
                }
    
                @Override
                public String toString() {
                    return "绿灯,时长为:" + this.time;
                }
            },
    
            YELLOW_LAMP(10) {
                @Override
                public TrafficLamp nextLamp() {
                    return RED_LAMP;
                }
    
                @Override
                public String toString() {
                    return "黄灯,时长为:" + this.time;
                }
    
            };// 红绿蓝三种灯
    
            /**
             * 
             * @return 下一个灯的对象
             */
            public abstract TrafficLamp nextLamp();
    
            int time;
    
            TrafficLamp(int time) {
                this.time = time;
            }
    
        }
    }

    控制台结果: 

      绿灯,时长为:45
      绿灯下一个灯:黄灯,时长为:10
      黄灯下一个灯:红灯,时长为:30

    这个案例包含了枚举最常见的

    这个案例包含了枚举最常见的用法,枚举我们可以把它看成一个类,一个特殊的类,该类的对象在类中创建而不能在外面创建(构造器被private了)

    枚举是天然的单例,如果要实现单例模式,可以考虑使用枚举。

  • 相关阅读:
    linux 计划任务
    linux 进程管理
    PHP中global与$GLOBALS['']的区别
    php预定义变量
    linux 强制终止进程命令
    mysql取某表中数据的随机的方法
    mysql 连接 选库 查询
    Python 的异步 IO:Asyncio 简介
    并发和并行的区别
    asyncio模块中的Future和Task
  • 原文地址:https://www.cnblogs.com/dingjm01/p/8316814.html
Copyright © 2011-2022 走看看