在JDK 1.5之后,Java引入了枚举。在Java中枚举是一个特殊的类(默认继承了Enum类),一般用来表示一组常量。比如一年有四季(春夏秋冬)、一周有七天等。
public class Season {
private 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();
}
我们不使用枚举也可以完成相应的操作,将构造器设置成私有的,并在类的内部去创建好需要的实例对象以供外界获取。
使用枚举(Java中使用enum声明枚举):
public enum Season {
SPRING,SUMMER,AUTUMN,WINTER;
}
枚举的使用和普通全局常量一样:
public class Demo{
public static void main(String[] args) throws Exception {
System.out.println(Season.SPRING);
System.out.println(Season.SUMMER);
System.out.println(Season.AUTUMN);
System.out.println(Season.WINTER);
}
}
枚举类是一个特殊的类,也可以定义属性和方法:
public enum Season {
SPRING,SUMMER,AUTUMN,WINTER;
@Override
public String toString() {
return super.toString();
}
public void test(){
System.out.println("测试");
}
}
public class Demo{
public static void main(String[] args) throws Exception {
System.out.println(Season.SPRING);
System.out.println(Season.SUMMER);
System.out.println(Season.AUTUMN);
System.out.println(Season.WINTER);
Season.SPRING.test();//测试
}
}
枚举类也可以有属性:
public enum Season {
SPRING("春天"),
SUMMER("夏天"),
AUTUMN("秋天"),
WINTER("冬天");
private String SeasonName;
private Season(String seasonName) {
SeasonName = seasonName;
}
}
声明的几个常量必须放在最前面。
枚举也是类,可以实现一个或多个接口,可以声明属性方法,但是不能够继承别的类了,因为它默认继承了Enum类,而Java是不允许多继承的。