枚举的学习心得总结
枚举是1.5的新特性。在JDK1.5 之前,我们定义常量都是: public static final…… .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 public enum Color { RED, GREEN, BLANK, YELLOW }
枚举的特点有
1、枚举也是一种特殊形式的java类;
2、枚举中声明的每一个枚举值代表枚举类的一个实例对象;
3、与java中的普通类一样,在声明枚举时,也可以声明属性、方法和构造函数,但构造函数必须为私有的;
4、枚举也可以实现接口,或继承抽象类;
5、当枚举只有一个枚举值时,则可以当做单态设计模式使用。
详细例子:
publicclass EnumTest {
publicstaticvoid main(String[] args) {
TrafficLamp trafficlamp = TrafficLamp.RED//直接获得枚举的RED实例对象,不用new了。
//实例对象的各种方法演示
System.out.println(trafficlamp);
System.out.println(trafficlamp.name());
System.out.println(trafficlamp.valueOf("GREEN"));
System.out.println(trafficlamp.values().length);
}
publicenum TrafficLamp{
//枚举值(一般用大写)一定要从首行开始写,直到写完才能写其他的成员
RED(30){ //指定调用有参数的构造方法进行初始化
public TrafficLamp nextLamp(){
returnGREEN;
}
},//枚举的一个RED实例对象,覆盖了nextLamp()抽象方法
GREEN(40){
public TrafficLampnextLamp(){
returnYELLOW;
}
},//枚举的一个GREEN实例对象,覆盖了nextLamp()抽象方法
YELLOW(5){
public TrafficLampnextLamp(){
returnRED;
}
};//最后一个枚举值,后面还有其他内容用“;”结束,枚举的一个YELLOW实例对象,覆盖了nextLamp()抽象方法
public abstract TrafficLampnextLamp();//其他成员(构造方法、成员变量)要放在枚举值后面。
privateinttime;
private TrafficLamp(int time){
this.time = time;
}
}