枚举类

71 阅读2分钟

1、中文解释

枚举 :一个一个地举出来。(来自百度汉语)

” 清李渔 《闲情偶寄·词曲上·结构》:“此类繁多,不能 ==枚举==。”翻译为不可一 一列举

2、现实中的例子:

星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。

3、java中的Enum枚举

public enum WeekEnum {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;
}

3.1、声明枚举()

在这里插入图片描述 3.1.1、修饰符 关键字 声明的枚举名称 枚举成员 3.1.2、枚举的修饰符主要包括 public、private 和 internal 3.1.3、每一个枚举类型成员都可以看作是 Enum 类的实例 3.1.4、方法:

常用几个方法 : 一、WeekEnum .==values()==;//返回一个包含所有成员的数组 : 二、WeekEnum .SUNDAY.==ordinal()==; //返回当前枚举成员的索引。 : //这里需要说一下。Java自动给按照枚举值出现的顺序, : //从0开始分配了编号。 : 三、WeekEnum.SUNDAY.==name()==; //枚举成员的名称 : 四、WeekEnum.==valueOf(String name)== ; //通过名字获取枚举成员

对上面的代码进行升级

public enum WeekEnum {
	//由于有构造函数,上面我们也描述了成员看作是 Enum 类的实例,所以有构造函数就要传入参数,
    SUNDAY("星期日", 7), MONDAY("周一", 1), TUESDAY("周二", 2), WEDNESDAY("周三", 3), THURSDAY("周四", 4), FRIDAY("周五", 5), SATURDAY("周六", 6);
        // 成员变量 成员共用的变量
        private String name;
        private int index;
       // 构造方法    成员共用一个构造方法
        private WeekEnum (String name,int index) {
            this.name = name;
            this.index = index;
        }
}

这时我们使用枚举就可以像使用普通的class一样了。既然可以有构造函数,我们同样也可以写普通的函数。

对上面的代码继续升级

public enum WeekEnum {
	//由于有构造函数,上面我们也描述了成员看作是 Enum 类的实例,所以有构造函数就要传入参数,
    SUNDAY("星期日", 7), MONDAY("周一", 1), TUESDAY("周二", 2), WEDNESDAY("周三", 3), THURSDAY("周四", 4), FRIDAY("周五", 5), SATURDAY("周六", 6);
        // 成员变量 成员共用的变量
        private String name;
        private int index;
       // 构造方法    成员共用一个构造方法
        private WeekEnum (String name,int index) {
            this.name = name;
            this.index = index;
        }
        //获取今天周几
    	public static void today(int i) {
	        switch(i) {
	            case 1:
	                System.out.println(WeekEnum .MONDAY);
	                break;
	            case 2:
	                System.out.println(WeekEnum .TUESDAY);
	                break;
	            case 3:
	                System.out.println(WeekEnum .WEDNESDAY);
	                break;
	            case 4:
	                System.out.println(WeekEnum .THURSDAY);
	                break;
	            case 5:
	                System.out.println(WeekEnum .FRIDAY);
	                break;
	            case 6:
	                System.out.println(WeekEnum .SATURDAY);
	                break;
	            case 7:
	                System.out.println(WeekEnum .SUNDAY);
	                break;
	            default:
	                System.out.println("wrong number!");
			}
	    }
	}

至于EnumMap 与 EnumSet大家看懂了上面解释后再学习。