面向对象【Annotation注解】

news/2024/7/5 6:44:24

请添加图片描述

文章目录

  • 注解概述
    • 注解与注释
    • 常见的 Annotation
  • 最基本的注解使用
    • @Override
    • @Override
    • @SuppressWarnings
  • 元注解
    • @Retention
    • @Target
    • @Documented
    • @Inherited
  • 自定义注解
    • 格式
    • 定义
    • 使用

注解概述

注解(Annotation)是从 JDK5.0 开始引入,以“@注解名”在代码中存在。例如:
@Override
@Deprecated
@SuppressWarnings(value=”unchecked”)
Annotation 可以像修饰符一样被使用,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明。还可以添加一些参数值,这些信息被保存在Annotation 的 “name=value” 对中。
注解可以在类编译、运行时进行加载,体现不同的功能。

注解与注释

注解和注释是两种完全不同的概念。

  • 注释是对代码的说明和描述,它们不会影响程序的执行逻辑。
  • 注解则是一种元数据,它可以影响程序的编译、解析和运行行为。
  • 注解是可以被程序读取和解析的。
  • 注释仅仅是用于程序员阅读代码的辅助说明。

常见的 Annotation

  • @Override:用于标记子类方法覆盖父类方法。
  • @Deprecated:用于标记过时的方法或类。
  • @SuppressWarnings:用于抑制编译器警告。
  • @FunctionalInterface:用于标记函数式接口。
  • @SuppressWarnings:用于抑制特定类型的警告。
  • @author 标明开发该类模块的作者,多个作者之间使用,分割。
  • @version 标明该类模块的版本。
  • @return 对方法返回值的说明,如果方法的返回值类型是 void 就不能写。
  • @exception 对方法可能抛出的异常进行说明 ,如果方法没有用 throws 显式抛出的异常就不能写。

最基本的注解使用

@Override

@Override它用于指示一个方法是覆盖了父类中的方法。

class Parent {
   
    public void print() {
   
        System.out.println("Parent's print method");
    }
}

class Child extends Parent {
   
    @Override
    public void print() {
   
        System.out.println("Child's print method");
    }
}

public class Main {
   
    public static void main(String[] args) {
   
        Child child = new Child();
        child.print(); // 输出 "Child's print method"
    }
}

@Override

@Deprecated 它用于标记方法、类或字段已经过时不推荐使用。当您在新代码中使用已经过时的方法、类或字段时,编译器会发出


http://lihuaxi.xjx100.cn/news/2125463.html

相关文章

Bean对象拷贝工具封装

在平时后端开发的过程中&#xff0c;经常要把对象封装成DTO,VO对象&#xff0c;来与前端进行交互 下面就是自己封装的对象拷贝工具&#xff1a; public class BeanCopyUtils {private BeanCopyUtils() {}public static <V> V copyBean(Object source,Class<V> cl…

1.使用eNSP绘制拓扑图实训

1&#xff0e;实训目的 掌握使用eNSP绘制拓扑图的方法。 2&#xff0e;应用环境 某企业需要提升自己的网络环境&#xff0c;为了保证项目顺利的实施&#xff0c;需要使用eNSP事先绘制拓扑图。 3&#xff0e;实训设备 安装有eNSP的计算机。 4&#xff0e;实训内容 按照设…

【Java程序设计】【C00374】基于(JavaWeb)Springboot的社区疫情管理系统(有论文)

TOC 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;博客中有上百套程序可供参考&#xff0c;欢迎共同交流学习。 项目简介 项目获取 &#x1f345;文末点击卡片…

《技术与市场》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答&#xff1a; 问&#xff1a;《技术与市场》属于什么级别期刊&#xff1f; 答&#xff1a;省级&#xff1b;主管单位:四川省科学技术厅 主办单位:四川省科学技术信息研究所 问&#xff1a;《技术与市场》是核心期刊吗&#xff1f; 答&#xff1a;不是&#xff0c;只…

生成可读取配置文件的独立运行jar程序

前言: 周五刚躺下,前线打来语音要个下载文件的小程序,下载路径和下载码需要根据配置获取,程序需要在服务器执行。当然配置的设计是个人设计的,不然每次更新下载码都要重新出具jar包,太麻烦。多年没写独立运行的jar包了,翻阅了相关资料,最终还是功夫不负有心人。想着这种…

MATLAB:微分方程(组)数值解

一、显式微分方程 clc,clear tspan [0:10]; y0 2; [t1,y1] ode23(odefun_1,tspan,y0); %求数值解&#xff0c;精度相对低 [t2,y2] ode113(odefun_1,tspan,y0); %求数值解&#xff0c;精度相对高 yt sqrt(tspan1)1; %求精确解 subplot(1,2,1) plot(t1,y1,bo,t2,y2,r*,tspa…

linux 使用kubeadm安装部署K8S

上一节&#xff0c;安装了docker-20.10.14版本 安装kubeadm&#xff0c;kubelet和kubectl 由于版本更新频繁&#xff0c;这里指定版本号部署 yum install kubelet-1.23.4-0 kubeadm-1.23.4-0 kubectl-1.23.4-0 -y Loaded plugins: fastestmirror Repository epel is listed m…

【MySQL】聊聊自增id用完怎么办?

在实际的开发中&#xff0c;一般都会将数据存储到数据库中&#xff0c;在设计表的时候&#xff0c;其实id如果达到最大值的话&#xff0c;会出现什么问题。其实主要分两种情况&#xff0c;一种是设置了主键id&#xff0c;另一种没有设置主键id。 表定义自增值id create table…