进阶day12-自定义注解

This commit is contained in:
2026-04-02 10:49:15 +08:00
parent 3284b84f18
commit 547a9983ad
2 changed files with 65 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
package com.inmind.annotation03;
import java.util.ArrayList;
/*
自定义注解
1.注解的关键字:@interface
2.注解中可以定义属性
定义属性的格式:数据类型 属性名();
设置默认值的属性的格式:数据类型 属性名() default 属性值;
3.注解的属性的类型有限制
八大基本数据类型String Class 注解 枚举
以上类型的一维数组
4.注解中有一个特殊的属性名 value
当属性赋值时如果只有一个value属性在赋值那么value = 省略!!!
5.注解如何使用:它可以修饰类,构造器,属性,方法,注解,参数
6.注解在使用时,属性值必须赋值,默认值可以覆盖
*/
public @interface MyAnnotation {
public static final int age = 1;//注解中的常量
String name() default "张三";//name属性
int value();//value属性
}

View File

@@ -0,0 +1,40 @@
package com.inmind.annotation03;
@MyAnnotation(name = "李四",value = 1)
public class Student {
//属性(成员变量)
@MyAnnotation(name = "王五",value = 2)
String name;
int age;
//无参构造方法
@MyAnnotation(value = 1)
public Student() {
}
//满参构造方法
private Student(String name, int age) {
this.name = name;
this.age = age;
}
//行为(成员方法)
@MyAnnotation(1)
public void show(){
System.out.println("无参无返回值的show方法执行了");
}
@MyAnnotation(1)
private int show(@MyAnnotation(1) int i){
System.out.println("有参有返回值的show方法执行了");
return i+100;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}