其他分享
首页 > 其他分享> > 11 枚举类型

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