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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄敏 中级黑马   /  2012-8-24 11:32  /  1449 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public enum TrafficLamp{       //这个类里面有抽象方法,这里应该定义抽象类啊,怎么不是抽象类呢?不理解
        RED(30){
            public TrafficLamp nextLamp(){
                returnGREEN;
            }
        },
        GREEN(45){
            public TrafficLamp nextLamp(){
                returnYELLOW;
            }         
        },
        YELLOW(5){
            public TrafficLamp nextLamp(){
                returnRED;
            }         
        };
        public abstract TrafficLamp nextLamp();
        privateint time;
        privateTrafficLamp(int time){this.time = time;
}



评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1

查看全部评分

5 个回复

倒序浏览
谁能给详细解答一下,希望针对问题回答
回复 使用道具 举报
public enum TrafficLamp{       //这个类里面有抽象方法,这里应该定义抽象类啊,怎么不是抽象类呢?不理解
        RED(30){
            public TrafficLamp nextLamp(){
                returnGREEN;
            }
        },
        GREEN(45){
            public TrafficLamp nextLamp(){
                returnYELLOW;
            }         
        },
        YELLOW(5){
            public TrafficLamp nextLamp(){
                returnRED;
            }         
        };
                //这里面虽然是一个抽象的方法,依照类的习惯,那个这个类就是抽象类
                //但是你在前面定义的是枚举,里面定义的变量相当与个常量,而且这些常量
                //都现实了内部的抽象方法,好比一个工厂,我在里面创建了1,2,3,4这几个资源
                //如果你使用我,只能使用里面的1,2,3,4.没有其他的对象可言。

        public abstract TrafficLamp nextLamp();
        privateint time;
        privateTrafficLamp(int time){this.time = time;
}
你可以看看张孝祥老师的PPT,怎么写一个枚举
私有的构造方法
每个元素分别用一个公有的静态成员变量表示
可以有若干公有方法或抽象方法。采用抽象方法定义nextDay就将大量的if.else语句转移成了一个个独立的类。
回复 使用道具 举报
冯培军 发表于 2012-8-24 12:17
public enum TrafficLamp{       //这个类里面有抽象方法,这里应该定义抽象类啊,怎么不是抽象类呢?不理 ...

你回答的不是我要问的。谢谢
回复 使用道具 举报
竟然没人回答我
回复 使用道具 举报
问题也解决,查了API知道了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马