Day15-枚举
枚举
-
枚举简写enum
-
枚举是一组常量的集合
-
可以这样理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象
枚举的实现方式
-
自定义实现枚举
-
将构造器私有化,目的防止直接new
-
去掉setXXX方法,防止属性被修改
-
在类的内部,直接创建固定的对象
-
优化,可以再加入一个final+static修饰符
-
-
使用enum关键字实现枚举
-
使用关键字enum替代class
-
常量名(实参列表)
-
如果有多个常量(对象),使用,号间隔即可,最后一个分号结尾
-
如果使用enum来实现枚举,要求将定义常量对象,写在前面
-
如果使用的是无参构造器,创建常量对象,则可以省略()
-
例题1
package com.lsq.study.枚举;
/**
* @author liushaoqin
* @version 1.0
*/
public class Demo02 {
public static void main(String[] args) {
Week_[] weeks = Week_.values();
System.out.println("==========所有星期的信息如下==========");
for (Week_ week : weeks) {
System.out.println(week);
}
}
}
enum Week_{
MONDAY("星期一"),TUESDAY("星期二"),WEDNESDAY("星期三"),THURSDAY("星期四"),FRIDAY("星期五"),SATURDAY("星期六"),SUNDAY("星期日");
private String name;
private Week_(String name) {
this.name = name;
}
package com.lsq.study.枚举;
/**
* @author liushaoqin
* @version 1.0
*/
public class Demo01 {
public static void main(String[] args) {
Week[] values = Week.values();
System.out.println("==========所有星期的信息如下==========");
for (Week value : values) {
String name = value.name();
switch (name){
case "MONDAY":
System.out.println("星期一");
break;
case "TUESDAY":
System.out.println("星期二");
break;
case "WEDNESDAY":
System.out.println("星期三");
break;
case "THURSDAY":
System.out.println("星期四");
break;
case "FRIDAY":
System.out.println("星期五");
break;
case "SATURDAY":
System.out.println("星期六");
break;
case "SUNDAY":
System.out.println("星期日");
break;
}
}
}
}
enum Week{
MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY;
}
注意事项
-
使用enum关键字后,就不能再继承其他类了,因为enum会隐式继承Enum,而java是单继承机制
-