8.枚举和注解

2022-04-26  本文已影响0人  星野君

一、枚举

枚举的二种实现方式:

  1. 自定义类实现枚举
  2. 使用 enum 关键字实现枚举

自定义类实现枚举:

  1. 不需要提供set方法,一般情况枚举都为自读。
  2. 对枚举对象使用final + static 共同修饰
  3. 枚举对象名全部使用大写
  4. 枚举对象根据需要,也可以多个属性
  5. 构造器私有化
public class Home {
  public static void main(String[] args) {
    System.out.println(Season.AUTUMN.getName);
  }
}


class Season {
  private String name;
  private String desc;

  public static final Season SPRING = new Season("春天", "温暖");
  public static final Season WINTER = new Season("冬天", "寒冷");
  public static final Season AUTUMN = new Season("秋天", "凉爽");
  public static final Season SUMMER = new Season("夏天", "炎热");

  // 构造器私有化
  private Season(String name, String desc) {
    this.name = name;
    this.desc = desc;
  }

  public String getName() {
    return name;
  }

  public String getDesc() {
    return desc;
  }
}

使用 enum 关键字实现枚举:

  1. 使用关键字 enum 替代 class
  2. public static final Season SPRING = new Season("春天", "温暖") 直接使用 SPRING("春天", "温暖") 解读 常量名(实参列表)
  3. 如果有多个常量(对象), 使用 ,号间隔即可
  4. 如果使用 enum 来实现枚举,要求将定义常量对象,写在前面
  5. 如果我们使用的是无参构造器,创建常量对象,则可以省略 ()
public class Home {
  public static void main(String[] args) {
    System.out.println(Season.AUTUMN.getName());
  }
}

enum Season {
  /** 如果使用 enum 来实现枚举,要求将定义常量对象,必须写在前面 */
  SPRING("春天", "温暖"),
  WINTER("冬天", "寒冷"),
  AUTUMN("秋天", "凉爽"),
  SUMMER("夏天", "炎热");
  private String name;
  private String desc;

  private Season(String name, String desc) {
    this.name = name;
    this.desc = desc;
  }

  public String getName() {
    return name;
  }

  public String getDesc() {
    return desc;
  }
}
  1. 使用 enum 关键字后,就不能再继承其它类了,因为 enum 会隐式继承 Enum,而 Java 是单继承机制
  2. enum 实现的枚举类,仍然是一个类,所以还是可以实现接口的.

二、注解

  1. 注解(Annotation)也被称为元数据(Metadata),用于修饰解释 包、类、方法、属性、构造器、局部变量等数据信息。
  2. 和注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息。
  3. 在 JavaSE 中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在 JavaEE 中注解占据了更重要的角 色,例如用来配置应用程序的任何切面,代替 java EE 旧版中所遗留的繁冗代码和 XML 配置等

三个基本的 Annotation:

  1. @Override: 限定某个方法,是重写父类方法, 该注解只能用于方法
  2. @Deprecated: 用于表示某个程序元素(类, 方法等)已过时
  3. @SuppressWarnings: 抑制编译器警告
上一篇 下一篇

猜你喜欢

热点阅读