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了)

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

  • 相关阅读:
    如何监控Android应用的网络性能
    进程、线程和协程的区别
    微服务
    码农和规矩
    Java才是世界上最好的语言,Java在高频交易中替代C++
    微服务
    int.Parse()与int.TryParse()
    Json的序列化和反序列化
    .NET 垃圾回收与内存泄漏
    ASP.NET(C#)连接数据库和操作数据库
  • 原文地址:https://www.cnblogs.com/dingjm01/p/8316814.html
Copyright © 2011-2022 走看看