Java常用的注释大概分为三种:单行注释、多行注释、文档注释。
单行注释
单行注释,也是最常用的一种注释,有一对正斜杠//开始,直至本行结尾。有的同学可能跟我一样常常弄不清正反斜杠的区别,简单说明一下,头朝右就是正斜杠,朝左就是反斜杠。
示例:
package annotate;
public class Text {
public static void main(String[] args) {
//本行为注释行,写啥都行,虚拟机看不到的
System.out.println("Hello Word!");
}
}
多行注释
有时候,说明文字较长,单行写不下。当然,遇到这种情况,你也可以每一行说明文字都注释一个//,除此之外,还有一个方式是多行注释。多行注释以/* 开始,以 */结尾,中间允许跨行。
示例:
package annotate;
public class Text {
public static void main(String[] args) {
/*
* 没错!
* 又是这个熟悉的 Hello Word类
*
*/
System.out.println("Hello Word!");
}
}
文档注释
我觉得最高级的注释方法,可以自动地生成文档。这种注释方法以/** 开始,以 */结尾,中间允许跨行,允许使用标记,标记由@开始,下文会有详细解释。既然可以自动的生成文档,那么这种注释方式使用起来就没有上面两种方式那么任性。
文档生成功能由JDK自带的一个叫做javadoc的工具提供。它将会从以下几个特性中抽取信息:
- 包
- 公有类和接口
- 公有的和受保护的构造器及方法
- 公有的和受保护的域
包与概述注释:
这两种特性的注释相对特殊,因为没有相应的源文件可以直接注释。包特性的注释有两种方式:
① 在包目录中建立一个名为package.html的文件,在<body></body>标签中的所有内容会被抽取出来生成包注释;
(这种方式需要注意编码格式的问题)
② 在包目录下提供一个名为package-info.java的文件,并且必须在Java文件提供使用/** 和 */界定的Javadoc注释,注释跟在包语句之后,同时这个Java文件不应该包含更多的代码和注释。
而整个project的概述的注释方式与包类似,需要在所有源文件的根目录,创建一个名为overview.html的文件,并在其中的<body></body>标签下添加注释内容(同样需要注意编码)。
类与接口注释
类与接口的注释,必须放在import语句之后,类定义语句之前。
示例:
package annotate;
import java.awt.*;
/**
* 因为我懒,所以还是这个Hello Word类
* @author zheng 这个标记用来标明作者
*
*/
public class Text {
public static void main(String[] args) {
System.out.println("Hello Word!");
}
}
方法注释
每一个方法的注释必须放在所描述的方法之前,同时具备一些方法专属的标记,稍后一起讲。
示例:
package annotate;
import java.awt.*;
public class Text {
/**
* 这里是程序的入口
* @param args
*/
public static void main(String[] args) {
System.out.println("Hello Word!");
}
}
域注释
基本上只需要对公有域进行注释,再具体一点,通常只对静态常量进行文档注释。
示例:
package annotate;
public class Text {
/**
* 这是一个公有的静态常量
*/
public static final int NUMBER_TEXT = 1;
public static void main(String[] args) {
System.out.println("Hello Word!");
}
}
标记
这里就直接上代码了:
package annotate;
/**
* =============================
* 这里是类注释标记
* =============================
* @author zheng
* 这之前提过了,用来标记类的作者
*
* @version 1.01
* 这个用来标记版本描述
*
* @since version 1.00
* 这个用来标记这个类的来源,比如我这里用来描述本类是始于1.00版本
*
* ==============================
* 以下是通用标记
* ==============================
* @deprecated 这个类/方法/变量不再使用了
* 这个标记还可以通过@see标记链接到推荐使用的地方
*
* @see annotate.A#getCode()
* 这个标签可以在doc文档中添加一个链接,要注意类名与方法名/变量名之间的分隔要用(#)
* 同时它还有另外一种形式的链接方式,就是添加一个<a>标签,比如:
* @see <a href="www.baidu.com">不明白的自行百度,会翻墙的可以谷歌</a>
*/
public class Text {
/**
* ==============================
* 以下是方法专属标记
* ==============================
* @param args
* 这个是标记方法参数描述的
*
* @return 空
* 这个是描述方法返回值的
*
* @throws RuntimeExciption
* 这个标记用来描述方法可能抛出的的异常
*
* 方法的标记是不是还挺简单的,对于封装好的方法而言,只需要了解:
* 传什么参数,会得到一个什么样的返回值,可能会出什么问题
* 就足够啦
*
*/
public static void main(String[] args) {
System.out.println("Hello Word!");
}
}
生成doc文档
打开cmd,切换到源文件根目录,如果是一个项目的话,那就切换到项目文件夹下src目录里,然后执行如下命令就可以啦:
javadoc -d doc文档目录(你要保存的文档的目录) 包名(如果有多个包,就包名1 包名2 .. 如果是默认包就 *.java)
好了,以上就是关于JAVA中注释的基本应用,如果有什么说的不对的,还请各位大佬斧正。
参考资料:Java 核心技术 卷一