java用普通类如何实现枚举功能

用普通类如何实现枚举功能,定义一个Weekday的类来模拟枚举功能。
    1、私有的构造方法。
    2、每个元素分别用一个公有的静态成员变量表示。
     可以有若干公有方法或抽象方法。采用抽象方法定义nextDay就将大量的if.else语句转移成了一个个独立的类

Eg:package july78javaEnhance;

//很好的一道题目。

enum TrafficLamp{

    /**

     * 对于这道题目而言,使用的其实是匿名对象内部类!

     * 枚举最简单的创建对象方法:RED,YELLOW,GREEN

     * 对于普通的类而言,创建对象:Person p = new Person();

     *

     */

   

    RED(30){

        @Override

        public TrafficLamp nextLamp() {

            return YELLOW;

        }

       

    },

   

    YELLOW(40){

        @Override

        public TrafficLamp nextLamp() {

            return GREEN;

        }

       

    },

   

    GREEN(45){

        @Override

        public TrafficLamp nextLamp() {

            return RED;

        }

       

    };

    public abstract TrafficLamp nextLamp();

    private int time;

    private TrafficLamp(int time){

        this.time = time;

    }

    public int getTime() {

        return time;

    }

    public void setTime(int time) {

        this.time = time;

    }

   

}

public class EnumDemo4 {

    public static void main(String[] args) {

        System.out.println(TrafficLamp.RED.nextLamp());

        System.out.println(TrafficLamp.RED.nextLamp().getTime());

       

    }

}

原文地址:https://www.cnblogs.com/fanweisheng/p/11137704.html