type
status
date
slug
summary
tags
category
icon
password
URL
文章来源说明

概念

注解(Annotaion),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
使用注解:@注解名称

JDK中预定义的一些注解

  • @Override :检测被该注解标注的方法是否是继承自父类(接口)的
  • @Deprecated:该注解标注的内容,表示已过时
  • @SuppressWarnings:压制警告
  • 一般传递参数all @SuppressWarnings("all")
 

自定义注解

语法格式
  • 本质:注解本质上就是一个接口,该接口默认继承Annotation接口
  • public interface MyAnno extends java.lang.annotation.Annotation {}
  • 属性:接口中的抽象方法
  1. 属性的返回值类型有下列取值
      • 基本数据类型
      • String
      • 枚举
      • 注解
      • 以上类型的数组
  1. 定义了属性,在使用时需要给属性赋值
    1. 如果定义属性时,使用default关键字给属性默认初始化值,则使用注解时,可以不进行属性的赋值。
    2. 如果只有一个属性需要赋值,并且属性的名称是value,则value可以省略,直接定义值即可。
    3. 数组赋值时,值使用{}包裹。如果数组中只有一个值,则{}可以省略
 
例子
 

元注解:用于描述注解的注解

  • @Target:描述注解能够作用的位置
    • ElementType取值:
    • ElementType.TYPE 指定注解只能修饰类或者接口 --重点
    • ElementType.FIELD 指定注解只能修饰成员属性 --重点
    • ElementType.METHOD 指定注解只能修饰方法 --重点
    • ElementType.PARAMETER 指定注解只能修饰方法的参数
    • ElementType.CONSTRUCTOR 指定注解只能修饰构造方法
    • ElementType.LOCAL_VARIABLE 指定注解只能修饰局部变量
    • ElementType.TYPE_USE 指定注解能修饰所有的 --JDK1.8后拥有的
  • @Retention:描述注解被保留的阶段
    • RetentionPolicy.SOURCE 注解信息保留在源文件中
    • RetentionPolicy.CLASS 保留在class文件中
    • RetentionPolicy.RUNTIME 注解信息在运行时保留,搭配反射使用 --重点
 
 

内部类

概念

可以将一个类的定义放在里另一个类的内部,这就是内部类。广义上我们将内部类分为四种:成员内部类、静态内部类、局部(方法)内部类、匿名内部类。
 
使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。
 

如何使用内部类

成员内部类

  1. 外部类 内部类
  1. 其它类使用成员内部类
 
3.小结
  • 可以是任何的访问修饰符。
  • 外部类如何访问内部类信息,必须new之后通过(.)操作符访问。
  • 内部类可以直接使用外部类的任何信息,如果属性或者方法发生冲突,调用外部类.this.属性或者方法。
  • 其它类如何访问内部类:
 

静态内部类

1.外部类 内部类
 
  1. 其他类使用成员内部类
 
3、小结【和成员内部类对比理解(区别异同)】
  • 作为静态成员属性存在,可以被任意的权限修饰符修饰
  • 静态内部类的方法只能访问外部类的static关联的信息。
  • 利用 外部类.内部类 引用=new 外部类.内部类(); 然后利用引用.成员信息(属性、方法)调用。
 
 
• 访问内部类的静态信息,直接外部类.内部类.静态信息就可以了。
 

匿名内部类

  1. 定义接口
  1. 匿名内部类使用
3、小结【匿名内部类常常被用来重写某个或某些方法】
  1. 匿名内部类是没有访问修饰符的。
  1. 使用匿名内部类时,这个new之后的类首先是要存在的,其次我们要重写new后的类的某个或某些方法。
 
notion image
notion image
 
 
 
 
 
 
致谢:
💡
有关Notion安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
 
 
日志框架反射
Loading...