枚举类是一个类型的域中包含一组设定好的常数,如一年四季可以用一个枚举类型来定义:
public enum Season{
SPRING , SUMMER , AUTUMN , WINTER
}
其中enum是关键字,Season是类型名,4个域是固定常量,所有都是大写字母。定义好Season后可以用该类名去访问这些域,例如:
enum Season{
SPRING , SUMMER , AUTUMN , WINTER
}
public class Myenum {
public static void main(String[] args) {
Season s1 = Season. WINTER ;
System. out .println(s1);
Season s2 = Season. SUMMER ;
System. out .println(s2);
}
}
结果:
WINTER
SUMMER
编译器把枚举类型当作类来处理,编译时会自动在enum中加入一些有用的方法,如ordinal()方法可以指出一个枚举常量的声明次序,static values()方法可以产生一个保持枚举常量声明次序的数组,等等,因此,可以在枚举类型中像类一样也可以定义其他域和方法。
public enum Season{
SPRING , SUMMER , AUTUMN , WINTER
}
其中enum是关键字,Season是类型名,4个域是固定常量,所有都是大写字母。定义好Season后可以用该类名去访问这些域,例如:
enum Season{
SPRING , SUMMER , AUTUMN , WINTER
}
public class Myenum {
public static void main(String[] args) {
Season s1 = Season. WINTER ;
System. out .println(s1);
Season s2 = Season. SUMMER ;
System. out .println(s2);
}
}
结果:
WINTER
SUMMER
编译器把枚举类型当作类来处理,编译时会自动在enum中加入一些有用的方法,如ordinal()方法可以指出一个枚举常量的声明次序,static values()方法可以产生一个保持枚举常量声明次序的数组,等等,因此,可以在枚举类型中像类一样也可以定义其他域和方法。
注意:enum一定是继承java.lang.Enum,所有它不能再继承其他类,但可以实现接口。另外,如果枚举类型内有枚举常量、域和方法,要先定义常量,各常量用逗号分隔,常量结束时用分号分隔,然后再定义域和方法等。