当前位置: 首页 > news >正文

九、枚举和注解

文章目录

  • 一、枚举介绍
  • 二、自定义类实现枚举
  • 三、enum关键字实现枚举
    • 3.1 enum案例
    • 3.2 enum关键字实现枚举注意事项
    • 3.3 enum常用方法说明
    • 3.4 enum实现接口
  • 四、JDK内置的基本注解类型
    • 4.1 注解的理解
    • 4.2 基本的Annotation介绍
    • 4.3 @Override
    • 4.4 @Deprecated
    • 4.5 @SuppressWarnings
  • 五、元注解:对注解进行注解
    • 5.1 元注解的基本介绍
    • 5.2 @Retention
    • 5.3 @Target
    • 5.4 @Documented
    • 5.5 Inherited注解
  • 细节
    • 增强for循环

一、枚举介绍

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、自定义类实现枚举

package com.enum_;/*** @author Gao YongHao* @version 1.0*/
public class DefineByUser {public static void main(String[] args) {System.out.println(Season.AUTUMN);}
}class Season { // 类public static final Season SPRING = new Season("Spring", "温暖");public static final Season SUMMER = new Season("Summer", "炎热");public static final Season AUTUMN = new Season("Autumn", "凉爽");public static final Season WINTER = new Season("Winter", "寒冷");private String name;private String desc;// 1. 将构造器私有化,目的防止 外部直接 new// 2. 去掉setXxx方法,防止属性被修改// 3. 在 Season 内部,直接创建固定的对象private Season(String name, String desc) {this.name = name;this.desc = desc;}public String getName() {return name;}public String getDesc() {return desc;}@Overridepublic String toString() {return "Season{" +"name='" + name + '\'' +", desc='" + desc + '\'' +'}';}
}

在这里插入图片描述

三、enum关键字实现枚举

3.1 enum案例

package com.enum_;/*** @author Gao YongHao* @version 1.0*/
public class DefineByEnum {public static void main(String[] args) {System.out.println(Season2.SPRING);}
}enum Season2 {// 如果使用了 enum 来实现枚举类// 1. 使用关键字 enum 替代 class// 2. public static final Season2 SPRING = new Season2("Spring","温暖");// 直接使用// SPRING("Spring", "温暖"); 解读  常量名(实参列表)// 3. 如果有多个常量(对象)   使用 , 号间隔即可// 4. 如果使用enum来实现枚举,要求将定义的常量对象,写在前面SPRING("Spring", "温暖"), SUMMER("Summer", "炎热"), AUTUMN("Autumn", "凉爽"),WINTER("冬天", "寒冷");private String name;private String desc;Season2(String name, String desc) {this.name = name;this.desc = desc;}public String getName() {return name;}public String getDesc() {return desc;}
}

3.2 enum关键字实现枚举注意事项

在这里插入图片描述

  • 要求所有的构造器均为 private 修饰(默认的无参构造器也为 private 修饰)
  • enum反编译的信息如下
    在这里插入图片描述

3.3 enum常用方法说明

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.4 enum实现接口

在这里插入图片描述

四、JDK内置的基本注解类型

4.1 注解的理解

在这里插入图片描述

4.2 基本的Annotation介绍

在这里插入图片描述

4.3 @Override

在这里插入图片描述

4.4 @Deprecated

在这里插入图片描述

在这里插入图片描述

4.5 @SuppressWarnings

在这里插入图片描述

在这里插入图片描述

五、元注解:对注解进行注解

5.1 元注解的基本介绍

在这里插入图片描述

5.2 @Retention

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.3 @Target

在这里插入图片描述

5.4 @Documented

在这里插入图片描述

5.5 Inherited注解

在这里插入图片描述

细节

增强for循环

public class Test{public static void main(String[] args){Teacher[] teas = {new Teacher("aa","32"),new Teacher("bb","32"),new Teacher("bb","32")};for(Teacher t:teas){ // 增强 for 循环,类似于python的for循环遍历(缺点无法获知当前的index)System.out.println("name:"+t.name + " age:" + t.age);}}
}class Teacher{public String name;public int age;public Teacher(String name,int age){this.name = name;this.age = age;}
}

http://www.mrgr.cn/news/12248.html

相关文章:

  • npm install报错,解决记录:11个步骤诊断和解决问题
  • PowerShell | git log 中文乱码问题解决
  • Python实现t-分布随机邻域嵌入(t-SNE)降维算法
  • 使用Oracle的PL/SQL编写自定义函数来实现split
  • Java线程池
  • 阿里云创建的SpringBoot项目打包时找不到主清单属性
  • 《重生到现代之从零开始的C语言生活》—— 指针6
  • 华为数通方向HCIP-DataCom H12-821题库(更新单选真题:21-30)
  • JAVA基础面试题总结(十四)——JVM(下)
  • python可视化-折线图
  • 6.2K star!推荐一款开源混沌工程测试平台:Chaos Mesh
  • 命令模式的实际应用案例:从电梯控制系统到文本编辑器
  • 基于事件总线EventBus实现邮件推送功能
  • UniApp轻松实现图片放大查看功能
  • 用ChatGPT精确营销:如何让AI深度理解并推广你的产品
  • 软件测试学习笔记丨Chrome开发者模式
  • 实战OpenCV之图像的数学运算
  • 【Unity输入】Input Manager 和 Input System对比
  • Histolab:病理切片的预处理工具|项目实战
  • VS2022 - 制作自己的C#类库dll,并输出Unity识别的pdb调试信息文件