3
3
<!-- Appendix: Javadoc -->
4
4
# 附录:文档注释
5
5
6
- 编写代码文档的最大问题可能是维护该文档。如果文档和代码是分开的,那么每次更改代码时更改文档都会变得很繁琐 。解决方案似乎很简单:将代码链接到文档。最简单的方法是将所有内容放在同一个文件中。然而,要完成这完整的画面,您需要一个特殊的注释语法来标记文档,以及一个工具来将这些注释提取为有用的表单中。 这就是Java所做的。
6
+ 编写代码文档的最大问题可能是维护该文档。如果文档和代码是分开的,每次更改代码时都要很繁琐地再去更改文档 。解决方案似乎很简单:将代码链接到文档。最简单的方法是将所有内容放在同一个文件中。然而,要完成这个任务,需要一个特殊的注释语法来标记文档,以及一个工具将这些注释提取为有用的形式, 这就是Java所做的。
7
7
8
8
提取注释的工具称为Javadoc,它是 JDK 安装的一部分。它使用Java编译器中的一些技术来寻找特殊的注释标记。它不仅提取由这些标记所标记的信息,还提取与注释相邻的类名或方法名。通过这种方式,您就可以用最少的工作量来生成合适的程序文档。
9
9
10
- Javadoc输出为一个html文件,您可以使用web浏览器查看它。对于Javadoc,您有一个简单的标准来创建文档,因此您可以期望所有Java libraries都有文档 。
10
+ Javadoc的输出是一个html文件,可以用web浏览器查看它。有了Javadoc,就有一个简单的标准来创建文档,因此你可以期望所有Java库都有文档 。
11
11
12
- 此外,您可以编写自己的Javadoc处理程序doclet,对于 Javadoc(例如,以不同的格式生成输出 )。
12
+ 此外,你可以编写自己的Javadoc处理程序doclet,对javadoc处理的信息做特殊的处理(例如以不同的格式生成输出 )。
13
13
14
14
以下是对Javadoc基础知识的介绍和概述。在 JDK 文档中可以找到完整的描述。
15
15
16
16
## 句法规则
17
17
18
- 所有Javadoc指令都发生在以 ** /**** 开头(但仍然以 *** /** 结尾)的注释中。
19
-
20
- 使用Javadoc有两种主要方法:
21
-
22
- 嵌入HTML或使用“doc标签”。独立的doc标签是指令它以 ** @** 开头,放在注释行的开头。(然而,前面的 **** * 将被忽略。)可能会出现内联doc标签
23
-
24
- Javadoc注释中的任何位置,也可以,以一个 ** @** 开头,但是被花括号包围。
18
+ 所有Javadoc指令都发生在以 ` /** ` 开头(但仍然以 ` */ ` )结尾)的注释中。使用Javadoc有两种主要方法:嵌入HTML或使用“doc标签”。独立的doc标签是以 ** @** 开头并且放在注释行的开头的指令(注释行开头的` * ` 将被忽略)。内联的doc标签可以出现在Javadoc注释的任何位置,它也以 ` @ ` 开头,但被花括号包围。
25
19
26
20
有三种类型的注释文档,它们对应于注释前面的元素:类、字段或方法。也就是说,类注释出现在类定义之前,字段注释出现在字段定义之前,方法注释出现在方法定义之前。举个简单的例子:
27
21
@@ -37,23 +31,19 @@ public class Documentation1 {
37
31
38
32
```
39
33
40
- Javadoc处理注释文档仅适用于 ** 公共** 和 ** 受保护** 的成员。
41
-
42
- 默认情况下,将忽略对 ** 私有成员** 和包访问成员的注释(请参阅[ "隐藏实现"] ( /docs/book/07-Implementation-Hiding.md ) 一章),并且您将看不到任何输出。
43
-
44
- 这是有道理的,因为仅客户端程序员的观点是,在文件外部可以使用 ** 公共成员** 和 ** 受保护成员** 。 您可以使用 ** -private** 标志和包含 ** 私人** 成员。
34
+ Javadoc仅处理 ** 公共成员** 和 ** 继承访问权限成员** 的注释文档。 默认情况下,将忽略对 ** 私有成员** 和** 包访问权限成员** 的注释(请参阅[ "隐藏实现"] ( /docs/book/07-Implementation-Hiding.md ) 一章),并且你将看不到任何输出。 这是有道理的,因为从客户端程序员的视角看,在文件外部只有 ** 公共成员** 和 ** 继承访问权限成员** 是可用的。 你可以使用 ** -private** 标志来包含 ** 私有成员** 。
45
35
46
36
要通过Javadoc处理前面的代码,命令是:
47
37
48
38
``` cmd
49
39
javadoc Documentation1.java
50
40
```
51
41
52
- 这将产生一组HTML文件。 如果您在浏览器中打开index .html,您将看到结果与所有其他Java文档具有相同的标准格式,因此用户对这种格式很熟悉 ,并可以轻松地浏览你的类。
42
+ 这将产生一组HTML文件。如果你在浏览器中打开index .html,将看到输出的结果与其他Java文档具有相同的标准格式,因此使用者对这种格式很熟悉 ,并可以轻松地浏览你的类。
53
43
54
44
## 内嵌 HTML
55
45
56
- Javadoc传递未修改的HTML代码,用以生成的HTML文档 。这使你可以充分利用HTML。但是,这样做的主要目的是让你格式化代码 ,例如:
46
+ Javadoc不作修改地将HTML代码传递到生成的HTML文档 。这使你可以充分利用HTML。但是这样做的主要目的是让你格式化代码 ,例如:
57
47
58
48
``` java
59
49
// javadoc/Documentation2.java
@@ -64,7 +54,7 @@ Javadoc传递未修改的HTML代码,用以生成的HTML文档。这使你可
64
54
public class Documentation2 {}
65
55
```
66
56
67
- 您你也可以像在其他任何Web文档中一样使用HTML来格式化说明中的文字 :
57
+ 你也可以像在其他任何Web文档中一样使用HTML来格式化说明中的文字 :
68
58
69
59
``` java
70
60
// javadoc/Documentation3.java
@@ -78,7 +68,7 @@ public class Documentation2 {}
78
68
public class Documentation3 {}
79
69
```
80
70
81
- 请注意,在文档注释中,Javadoc删除了行首的星号以及前导空格 。 Javadoc重新格式化了所有内容,使其符合标准文档的外观。不要将诸如 \ < h1\> 或 \ < hr\> 之类的标题用作嵌入式HTML,因为Javadoc会插入自己的标题,后插入的标题将对其生成的文档产生干扰 。
71
+ 请注意,在文档注释中,Javadoc会删除行首的星号以及前导空格 。 Javadoc重新格式化了所有内容,使其符合文档的标准外观。不要将 ` <h1> ` 和 ` <hr> ` 之类的标题用作嵌入式HTML,因为Javadoc会插入自己的标题,你插入的标题将对其产生干扰 。
82
72
83
73
所有类型的注释文档(类,字段和方法)都可以支持嵌入式HTML。
84
74
@@ -88,7 +78,7 @@ public class Documentation3 {}
88
78
89
79
### @see
90
80
91
- 这个标签可以将其他的类连接到文档中, Javadoc 将使用 @see 标记超链接到其他文档中,形式为 :
81
+ 这个标签可以将其它的类链接到本文档中。 Javadoc 用 ` @see ` 标签产生链接到其它类的的HTML。格式为 :
92
82
93
83
``` java
94
84
@see classname
@@ -144,7 +134,7 @@ public class Documentation3 {}
144
134
@param parameter- name description
145
135
```
146
136
147
- 其中parameter-name是方法参数列表中的标识符, description 是可以在后续行中继续的文本。当遇到新的文档标签时,说明被视为完成。 @param 标签的可以任意使用,大概每个参数一个 。
137
+ 其中 ` parameter-name ` 是方法参数列表中的标识符, ` description ` 是可以在后续行中继续的文本。当遇到新的文档标签时,这个说明被视为结束。 ` @param ` 标签可以使用任意次,大概每个参数使用一次 。
148
138
149
139
### @return
150
140
@@ -164,11 +154,11 @@ public class Documentation3 {}
164
154
@throws fully- qualified- class- name description
165
155
```
166
156
167
- fully-qualified-class-name 给出明确的异常分类名称 ,并且 description (可延续到后面的行内)告诉你为什么这特定类型的异常会在方法调用后出现 。
157
+ * fully-qualified-class-name* 给出异常类的确切名称 ,并且 description (可在后面的行内继续展开)告诉你为什么这个特定类型的异常会在方法调用后出现 。
168
158
169
159
### @deprecated
170
160
171
- 这表示已被改进的功能取代的功能 。deprecated 标记表明你不再使用此特定功能,因为将来有可能将其删除。标记为@不赞成使用的方法会导致编译器在使用时发出警告 。在Java 5中,@deprecated Javadoc 标记已被 @Deprecated 注解取代 (在[ 注解] ( ) 一章中进行了描述)。
161
+ 表示已被改进的功能取代的功能 。deprecated 标记建议你不要再使用此功能,因为将来它有可能被删除。使用标记为 ` @deprecated ` 的方法会使编译器发出警告 。在Java 5中,` @deprecated ` Javadoc 标记被 ` @Deprecated ` * 注解 * 取代 (在[ 注解] ( ) 一章中进行了描述)。
172
162
173
163
## 文档示例
174
164
0 commit comments