/* * 一、注解:jdk1.5后出的特性,是一个元数据,是一个代码级别的说明。 * String name="123"; 注释不会被jvm解释执行,而注解会被jvm解释执行 * 注解在java中都是以“@注解名”的形式呈现 * 1、java内置的常用注解: * @Override:用于注解方法,说明该方法必须是一个重写方法 * @Deprecated:用于注解属性、方法、类。说明已经过时,不建议继续使用 * @SuppressWarnings():用于抑制编译器警告 * 2、自定义注解: * * public @interface MyAnnotation{} * * 3、元注解: *@Retention:用于说明注解的生命周期 * @Target:用于说明注解可以修饰哪些程序元素 * @Documented:用于说明注解可以随之生成说明文档。注意:注解的生命周期必须是RUNTIME * @Inherited:用于说明注解用于继承性 * */
* 一、注解:jdk1.5后出的特性,是一个元数据,是一个代码级别的说明。 * String name="123"; 注释不会被jvm解释执行,而注解会被jvm解释执行 * 注解在java中都是以“@注解名”的形式呈现 * 1、java内置的常用注解: * @Override:用于注解方法,说明该方法必须是一个重写方法 * @Deprecated:用于注解属性、方法、类。说明已经过时,不建议继续使用 * @SuppressWarnings():用于抑制编译器警告
package JavaLearning;
/*
* 一、注解:jdk1.5后出的特性,是一个元数据,是一个代码级别的说明。
* String name="123"; 注释不会被jvm解释执行,而注解会被jvm解释执行
* 注解在java中都是以“@注解名”的形式呈现
* 1、java内置的常用注解:
* @Override:用于注解方法,说明该方法必须是一个重写方法
*
* 2、自定义注解:
*
* 3、元注解:
* */
public class AnnotationTest {
public static void main(String[] args) {
Person1 p=new Person1();
p.sleep();
}
}
@Deprecated
class Person1{
String name;
int age;
public Person1() {
}
public Person1(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Deprecated
public void sleep(){
System.out.println("睡觉");
}
@Override
public String toString() {
return "Person1{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
class student extends Person1{
@Override
public void sleep(){
}
}
package JavaLearning;
import java.util.ArrayList;
import java.util.List;
/*
* 一、注解:jdk1.5后出的特性,是一个元数据,是一个代码级别的说明。
* String name="123"; 注释不会被jvm解释执行,而注解会被jvm解释执行
* 注解在java中都是以“@注解名”的形式呈现
* 1、java内置的常用注解:
* @Override:用于注解方法,说明该方法必须是一个重写方法
* @Deprecated:用于注解属性、方法、类。说明已经过时,不建议继续使用
* @SuppressWarnings():用于抑制编译器警告
* 2、自定义注解:
*
* 3、元注解:
* */
public class AnnotationTest {
public static void main(String[] args) {
Person1 p=new Person1();
p.sleep();
@SuppressWarnings("unused")
List list=new ArrayList();
}
}
@Deprecated
class Person1{
String name;
int age;
public Person1() {
}
public Person1(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Deprecated
public void sleep(){
System.out.println("睡觉");
}
@Override
public String toString() {
return "Person1{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
class student extends Person1{
@Override
public void sleep(){
}
}
2、自定义注解: * * public @interface MyAnnotation{}
package JavaLearning;
import java.util.ArrayList;
import java.util.List;
/*
* 一、注解:jdk1.5后出的特性,是一个元数据,是一个代码级别的说明。
* String name="123"; 注释不会被jvm解释执行,而注解会被jvm解释执行
* 注解在java中都是以“@注解名”的形式呈现
* 1、java内置的常用注解:
* @Override:用于注解方法,说明该方法必须是一个重写方法
* @Deprecated:用于注解属性、方法、类。说明已经过时,不建议继续使用
* @SuppressWarnings():用于抑制编译器警告
* 2、自定义注解:
*
* public @interface MyAnnotation{}
*
* 3、元注解:
* */
public class AnnotationTest {
public static void main(String[] args) {
Person1 p=new Person1();
p.sleep();
@SuppressWarnings("unused")
List list=new ArrayList();
}
}
@MyAnnotation("hello")
@Deprecated
class Person1{
String name;
int age;
public Person1() {
}
public Person1(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@MyAnnotation
public void eat(){
}
@Deprecated
public void sleep(){
System.out.println("睡觉");
}
@Override
public String toString() {
return "Person1{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
class student extends Person1{
@Override
public void sleep(){
}
}
package JavaLearning;
/*
* 自定义注解
* */
public @interface MyAnnotation {
String value() default "morenzhi";
}
元注解: