枚举类
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!");
}
}
}