11 枚举类型
作者:互联网
枚举类型概述
枚举指的是在一定范围内取值,这个值必须是枚举类型中的任意一个,而且只能取一个
枚举的特点:
1.必须在规定的范围内取值
2.这个值只能取一个
枚举的本质就是一个类
枚举类型成员特点
枚举既然本质是一个类,那么枚举里面有没有 成员变量,成员方法,构造方法,静态方法,抽象方法? 有的话又有意义吗?
1.枚举的构造方法必须私有
2.枚举当中默认有一个私有的无参构造方法,如果你写了一个带参的构造方法,那么会覆盖无参构造方法,所以编译报错
3.枚举里面的抽象方法是有意义的,其他成员没有意义
4.枚举的前面必须是枚举的常量成员
作业: 使用枚举来描述一个星期有多少天
并且要求使用枚举的响应方法来告诉是星期几
switch语句中可以是枚举类型
枚举类型方法
String name() 返回枚举的名称
int ordinal() 返回枚举的索引
static <T extends Enum\<T>> T valueOf(Class\<T> enumType, String name) 返回枚举对象
valueOf(String name) 生成枚举对象
values() 返回所有的枚举对象的数组
要求大家能够将枚举的 对象/ 索引 / 名称 进行相互转换
示例代码:
public class EnumDemo04 {
public static void main(String[] args) {
// 获取枚举对象
// Weekend w = Weekend.valueOf(Weekend.class, "MONDAY");
// System.out.println(w);
// // 获取枚举对象
// Weekend w2 = Weekend.MONDAY;
// System.out.println(w2);
// // 获取枚举对象
// Weekend w3 = Weekend.valueOf("MONDAY");
// System.out.println(w3);
// medhod1();
// method2();
// method3();
}
1.已知枚举对象,获取枚举的名称和索引
public static void medhod1() {
Weekend w = Weekend.TUESDAY;
String name = w.name();
int index = w.ordinal();
System.out.println(w);
System.out.println(name);
System.out.println(index);
}
2.已经枚举的名称,获取到枚举的对象和下标
public static void method2() {
String name = "MONDAY";
Weekend w = Weekend.valueOf(name);
int index = w.ordinal();
System.out.println(name);
System.out.println(w);
System.out.println(index);
}
3.已知枚举的下标,获取到枚举的名称和枚举对象
public static void method3() {
int index = 2;
Weekend[] ws = Weekend.values();
Weekend w = ws[index];
String name = w.name();
System.out.println(index);
System.out.println(w);
System.out.println(name);
}
}
标签:11,name,System,println,枚举,类型,Weekend,out 来源: https://blog.csdn.net/weixin_43398702/article/details/100601851