1. 创建月份枚举类,枚举值包含十二个月份,月份要求用英文单词

    public enum Month {
     January("January"),
     February("February"),
     March("March"),
     April("April"),
     May("May"),
     June("June"),
     July("July"),
     August("August"),
     September("September"),
     October("October"),
     November("November"),
     December("December");
    
     Month(String name) {
         this.name = name;
     }
    
     public String getName() {
         return name;
     }
    
     public void setName(String name) {
         this.name = name;
     }
    
     private  String name;
    }
  2. 创建星期枚举类,有7个枚举值,包含计划属性plan,为此属性赋值(使用构造器)。
    ```
    public enum Week {
    Monday("Monday","study 1"),
    Tuesday("Tuesday","study 2"),
    Wednesday("Wednesday","study 3"),
    Thursday("Thursday","study 4"),
    Friday("Friday","study 5"),
    Saturday("Saturday","rest 1"),
    Sunday("Sunday","rest 2")
    ;

    private String name;
    private String plan;

    Week(String name, String plan) {

      this.name = name;
      this.plan = plan;

    }

    public String getName() {

      return name;

    }

    public void setName(String name) {

      this.name = name;

    }

    public String getPlan() {

      return plan;

    }

    public void setPlan(String plan) {

      this.plan = plan;

    }

    @Override
    public String toString() {

      return "Week{" +
              "name='" + name + '\'' +
              ", plan='" + plan + '\'' +
              '}';

    }
    }

  3. 1)有 RED,BLUE,BLACK,YELLOW,GREEN这个五个枚举值;
    2)Color有三个属性redValue,greenValue,blueValue,
    3)创建构造方法,参数包括这三个属性,
    4)每个枚举值都要给这三个属性赋值,三个属性对应的值分别是red:255,0,0 blue:0,0,255 black:0,0,0 yellow:255,255,0 green:0,255,0
    5)重写toString方法显示三属性的值
    6)在Color中添加抽象方法meaning,不同的枚举类的meaning代表的意思各不相同

    public enum Color {
      RED(255,0,0){
          public String meaning(){
              return "RED";
          }
      },
      BLUE(0,0,255){
          public String meaning(){
              return "BLUE";
          }
      },
      BLACK(0,0,0){
          public String meaning(){
              return "BLACK";
          }
      },
      YELLOW(255,255,0){
          public String meaning(){
              return "YELLOW";
          }
      },
      GREEN(0,255,0){
          public String meaning(){
              return "GREEN";
          }
      }
      ;
    
      private int redValue;
      private int greenValue;
      private int blueValue;
    //    定义抽象方法
      public abstract String meaning();
    
      Color(int redValue, int greenValue, int blueValue) {
          this.redValue = redValue;
          this.greenValue = greenValue;
          this.blueValue = blueValue;
      }
    
      @Override
      public String toString() {
          return "Color{" +
                  "redValue=" + redValue +
                  ", greenValue=" + greenValue +
                  ", blueValue=" + blueValue +
                  '}';
      }
    

}

4.有一个接口类Works,有个反***色的接口ReflectColor,用上题的Color枚举类实现这个接口类,每个枚举值反射自己颜色的光。

//接口类,反射光的方法
public interface Works {
public String ReflectColor();
}

package com.company;

public enum Color implements Works{
RED(255,0,0){
@Override
public String ReflectColor() {
return "RED light";
}

    public String meaning(){
        return "RED";
    }
},
BLUE(0,0,255){
    @Override
    public String ReflectColor() {
        return "BLUE light";
    }

    public String meaning(){
        return "BLUE";
    }
},
BLACK(0,0,0){
    @Override
    public String ReflectColor() {
        return "BLACK light";
    }

    public String meaning(){
        return "BLACK";
    }
},
YELLOW(255,255,0){
    @Override
    public String ReflectColor() {
        return "YELLOW light";
    }

    public String meaning(){
        return "YELLOW";
    }
},
GREEN(0,255,0){
    @Override
    public String ReflectColor() {
        return "GREEN light";
    }

    public String meaning(){
        return "GREEN";
    }
}
;

private int redValue;
private int greenValue;
private int blueValue;

// 定义抽象方法
public abstract String meaning();

Color(int redValue, int greenValue, int blueValue) {
    this.redValue = redValue;
    this.greenValue = greenValue;
    this.blueValue = blueValue;
}

@Override
public String toString() {
    return "Color{" +
            "redValue=" + redValue +
            ", greenValue=" + greenValue +
            ", blueValue=" + blueValue +
            '}';
}

}

```