美文网首页
8.枚举和注解

8.枚举和注解

作者: 星野君 | 来源:发表于2022-04-26 11: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: 抑制编译器警告

相关文章

  • 8.枚举和注解

    一、枚举 枚举的二种实现方式: 自定义类实现枚举 使用 enum 关键字实现枚举 自定义类实现枚举: 不需要提供s...

  • 枚举和注解

    30,用enum代替int常量 枚举类型是指由一组固定的常量组成合法值的类型。 与int常量相比,枚举的优势是不言...

  • Effective Java 3rd-----Chapter 6

    Chapter 6 Enums and Annotations 枚举和注解 JAVA supports two s...

  • 实现validation注解进行校验枚举值

    背景: validation注解官方没有定义枚举类型的注解,于是这里自定义一个枚举类型注解,来实现对象的验证。 不...

  • 2020-01-31 关于枚举与数据字典

    说说什么时候使用了枚举:框架中,使用了枚举类的注解,即数据持久化时使用注解,当参数为枚举时,存入库的信息为枚举上注...

  • Java 枚举和注解总结

    Java 枚举和注解总结 枚举 没有枚举前我们基本上常量来定义值: 如果有了枚举后我们会怎样了? 代码是不是就清晰...

  • 枚举、注解

    枚举 类的对象只有有限个,确定的;当需要定义一组常量时,最好使用枚举类1.如何定义枚举类方式一:jdk5.0之前,...

  • 8.枚举

    enum Point { case North case South } var d = Point.North ...

  • Android注解笔记

    注解(Annotation) 元注解 @Target 表明我们注解可以出现的地方。是一个ElementType枚举...

  • Android 修改字体工具类

    使用注解枚举和反射 其中,replaceSystemDefaultFont设置全局字体变化时,参数oldFontN...

网友评论

      本文标题:8.枚举和注解

      本文链接:https://www.haomeiwen.com/subject/rjqssrtx.html