黑马程序员技术交流社区
标题: 关于枚举的调用 [打印本页]
作者: 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 |