森纵培训第二十四天课程总结

来源:互联网 发布:模拟人生3 mac 编辑:程序博客网 时间:2024/05/17 01:21


注解:
注解与注释?
注解不是注释!两种情形,或者说没有多大的相同之处。
注释:对代码的解释,不参与编译。
在编译源代码时,不会参与编译,注释存在于否,与最终生成的可执行文件没有影响 。

c语言中只支持一种类型的注释,就是“段落注释”或“多行注释”:
/*
    注释内容行1
 注释内容行2
*/
有一些要求,就是注释内容中不能再包含多行注释。

在C++中支持两种类型的注释:
多行注释与C中相同
另增加了一个“单行注释”,将注释内容写在代码的右边;
例:int number = 10; //定义一个整型变量,并且赋值为10
与C中的注释相比,单行注释更加通用,因为比较灵活。

在Java和C#中,它们都支持三种类型的注释;
除了C++中提供的两类外,又增加了一种“文档注释”,其作用是用来生成注释所在对象的帮助文档。
/**
 @author gaotm
*/
以上说到的三种注释,其主要作用是用来对代码进行解释,对于生成的最终可执行代码不会产生任何影响。

注解:
5.0版本新增加的功能。
用到的注解功能有关的对象都在java.lang.annotation包中。
注解与反射功能息息相关。

与注释不同的是,注解会对代码的各个阶段产生不同的影响。或者影响程序的编译,或者影响程序的最终结果。
注解会对Java程序的哪几个阶段产生影响?
三个阶段:
以.java为后缀的源代码文件,注解会对这个阶段产生影响;
  源代码级别的注解:SOURCE
用javac.exe命令对源文件进行编译,会生成.class文件,注解会对这个阶段产生影响;
 字节码级别的注解:CLASS
用java.exe命令对字节码文件(class文件)进行解释(在jvm上运行),生成最终结果。注解会对这个阶段产生影响。
 虚拟机级别的注解:RUNTIME
将注解功能抽象为一种称为“注解”的对象,可以建立这样的对象。
标准类库提供的标准注解:
@Override      只用来对方法进行注解,解决编译时的问题。
@Deprecated    对类,对方法都能进行注解,解决类或方法过时的问题
@SuppressWarnings  解决对于警告的忽略问题,压制各种各样的警告。


如何得到一个对象的注解?
当自定义一个注解,而本身没有设置@Target注解时,则支持所有对象类型。
设计一个综合注解的测试类:
@MyAnnotation
package com.sunzone.gao.annotations;
class TestAnnotationClass {
 @MyAnnotation
 private int va;

 @MyAnnotation
 private static int counter;

 @MyAnnotation
 public TestAnnotationClass() {
 }

 @MyAnnotation
 public TestAnnotationClass(int va) {
  this.va = va;
 }

 @MyAnnotation
 public float test(@MyAnnotation int x, @MyAnnotation float y) {
  return x + y;
 }
}
查看以上的测试类TestAnnotationClass,共有若干类元数据对象被同一个注解进行处理,分别是:
实例字段对象
静态实例字段对象
类对象
构造器对象
方法对象
方法中的参数对象

注解对象中的成员有哪些?
注解中没有方法!
只有字段成员,它的设置是通过方法的样式进行的。
方法参数中的注解,因为参数Parmater对象是属于方法Method对象的,所以要用到Method类中的一个
方法:getParameterAnnotations()




0 0
原创粉丝点击