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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ^梦圉^ 中级黑马   /  2016-1-9 11:50  /  2299 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
本人对枚举理解不是很好,请求解答,并用交通灯的问题举例说明。

最佳答案

查看完整内容

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 Traff ...

2 个回复

倒序浏览
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
回复 使用道具 举报
又一个送分题,可是我不会
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马