黑马程序员技术交流社区
标题:
枚举如何创建自己的实例.在内存中如何实现的?
[打印本页]
作者:
念满
时间:
2013-1-31 17:59
标题:
枚举如何创建自己的实例.在内存中如何实现的?
public enum TrafficLamp{
RED(30){
public TrafficLamp nextLamp(){
return GREEN;
}
},
GREEN(45){
public TrafficLamp nextLamp(){
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp(){
return RED;
}
};
public abstract TrafficLamp nextLamp();
private int time;
private TrafficLamp(int time){this.time=time;}
}
}
枚举如何创建自己的实例.在内存中如何实现的?
创建RED元素要用到GREEN,而创建GREEN要用到YELLOW,而创建YELLOW要用到RED,
一个元素没整完且要用到另外一个元素,内存中到底如何实现?
作者:
邝雄伟
时间:
2013-2-1 02:03
创建枚举类型要使用enum关键字,隐含了所创建的类型都是java.lang.Enum类的子类,它是抽象类。其中,枚举类型符合通用模式
Class Enum<E extends Enum<E>>
,而
E
表示枚举类型的名称。枚举类型的每一个值都将映射到
protected Enum(String name, int ordinal)
构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序。
public enum Size{
SMALL,
MEDIUM,
LARGE;
}
实际上调用了三次构造函数:
new Enum<Size>("SMALL",0);
new Enum<Size>("MEDIUM",1);
new Enum<Size>("LARGE",2);
值的名字和顺序值可以分别通过name()/toString()、ordinal()获得。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2