九、枚举和注解

news2024/9/19 18:52:51

文章目录

  • 一、枚举介绍
  • 二、自定义类实现枚举
  • 三、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;
    }

    @Override
    public 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.coloradmin.cn/o/2080958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【性能优化】:设计模式与技术方案解析(二)

引言 在 【性能优化】:探索系统瓶颈的根源(一)文章中,我们已经分析了手动结算的弊端和瓶颈,本文来分析下怎么优化系统性能。 需求分析 既然手动结算耗时费力易出错,那么能不能开发一个**程序自动化处理*…

ARM32开发——(十八)RTC实时时表

1. RTC内置实时时钟 1.1 RTC时钟介绍 RTC是实时时钟(Real-Time Clock)的缩写。它是一种硬件模块或芯片,用于提供准确的日期和时间信息。 GD32F407上有RTC的外设,它提供了一个包含日期(年/月/日)和时间(时/分/秒/亚秒)的日历功能。除亚秒用二进制码显示外,时间和日期都以BCD码…

JSP中的动态INCLUDE与静态INCLUDE:简明对比

JSP中的动态INCLUDE与静态INCLUDE:简明对比 1、静态INCLUDE2、动态INCLUDE3、总结 💖The Begin💖点点关注,收藏不迷路💖 在JSP开发中,页面包含分为动态INCLUDE和静态INCLUDE两种,它们各有特点。…

详细分析Oracle中的ALL_TAB_COLUMNS视图语句

目录 1. 基本知识2. Demo 1. 基本知识 ALL_TAB_COLUMNS 是 Oracle 数据库的一个数据字典视图,用于提供关于数据库中所有可见表的列信息 对于数据库管理、开发和调试非常有用 基本的字段描述如下: 字段名描述OWNER列出表所在的所有者(sche…

神经网络——CIFAR10小实战

1.引子 Sequential的使用:将网络结构放入其中即可,可以简化代码。 找了一个对CIFAR10进行分类的模型。 2.代码实战 from torch import nn from torch.nn import Conv2d, MaxPool2d, Flatten, Linearclass Tudui(nn.Module):def __init__(self):super(T…

SOMEIP_ETS_069: Unaligned_SOMEIP_Messages_overUDP

测试目的: 验证设备(DUT)能够处理在单个UDP包中发送的三个SOME/IP消息,并且即使其中一个SOME/IP消息未对齐,DUT仍能对所有三个请求给出正确的响应。 描述 本测试用例旨在检查DUT在通过UDP协议接收到包含一个未对齐S…

【Pytorch】Linear 层,举例:相机参数和Instance Feaure通过Linear层生成Group Weights

背景 看论文看到这个pipeline,对于相机参数和Instance Fature 的融合有点兴趣,研究如下: Linear 层 Linear 层是最基本的神经网络层之一,也称为全连接层。它将输入与每个输出神经元完全连接。每个连接都有一个权重和一个偏置。…

inflight 守恒算法负反馈解析

终于说到这个话题了。 bbr 不好吗,我自己也做过很多关于 bbr 的仿真验证,现网数据分析以及数学建模,结论均指向 bbr 是一个公平高效且天然不会引发 bufferbloat 的算法,但细节值得商榷: 非理想哑铃拓扑下测量误差的叠…

Dubbo3框架概述

1 什么是分布式系统? 《分布式系统原理与范型》定义: “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统” 分布式系统(distributed system)是建立在网络之上的软件系统。 简单来说:多个(不同职责)人共同来完成一件事! 任何一台服务器都无法…

Dockerfile+私有仓库

使用Dockerfile创建应用镜像 在Docker file中定义所需要执⾏的指令,使⽤ docker build创建镜 像,过程中会按照dockerfile所定义的内容进⾏打开临时性容器,把docker file中命令全部执⾏完成,就得到了⼀个容器应⽤镜像,每…

PHP-开发工具下载-配置-使用

.1.下载 使用各种人工智能工具推荐的php免费开发工具。 文心一言推荐的工具 讯飞星火的回答 kimi的回答 根据自己的了解,最终选择vscode这款开发工具。 .2.配置 文心一言的回答 讯飞星火的回答 kimi的回答 最终选择使用PHP Debug 插件来支持。 安装中文插件。 …

NASA数据集:MetOp-A ASCAT 第 2 级海洋表面风矢量,针对沿岸海洋进行了优化

MetOp-A ASCAT Level 2 Ocean Surface Wind Vectors Optimized for Coastal Ocean 简介 该数据集包含 MetOp-A 上的高级散射计(ASCAT)以 12.5 公里采样分辨率(注:有效分辨率为 25 公里)进行的近实时 2 级沿岸海面风矢…

实战OpenCV之图像的数学运算

基础入门 在OpenCV中,图像的数学运算是一种基本而强大的工具,可以用于多种图像处理任务,包括:图像增强、图像融合、特征提取等。这些运算包括加法、减法、乘法和除法等基本的数学操作。 加法运算:可以用来合并两个图像…

【JS】卢小姐排队问题(100) |思路参考+代码解析(C++)

题目 LYA 的班级要进行一次班级活动,全班同学按照学号从小到大排成一列。但是卢小姐来晚了,没有来得及排队。现在卢小姐想知道,她应该插入到队列的哪个位置,才能保证队列仍然是按照学号从小到大排列的。请你帮助卢小姐找到她应该…

微服务框架之Kitex

Kitex: 高性能的 Golang 微服务框架 Kitex 是由字节跳动(ByteDance)开发并开源的一款高性能微服务框架,专为构建分布式系统和微服务架构设计。Kitex 基于 Golang,旨在提供一个简单、高效、灵活的开发体验,帮助开发者快…

ST表(区间查询

解决的问题&#xff1a; 数组区间查询最大值和最小值对于解决数组的树状数组的区间修改 ------- 线段树倍增思想 核心代码&#xff1a; #include<bits/stdc.h> using namespace std; const int N1e5; int num[N]; int f[N][N]; int main(){int n;cin>>n;//输入默…

无线通信频率分配

首先看看无线电信号的频谱如何划分&#xff1a; 一、5G NR 3GPP已指定5G NR 支持的频段列表&#xff0c;5G NR频谱范围可达100GHz&#xff0c;指定了两大频率范围&#xff1a; ① Frequency range 1 &#xff08;FR1&#xff09;&#xff1a;就是我们通常讲的6GHz以下频段 频率…

Lesson07---STL简介(了解)

1. 什么是STL 2. STL的版本 3. STL的六大组件 4. STL的重要性 5. 如何学习STL 6.STL的缺陷 1. 什么是STL STL(standard template libaray- 标准模板库 ) &#xff1a; 是 C 标准库的重要组成部分 &#xff0c;不仅是一个可复用的组件库&#xff0c;而且 是一个包罗数据结构与…

【网络】P2P打洞原理

本文首发于 ❄️慕雪的寒舍 1. 引入 如果你折腾过NAS或者BT下载等等玩意&#xff0c;可能听说过“P2P打洞”这一技术名词。简单来说&#xff0c;P2P打洞可以让我们直接在外网访问内网的设备&#xff0c;从而让没有公网IP的家庭设备也能获得“公网直连”的速度。 比如绿联、极…

【JAVA]DAY 2在网页中输出日期和时间,实时还是静止?

一、如何输出日期文本 使用document.write(Date()); 会在网页中输出当前的日期和时间。在 2024 年 8 月 28 日星期三执行这段代码&#xff0c;可能会输出类似 “Wed Aug 28 2024 [具体时间]” 这样的内容。 Date()是 JavaScript 中的一个内置对象&#xff0c;用于处理日期和…