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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huangweicong 中级黑马   /  2016-10-20 00:48  /  939 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

定义一个交通灯枚举,包含红灯、绿灯、黄灯,
*  需要有获得下一个灯的方法,例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯。
*  
*  思路:
*          1.既然是定义一个枚举,那么就是enum类.
*          2.该枚举类中有三个元素.红,绿,黄.
*          3.拥有获取下一个灯的方法,这个方法可以返回枚举元素,什么类型?自然就是我们定义的枚举类型.
*  总结:
*          1.枚举说实在的,就是把自己的子类都放自己身上.自己的这些元素,就是
*  自己的子类对象.
*          2.子类复写父类方法.返回类型如果是枚举元素,那么就是枚举类型.
*          3.enum,才代表是枚举类.枚举中的元素要写在最开始位置.
*          4.枚举也可以说,在java中属于一个较安全的体系.对元素进行了必要的限制操作.而且是反射无法破解的.
*  思考:
*          1.枚举是一个特殊的类.之所以是特殊的,我认为它所操作的对象不是类中的方法,而是自己的一个一个子类对象元素.
*          2.枚举这个类,应该和java普通类分别看待,属于比较另类的一种.
*          3.枚举既简单也复杂,因为调用了复写,内部类,等等一些用法.还需要
*  多多揣摩.
*         
* */
public class Demo13 {
        public static void main(String[] args) {
                traffic s = traffic.RED.next(); //调用枚举元素以及方法.返回枚举元素.
                System.out.println(s);
        }
}
enum traffic
{
        RED
        {
                public traffic next()  //复写父类的抽象方法.返回还是枚举元素.
                {
                        return GRE;
                }
        },GRE
        {
                public traffic next()
                {
                        return YEL;
                }
        },YEL
        {
                public traffic next()
                {
                        return RED;
                }
        };
        public abstract traffic next(); //枚举的抽象方法,子类需要复写.
}


1 个回复

倒序浏览
gyy 中级黑马 2016-10-20 01:02:15
沙发
good,come on boy!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马