注解是JDK1.5之后提供一种新的注释方式,它的格式是:@Annotation

Java最初注释

单行注释 //
多行注释 //
文档注释 /
*/
文档注释放置在:类,方法,属性的上方
其他的注释都放置在:方法内容
注释的作用:
1、解释代码
2、废弃代码

注解实际上就是注释的一种,但是它与注释稍微又有些区别

1、注解在一定程度上有 注释的作用
2、注解可以定义的属性,并且它的这些属性在Java代码依旧可以再次使用(反射)
3、注解可以和第3方类达成一定的约定(约定优于配置)

Java中常见的注解

@Override 重写注解
@Deprecated 废弃代码

  1. public class GentleGirl extends Girl implements Flyable{
  2. @Override
  3. public void cry() {
  4. // TODO Auto-generated method stub
  5. }
  6. @Deprecated
  7. @Override
  8. public void fly() {
  9. // TODO Auto-generated method stub
  10. }
  11. @Override
  12. public String toString() {
  13. // TODO Auto-generated method stub
  14. return super.toString();
  15. }
  16. }

自定义一个注解

Java的注解可能不太够,以后大家会遇到:ORM
Java类 — 某张数据表
每一个对象 — 表中的数据
每一个对象的属性 — 表中的行的字段
定义在注解上方的注解:元注解

元注解

@Documented 文档注解 作用:允许注解可以导出成API
@Target 目标注解 作用:描述注解能够使用的位置
@Retention 注解生命周期,作用:描述注解在 源码,编译,运行期 这3个范围的生命周期

  1. /**
  2. * 作用:该注解的作用是为了为学生讲解如何自定义注解
  3. * @author 蜗牛学院
  4. *
  5. */
  6. @Documented
  7. @Target(value= {ElementType.TYPE,ElementType.METHOD})
  8. @Retention(RetentionPolicy.RUNTIME)
  9. public @interface InitAnnotation {
  10. String effect();
  11. /**
  12. * default 可以给注解 添加默认值
  13. * 添加默认值以后,该属性就不是一个必须属性
  14. * @return
  15. */
  16. String remark() default "";
  17. }
  18. //应用
  19. @InitAnnotation(effect="这是一个女孩类")
  20. public class GentleGirl extends Girl implements Flyable{
  21. @Override
  22. public void cry() {
  23. // TODO Auto-generated method stub
  24. }
  25. @Deprecated
  26. @Override
  27. public void fly() {
  28. // TODO Auto-generated method stub
  29. }
  30. @InitAnnotation(effect="重写了toString()方法",remark="asdf")
  31. @Override
  32. public String toString() {
  33. // TODO Auto-generated method stub
  34. return super.toString();
  35. }
  36. }