黑马程序员技术交流社区

标题: 关于枚举的调用 [打印本页]

作者: zl78365336    时间: 2013-11-30 11:09
标题: 关于枚举的调用
本帖最后由 zl78365336 于 2013-12-1 09:17 编辑

请问各位在主函数中如何调用这个枚举?
-----------------------------------
public enum Lamp {
     RED("GREEN"),GREEN("YELLOW"),YELLOW("RED");
     privateString next;
     privateLamp(String next){
           this.next =next;
      }
     public Lamp nextLamp(){
         returnLamp.valueOf(next);
     }
}


作者: 25343215    时间: 2013-11-30 11:15
在主函数里,通过类名.枚举的方式就可以使用。
每一个枚举成员就相当于雨一个对象。例如: RED("GREEN") == public final static Lamp RED=new Lamp("GREEN");
也就是说主函数使用调用枚举,就相当于创建一个枚举类的对象。

作者: Jim-剣◆﹏    时间: 2013-11-30 11:20
其实枚举值就是一个特殊的匿名枚举对象(当你调用就初始化,就是对象),你得明白,RED在Lamp中就是继承或实现了Lamp的一个匿名内部类
说它特殊,特殊之处在于,它的写法和一般的匿名内部类有差别,但是实质上这RED是一个匿名内部类
你要在主函数中用:
Lamp.RED就可以了,你这样就相当于创初始化了RED
张孝祥老师说这个的时候,专门说了枚举的一般类的实现形式,再讲怎么用枚举类实现,你多看两遍找出两者的不同,会有所理解的
作者: zl78365336    时间: 2013-11-30 11:38
        主函数中写下以下代码,为什么会提示我有错误存在,是否要继续
但是,继续运行结果是对的,百思不得其解啊?
                   String s1 = TrafficLamp.RED.nextLamp().toString();
                String s2 = TrafficLamp.GREEN.nextLamp().toString();
                String s3 = TrafficLamp.YELLOW.nextLamp().toString();
                System.out.println(s1);
                System.out.println(s2);
                System.out.println(s3);




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