当某个类型的对象是固定的,有限几个,就可以选择使用枚举
- 声明
【修饰符】 enum 枚举类型名{ 常量对象列表 } 【修饰符】 enum 枚举类型名{ 常量对象列表; 其他的成员列表 }
说明:
(1)如果常量对象列表后面还有其他的成员,那么需要在常量对象列表后面加;进行分割
(2)常量对象后面没有(“值”)就是调用无参构造;常量对象后面有(“值”)就是调用有参构造
(3)枚举类型不能继承其他类,因为枚举类型有一个隐含的父类java.lang.Enum,枚举的公共父类是Enum,根父类依然是Object
1.Enum类中有一个唯一的构造器
protected Enum(String name,int ordinal)这个构造器不是程序员手动调用的,是编译器自动调用,在所有枚举类型的构造器的受寒帮我们自动调用,并且自动传入name和ordinal的值
name:常量对象 ordinal:常量对象的序号,其中初始常量序数为零
2.String name():返回常量名称
int ordinal():返回常量对象序号
String toString()在Enum雷总重写了Object类的toString方法,返回常量对象名;
3.编译器生成的方法
枚举类型[] values()
枚举类型 valueOf(String name)
public class TextEnum {
public static void main(String[] args) {
Season s=Season.FALL;
System.out.println(s);
Season[] all=Season.values();
for (int i = 0; i < all.length; i++) {
System.out.println(all[i]);
}
Season spring=Season.valueOf("SPRING");
System.out.println(spring);
}
}
enum Season{
SPRING("春"),SUMMER,FALL,WINTER;
private String description;
private Season(String description) {
this.description = description;
}
private Season() {
}
}