25.Java注释
接着说Java注释的写法。这个就很简单了。
在Java中,提供了三种方式的注释方式:单行、多行以及文档注释。
单行和多行注释很容易理解,就是将注释符之间的内容当作注释,在编译和运行时将这部分内容忽略。
在java中,比较特殊的是javadoc注释,包含在这部分里的注释可以通过javadoc命令来自动生成API文档。通过javadoc工具,可以保证程序代码和技术文档的同步。在修改了程序中的注释后,只需要通过javadoc,就可以方便的生成相应的技术文档。
事实上,Java的API文档均是由Java JDK源码中的Java文档注释中,通过javadoc工具生成的。
单行注释就是在程序中注释一行代码,在Java中,将“//”放在需要注释的内容之前就可以了
多行注释是指一次将程序中的多行注释掉,在Java中,使用“/*”和“*/”来将程序中需要注释的内容包含起来,“/*”表示注释部分开始,而“*/”表示注释部分结束
这是一个java注释示例:
CommentTest.java
//这是一个单行注释
/*
这是一个
多行注释
*/
public class CommentTest {
public static void main(String[] args) {
System.out.println("打印输出");
// System.out.println("这行将不会被编译、执行");
}
}
从这个示例中,可以看出,不用担心源码中的注释的增加会影响Java代码的运行。在进行编译后,java字节码中,已经看不到Java注释的影子了。
Java注释只存在于源码中,是帮助人来更好的阅读理解Java源码的。
在Java中,还有一种特别的注释方式:文档注释。
利用这种注释,可以从java源文件中提取这些注释的内容,来产生HTML格式的API文档。文档注释的基本格式如下:
/**
文档注释内容
*/
可以看出,文档注释和多行注释的方式有点类似,主要的区别在于,文档注释的开始标记是“/**”,而多行注释标记的开始标记是“/*”。
因为文档注释最重要的一个功能就是用它来生成HTML格式的API文档,因此,很多的用于HTML格式化的HTML标记也可以用在文档注释中,在从这些注释中提取注释生成HTML文件的时候,在生成的HTML文件中,将使用这些HTML标记来格式化HTML文件内容。
和多行注释不同的另一个地方是,文档注释并不是可以放在java代码的任何地方,javadoc工具在从Java代码中提取注释生成API文档的时候,主要从以下几项内容中提取信息:
包;
公有(public)类与接口;
公有(public)方法和受保护(protected)方法;
公有(public)属性和受保护(protected)属性。
文档注释位置有:
类注释
类注释用于说明整个类的功能、特性等,它应该放在所有的“import”语句之后,在class定义之前。
这个规则也适用于接口(interface)注释。
方法注释
方法注释用来说明方法的定义,比如,方法的参数、返回值以及说明方法的作用等。方法注释应该放在它所描述的方法定义前面,紧靠着这个方法。
属性注释
默认情况下,javadoc只对公有(public)属性和受保护属性(protected)产生文档----通常是静态常量(关于“静态”、“公有”、“受保护”的概念,请看后续章节内容)。
包注释
类、方法、属性的注释都直接放到java的源文件中,而对于包的注释,无法放到java文件中去,只能通过在包对应的目录中添加一个package.html的文件来达到这个目的。当生成HTML文件时,package.html文件的<BODY>和</BODY>部分的内容将会被提取出来当作包的说明。关于包注释,后面还会有更进一步的解释。
概要注释
除了包注释外,还有一种类型的文档无法从java源文件中提取,那就是对所有类文件提供概要说明的文件。同样的,也可以为这类注释单独新建一个HTML文件,这个文件的名字为“overview.html”,它得<BODY>和</BODY>标记之间的内容都会被提取。
在javadoc注释中,常用@来表示一个javadoc标记,常用的javadoc标记如下:
@author:作者
@version:版本
@docroot:表示产生文档的根路径
@deprecated:不推荐使用的方法
@param:方法的参数类型
@return:方法的返回类型
@see:”参见”,用于指定参考的内容
@exception:抛出的异常
@throws:抛出的异常,和exception同义
在写好文档注释后,就可以利用javadoc命令工具生产该类的Java文档注释了,格式为html格式文档。
如果使用eclipse等IDE工具开发的话,都有相应的功能,可以为整个Java工程的全部源代码生成html格式的api文档。
上一篇: 23.面向对象编程术语
下一篇: 22.Java开发中JDK常用的包