ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

11 枚举类型

2019-09-07 17:00:52  阅读:229  来源: 互联网

标签:11 name System println 枚举 类型 Weekend out


枚举类型概述

枚举指的是在一定范围内取值,这个值必须是枚举类型中的任意一个,而且只能取一个
枚举的特点:
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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有