美文网首页
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.枚举和注解

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