我们知道Java中有三种注释语句:1.//用于单行注释。
2./*...*/用于多行注释,从/*开始,到*/结束,不能嵌套。3./**...*/则是为支持jdk工具javadoc.exe而特有的注释语句。
javadoc工具能从java源文件中读取第三种注释,并能识别注释中用@标识的一些特殊变量(见表),制作成Html格式的类说明文档。 javadoc不但能对一个java源文件生成注释文档,而且能对目录和包生成交叉链接的html格式的类说明文档,十分方便。
注释中可以出现的关键字,以@开头:
@author 作者名
@version 版本标识
@parameter 参数名及其意义
@since 最早出现的JDK版本
@return返回值
@throws异常类及抛出条件
@deprecated 引起不推荐使用的警告
@see 交叉参考
下面是javadoc.exe的用法
C:\java>javadoc -help
C:\java>javadoc -help
usage: javadoc [options] [packagenames] [sourcefiles] [classnames] [@files]-overview Read overview documentation from HTML file-public Show only publicclasses and members-protected Show protected/public classes and members (default)-package Show package/protected/publicclasses and members-privateShow all classes and members-help Display command line options and exit-doclet Generate output via alternate doclet-docletpath Specify where to find doclet classfiles-sourcepath Specify where to find source files-classpath Specify where to find user classfiles-exclude Specify a list of packages to exclude-subpackages Specify subpackages to recursively load-breakiterator Compute 1st sentence with BreakIterator-bootclasspath Override location of class files loaded by the bootstrap classloader-source Provide source compatibility with specified release-extdirs Override location of installed extensions-verbose Output messages about what Javadoc is doing-locale Locale to be used, e.g. en_US or en_US_WIN-encoding Source file encoding name-J Pass directly to the runtime system
Provided by Standard doclet:-d Destination directory foroutput files-use Create class and packageusage pages-version Include @version paragraphs-author Include @author paragraphs-docfilessubdirs Recursively copy doc-file subdirectories-splitindex Split index into one file per letter-windowtitle Browser window title forthe documenation-doctitle Include title forthe overview page-header Include header text foreach page-footer Include footer text foreach page-bottom Include bottom text foreach page-link Create links to javadoc output at
-linkoffline Link to docs at using package list at
-excludedocfilessubdir :.. Exclude any doc-files subdirectories with given name.-group :.. Group specified packages together in overviewpage-nocomment Supress description and tags, generate only declarations.-nodeprecated Do not include @deprecated information-noqualifier ::... Exclude the list of qualifiers from the output.-nosince Do not include @since information-nodeprecatedlist Do not generate deprecated list-notree Do not generate classhierarchy-noindex Do not generate index-nohelp Do not generate help link-nonavbar Do not generate navigation bar-quiet Do not display status messages to screen-serialwarn Generate warning about @serial tag-tag ::Specify single argument custom tags-taglet The fully qualified name of Taglet to register-tagletpath The path to Taglets-charset Charset for cross-platform viewing of generated documentation.-helpfile Include file that help link links to-linksource Generate source in HTML-stylesheetfile File to change style of the generated documentation-docencoding Output encoding name
C:\java>下面请看用javadoc生成的文档(请点击本页上面的观看演示链接)
生成文档:
C:\java>javadoc JavadocDemo.java
Loading source file JavadocDemo.java...
Constructing Javadoc information...
Standard Doclet version1.4.2_03
Generating constant-values.html...
Building treeforall the packages and classes...
Building indexforall the packages and classes...
Generating overview-tree.html...
Generating index-all.html...
Generating deprecated-list.html...
Building indexforall classes...
Generating allclasses-frame.html...
Generating allclasses-noframe.html...
Generating index.html...
Generating packages.html...
Generating JavadocDemo.html...
JavadocDemo.java:11: warning -Tag @see: reference not found: javax.swing.Japplet
Generating serialized-form.html...
Generatingpackage-list...
Generating help-doc.html...
Generating stylesheet.css...1warning
C:\java>附源文件:import java.applet.*;import java.awt.*;import java.awt.event.*;/***JavadocDemo.java,一个显示JavaDoc注释的Applet
*
注意这只是HelloApplet的一个带注释的版本
*@seejava.applet.Applet
*@seejavax.swing.Japplet*/
public class JavadocDemo extendsApplet{/**init()是一个Applet方法,由浏览器调用进行初始化
* 只调用一次
*@return无*/
public voidinit(){//创建并添加一个按钮//其它什么也不做
Button b;
b=new Button("Hello");
add(b);
show();
}/**paint() 是一个AWT组件方法,在组件要绘制时调用,只
* 是在Applet的窗口中画带色的方框。
* 参数 g一个java.awt.Graphics
* 用在所有绘制方法中*/
public voidpaint(Graphics g){int w=getSize().width,h=getSize().height;
g.setColor(Color.yellow);
g.fillRect(0,0,w/2,h);
g.setColor(Color.green);
g.fillRect(w/2,0,w,h);
g.setColor(Color.black);
g.drawString("Welcome to Java",50,50);
}/**show()用于使组件可见,此方法在
* JDK1.1中被归入不推荐使用
*@since1.0
*deprecated换用setVisible(true)*/
public voidshow(){//由于覆盖了show(),此applet 不能显示
}/**Applet必须有一个公共的无参数构造方法
*@throwsjava.lang.IllegalArgumentException*/
publicJavadocDemo(){if(new java.util.Date().getDay()==0){throw new IllegalArgumentException("Never on a Sunday");
}
}
}