更新时间:2020-06-17 14:29:40 来源:极悦 浏览1843次
本文不讨论如何使用javadoc工具自动生成文档的方法,而是主要探讨应该如何去写文档注释
文档注释概览
“文档注释”(Java Doc Comments)是专门为了用javadoc工具自动生成文档而写的注释,它是一种带有特殊功能的注释。
文档注释与一般注释的最大区别在于起始符号是/**而不是/*或//。
比如:
/**
*这是文档注释
*/
/*
*这是一般注释
*/
//这是一般注释
在一些IDE(比如Eclipse)中,文档注释会以不同于普通注释的颜色高亮显示。
此外,文档注释只负责描述类(class)、接口(interface)、方法(method)、构造器(constructor)、成员字段(field)。相应地,文档注释必须写在类、接口、方法、构造器、成员字段前面,而写在其他位置,比如函数内部,是无效的文档注释。
文档注释采用HTML语法规则书写,支持HTML标记(tag),同时也有一些额外的辅助标记。需要注意的是,这些标记不是给人看的(通常他们的可读性也不好),他们的作用是为了javadoc工具更好地生成最终文档。所以,虽然有些标记写起来麻烦且看着不直观,还是要老老实实按规矩写滴。
文档注释的基本内容
一个文档注释由两部分组成:
/**
*描述部分(description)
*
*标记部分(block tags)
*/
描述部分自然不用多说,所谓的标记符号指的是 param, return, see之类的,相信只要看过开源java代码的话应该都见过。
下面是一个描述一个方法的文档注释的例子
/**
*Returns an Image object that can then be painted on the screen.
*The url argument must specify an absolute{ link URL}.The name
*argument is a specifier that is relative to the url argument.
*<p>
*This method always returns immediately,whether or not the
*image exists.When this applet attempts to draw the image on
*the screen,the data will be loaded.The graphics primitives
*that draw the image will incrementally paint on the screen.
*
* param url an absolute URL giving the base location of the image
* param name the location of the image,relative to the url argument
* return the image at the specified URL
* see Image
*/
public Image getImage(URL url,String name){
try{
return getImage(new URL(url,name));
}catch(MalformedURLException e){
return null;
}
}
需要注意的几点:
1.第一行以特殊的文档定界符/**开头
3.在描述段落和标记段落之间空一行,描述段落和标记段落必须分开,不能揉在一起,描述段落必须在标记段落之前
4.每一行注释都应该跟后面描述的类、方法等保持同样距离的缩进,比如这样就是错误的
class Image{
/**
*没有跟下面的方法保持同样的缩进
*/
public Image getImage(URL url,String name){
...
}
}
5.从javadoc 1.4之后,除第一行和最后一行外,可以省略其他行的前导星号(*),但是一般不这么做
描述部分(Description)
描述部分的第一行应该是一句对类、接口、方法等的简单描述,这句话最后会被javadoc工具提取并放在索引目录中。
怎么界定第一句话到哪结束了呢?答案是跟在第一个句号(英文标点)之后的tab、空行或行终结符规定了第一句的结尾。
例如下面这句注释,第一句的结尾是Prof.:
/**
*This is a simulation of Prof.Knuth's MIX computer.
*/
除了普通的文本之外,描述部分可以使用:
1.HTML语法标签,例如<b>xxx</b>
2.javadoc规定的特殊标签,例如{ link xxx}。标签的语法规则是:{ 标签名标签内容}
需要注意的地方:
1.标签在有javadoc工具生成文档时会转化成特殊的内容,比如{ link URL}标签会被转化成指向URL类的超链接
2.如果注释包含多段内容,段与段之间需要用<p>分隔,空行是没用的
3.最后结尾行*/和起始行不同,这里只有一个星号
4.为了避免一行过长影响阅读效果,务必将每行的长度限制在80个字符以内
5.善用javadoc工具的复制机制避免不必要的注释:
如果一个方法覆盖了父类的方法或实现了接口种的方法,那么javadoc工具会在该注释里添加指向原始方法的链接,此外如果新方法没有注释,那么javadoc会把原始方法的注释复制一份作为其注释,但是如果新方法有注释了,就不会复制了。
注释风格:
1.使用<code>关键字</code>来强调关键字,建议强调的内容有:java关键字、包名、类名、方法名、接口名、字段名、参数名等
2.控制{ link xxx}的数量,太多的链接会使文档的可读性很差,因为读者总是跳来跳去。不要出现相同的链接,同样的链接只保留第一个;不要为java自带的内容或是常识性的内容提供链接
3.描述一个方法时,应当只保留方法名字,不要附带方法的参数。比如有个方法是add(Object obj),那么用add指代该方法即可,而不是add(Object obj)
4.英文注释可以是短语也可以是句子。如果是句子,首字母要大写,如果是短语,首字母小写。
5.英文注释使用第三人称,而不是第二人称。比如:
/**
*Gets the label(建议)
*/
/**
*Get the label(不建议)
*/
6.方法的注释应该以动词或动词词组开头,因为方法是一个动作。比如:
/**
*Gets the label of this button(建议)
*/
/**
*This method gets the label(不建议)
*/
7.当描述类、接口、方法这类的概念时,可以不用指名"类"、"接口"、"方法"这些词语,比如:
/**
*A button label(建议)
*/
/**
*This field is a button label(不建议)
*/
8.英文使用this而不是the指代当前类,比如:
/**
*Gets the toolkit for this component(建议)
*/
/**
*Gets the toolkit for the component(不建议)
*/
9.API名应该是能够简单自我说明的,如果文档注释只是简单重复API的名称还不如没有文档,所以文档注释应该至少提供一些额外信息,否则干脆不要注释
10.英文注释避免拉丁风格的缩写。比如使用"also knwon as"而不是"aka",使用"that is"或"to be specific"而不是"i.e.",使用"for example"而不是"e.g.",使用"in other words"或"namely"而不是"viz."
Java技术内容
Java中的注释:
以上就是极悦java培训机构的小编针对“编程基础分享,Java文件注释”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习