定义:
枚举类是jdk5.0的新特性,一个类的对象是有限且固定的,这样的类就可以称为枚举类。比如季节,只有春夏秋冬四个季节,那么季节就可以称为枚举类。
实现方式:
1.jdk5.0之前只能在类中加上约束才能实现枚举类。
/**
* jdk5.0以前的枚举类
* @author Administrator
*
*/
public class Season {
private final String NAME;; // 季节的名字
private final String DESCRIBE; // 季节的描述
private Season(String name,String describe) //一个私有的构造方法
{
this.NAME=name;
this.DESCRIBE= describe;
}
public static final Season SPRING = new Season("春天", "春意昂然"); // 共有的静态且不可修改的变量
public static final Season SUMMER = new Season("夏天", "炎炎夏日");
public static final Season AUTOMN = new Season("秋天", "秋高气爽");
public static final Season WINTER = new Season("冬天", "白雪皑皑");
public String getNAME() { //get方法
return NAME;
}
public String getDESCRIBE() {
return DESCRIBE;
}
}
上面这个季节类只有四个对象,春夏秋冬。使用这四个对象只要
Season spring = Season.SPRING;
注意:属性要设置为终态的,构造方法要私有化。
2.jdk5.0可以是用enum关键字定义枚举类,用法和class一致。
public enum EnumSeason {
SPRING("春天","春天的花开"), //多个对象之间用逗号隔开。无参数的时候括号可以省略
SUMMER("夏天","热的要死"), //对象的声明一定要在开头
AUTUMN("秋天","秋天是用来分手的"),
WINTER("冬天","冷的要死");
private final String NAME; // 属性
private final String DESCRIBE;
private EnumSeason(String name,String describe) { //私有的构造方法
this.NAME = name;
this.DESCRIBE = describe;
}
public String getNAME() { // get方法
return NAME;
}
public String getDESCRIBE() {
return DESCRIBE;
}
}
注意:
- 对象的声明一定要在开头,
- 多个对象之间用逗号隔开,最后一个变量用;结尾。
- 构造方法声明为私有的
使用Enum类
Enum类常用的两个方法:
1.valueOf(“name”) : 这个方法可以获取到名为name的对象。
EnumSeason s = EnumSeason.valueOf("SPRING");
2.values(): 这个方法可以获取到Enum类所有的对象。
EnumSeason[] array = EnumSeason.values();