enum 枚举

1,定义:枚举是一个具有特定值的类型,对于用户来说只能任取其一,对于面向对象来说时是一个类的对象已经创建好,用户不能新生枚举对象,只能选择一个已经生成好的对象。

2,枚举本质上也是一个类,一个final类,类不能被继承,且构造方法必须私有,一个枚举值是一个公共静态常量,也是这个类的一个对象。

 

在没有出现enum时的自定义枚举类:

1,

View Code
public class Season {
public static final int SPRING=0;
public static final int SUMMER=1;
public static final int AUTUMN=2;
public static final int WINTER=3;
}

这样写时在调用的时候

View Code
public void show(int t){
if(t==Season.SPRING){
...
}
}

传递的传说可以是0,1,2,3也可以是别的数值,而程序没有匹配的值,也不会报错,数据也不安全。

2,接着出现了一种类型安全的枚举类:

View Code
public final class Season {
public static final Season SPRING = new Season();
public static final Season SUMMER = new Season();
public static final Season AUTUMN = new Season();
public static final Season WINTER = new Season();

private Season() {
}
}

用private构造方法,不让用户自己new出对象。

3,枚举其实就是类型安全的枚举类,可以有属性,方法。

View Code
public enum Season {
SPRING, SUMMER, AUTUMN, WINTER,
}

枚举继承自java.lang.Enum,枚举值相当于Season类型的静态常量。

4

View Code
public enum Season {
SPRING("春"), SUMMER("夏"), AUTUMN("秋"), WINTER("冬");
private String name;

Season(String name) {
this.name = name;
}

public String getName() {
return this.name;
}
}

Season s=Season.SPRING;由于不能new,只能调用类内静态常量。





posted @ 2011-11-05 21:41  一思  阅读(254)  评论(0编辑  收藏  举报