想要定义新类型时,对象的可取值是有范围的,这时可以定义枚举类型
声明枚举类
[public] enum 枚举类型名称
[implements] 接口名称列表
{
枚举值;
变量成员声明及初始化;
方法声明及方法体;
}
package 第二章类和对象;
public class 枚举类型 {
enum Score{
Excellent,Qualified,Failed;
}
public static void giveScore(Score s){
switch(s){
case Excellent:
System.out.println("Excellent!");
break;
case Qualified:
System.out.println("Qualified!");
break;
case Failed:
System.out.println("Failed!");
break;
}
}
public static void main(String[] args) {
giveScore(Score.Excellent);
}
}
枚举类的特点
- 枚举定义实际上是定义了一个类
- 所有枚举类型都隐含继承(拓展)自java.lang.Enum,因此枚举类型不能再继承其他任何类
- 枚举类型的类体可以包括方法和变量
- 枚举类的构造方法必须是包内私有或者私有的,定义在枚举开头的常量会被自动创建,不能显式地调用枚举类的构造方法
枚举类型的默认方法
- 静态的values()方法用于获取枚举类型的枚举值的数组(返回一个数组,元素都是枚举值)
- toString方法返回枚举值的字符串描述(枚举值转成字符串)
- valueOf方法将以字符串形式表示的枚举值转化为枚举类型的对象
- Ordinal方法获得对象在枚举类型中的位置索引
发表评论