一个类的对象是有限而且固定,比如季节类,它只有4个类;比如行星类,目前只有8个对象。这种实例有限而且固定的类,在Java里被称为枚举类。
枚举类终究不是普通类,与普通类的区别如下。
枚举类默认继承了Java. lang. Enum类,而不是默认继承了Object类,因此枚举类不能显示继承其他父类。
使用enum定义,非抽象的枚举类默认会使用final修饰。
枚举类的构造器只能使用private访问控制符,如果省略访问控制符,则默认使用是private修饰符,因此枚举类不能派生子类。枚举类的所有实例必须在枚举类的第一行显示列出,(枚举实例指的是枚举类中变量),否则这个枚举类永远都不能产生实例。列出这些实例时,系统会自动添加public static final修饰,无需程序员显示添加。
注意:枚举类默认提供了一个values()方法,该方法可以很方便地遍历所有的枚举值。
例:public enum SeasonEnum{
SPRING,SUMMER,FALL,WINTER;
}
Java自动给按照枚举值出现的顺序,从0开始分配了编号。通过name()可以获得枚举值的名称,通过ordinal()可以获得枚举值的编号。所以SPRING=0;…
public class EnumTest{
public void judge(SeasonEnum s)
{}
}
public static void main(){
for(var s:SeasonEnum.value())
{
System. out. println(s);
}
new EnumTest(). judge(SeasonEnum.SPRING);
}
例:public enum Gender
{
MALE, FEMALE;
public String name;
}
public class GenderTest{
public static void main(String[] args)
{
Gender g = Enum. valueOf(Gender.class,"FEMALE");
g. name="女";
}
}