Day15-枚举

枚举

  1. 枚举简写enum

  2. 枚举是一组常量的集合

  3. 可以这样理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象

枚举的实现方式

  1. 自定义实现枚举

    • 将构造器私有化,目的防止直接new

    • 去掉setXXX方法,防止属性被修改

    • 在类的内部,直接创建固定的对象

    • 优化,可以再加入一个final+static修饰符

  2. 使用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;
  }

   @Override
   public String toString() {
       return  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;

}

注意事项

  1. 使用enum关键字后,就不能再继承其他类了,因为enum会隐式继承Enum,而java是单继承机制

  2. enum实现的枚举类,仍然是一个类,所以还是可以实现接口的

posted @ 2023-07-22 17:03  仓鼠的气垫床  阅读(41)  评论(0编辑  收藏  举报