黑马程序员技术交流社区

标题: 枚举的理解 [打印本页]

作者: ^梦圉^    时间: 2016-1-9 11:50
标题: 枚举的理解
本人对枚举理解不是很好,请求解答,并用交通灯的问题举例说明。

作者: dengwenqiang    时间: 2016-1-9 11:50
public class TrafficLampTest {
        public static void main(String[] args) {
                TrafficLamp tl=TrafficLamp.GREEN;
                System.out.println(tl+"\n下一个是:");
                System.out.println(tl.nextLamp());
        }
}
enum TrafficLamp {
        // 枚举项,枚举项要重写抽象方法
        RED(30) {   //定义绿灯,实现下一个灯是黄灯
                public TrafficLamp nextLamp() {
                        return GREEN;
                }
        },
        YELLOW(5) {//定义黄灯,实现下一个灯是红灯
                public TrafficLamp nextLamp() {
                        return RED;
                }
        },
        GREEN(45) {//定义红灯,实现下一个灯是绿灯
                public TrafficLamp nextLamp() {
                        return YELLOW;
                }
        };
        // 抽象方法
        public abstract TrafficLamp nextLamp();

        // 成员变量
        private int time;

        // 构造方法
        private TrafficLamp(int time) {
                this.time = time;
        }

        // 重写toString可以实现名字的显示
        public String toString() {
                String name = null;
                switch (this) {
                case GREEN:
                        name = "绿灯";
                        break;
                case RED:
                        name = "红灯";
                        break;
                case YELLOW:
                        name = "黄灯";
                        break;
                }
                return name;
        }
}

枚举可以看成是一个特殊的类,他和类用法差不多,但是注意枚举项要放在前面,枚举项分号可以省略,但是后面还有内容就不能省略,建议不要省略,枚举项要实现抽象方法,而构造方法必须要用private修饰,不写也是默认是private
作者: 怀瑾    时间: 2016-1-9 11:53
又一个送分题,可是我不会




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2