java语法复习:注解
创始人
2024-02-03 04:10:00

目录

一.注解概念

二.常用注解(1) @Override: 限定某个函数必须重载其他函数,该注解只能用于函数(2) @Deprecated:用于表示某个程序元素(类、函数)已过时(3) @SuppressWarnings:抑制编译器警告

三.元注解


一.注解概念

(1) 注解(Annotation)也被称为元数据(Metadata),用于修饰包、方法、属性、构造器、局部变量等数据信息。
(2) 注解不影响程序逻辑,但注解可以被编译或运行
(3) 在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在JavaEE中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所遗留的繁冗代码和XML配置等

二.常用注解
(1) @Override: 限定某个函数必须重载其他函数,该注解只能用于函数
(2) @Deprecated:用于表示某个程序元素(类、函数)已过时
(3) @SuppressWarnings:抑制编译器警告

举例①: 对于@Override注解 限定某个函数必须重载其他函数,该注解只能用于函数

//本例中所作的是在子类ColorPoint中 重写 基类Point 中的getString()函数
class Point {public int x;public int y;public  String getString(){return String.format("(%d,%d)",x,y);}
}
class ColorPoint extends  Point{private String color;@Overridepublic String getString(){  //重写Point中的getString()函数return String.format("(%d,%d,%s)",super.x,super.y,color);}}

当然,我们更多用到的是对java自带函数重写,如compareTo() 和 toString() 函数,

比如 当我们想要对多个点进行排序,点中含有x、y两个关键字 

要按第一关键字正序排序,若第一关键字相等则比较第二关键字:

package org.example;import java.lang.reflect.Array;
import java.util.Arrays;class Point implements  Comparable{//使用Comparable接口重写toCompare(obj)方法public int x;public int y;public Point(int x,int y){this.x = x;this.y = y;}    @Override    //重写toString函数public String toString() {return String.format("x: %d y: %d \n",x,y);}@Overridepublic int compareTo(Point o) { //重写compareTo函数if(this.x > o.x)return 1;if(this.x < o.x)return -1;if(this.y > o.y)return 1;if(this.y < o.y)return -1;return 1;}
}public class Main {public static void main(String[] args) {Point[] arr = new Point[]{new Point(7,2),new Point(5,4),new Point(5,2)};Arrays.sort(arr);//排序System.out.println(Arrays.toString(arr));//输出}
}
//输出:
[x: 5 y: 2 
, x: 5 y: 4 
, x: 7 y: 2 
]

举例②: 对于@Deprecated 用于表示某个程序元素(类、函数)已过时

 可以看到调用添加@Deprecated注解的方法时,会出现该方法已被弃用

@Override不同的是,该注释不仅能标志在函数上,还能标志在类上,表示某个类已过时

这是因为它们的 元注解 不同 第三节中会提到.

举例③ 对于@SuppressWarnings:抑制编译器警告

如图,我们可以把 例子②  中getString()方法弃用的警告抑制,而不显示

 

三.元注解

修饰其他注解的注解,就被称为元注解。

(1) Retention:指定注解的作用范围
(2) Target:指定注解可以用在哪些地方
(3) Document:注定注解是否出出现在javadoc中
(4) Inherited:子类会继承父类的注解

接第二节 @Override 为什么只能修饰方法 ,我们可以按住ctrl键点击@Override 康康它的具体实现:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

可以看到,@Override注解 只能用在ElementType.METHOD, 即只能用在方法类型上,

同时在 RetentionPolicy.SOURCE, 即源码阶段阶段调用该注解

同样的 对于@Deprecated注解:

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}

Target()注解可知  @Deprecated注解可以用在 构造器、成员变量、局部变量、方法、包、函数参数类上

同时 在RetentionPolicy.RUNTIME 即运行阶段调用该注解

其它注解同理。

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...