友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
一世书城 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

Java编程思想第4版[中文版](PDF格式)-第33章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




 “/*”起头,随后是注释内容,并可跨越多行,最后用一个“*/”结束。注意许多程序员在连续注释内容的 

每一行都用一个“*”开头,所以经常能看到象下面这样的内容:  

  

/* 这是  

* 一段注释,  

* 它跨越了多个行  

*/  

  

但请记住,进行编译时,/*和*/之间的所有东西都会被忽略,所以上述注释与下面这段注释并没有什么不 

同:  

  

/* 这是一段注释,  

它跨越了多个行 */  

  

第二种类型的注释也起源于C++。这种注释叫作“单行注释”,以一个“//”起头,表示这一行的所有内容 

都是注释。这种类型的注释更常用,因为它书写时更方便。没有必要在键盘上寻找“/”,再寻找“*”(只 

需按同样的键两次),而且不必在注释结尾时加一个结束标记。下面便是这类注释的一个例子:  

  

// 这是一条单行注释  



                                                                         55 


…………………………………………………………Page 57……………………………………………………………

2。8。1  注释文档  



对于Java 语言,最体贴的一项设计就是它并没有打算让人们为了写程序而写程序——人们也需要考虑程序的 

文档化问题。对于程序的文档化,最大的问题莫过于对文档的维护。若文档与代码分离,那么每次改变代码 

后都要改变文档,这无疑会变成相当麻烦的一件事情。解决的方法看起来似乎很简单:将代码同文档“链 

接”起来。为达到这个目的,最简单的方法是将所有内容都置于同一个文件。然而,为使一切都整齐划一, 

还必须使用一种特殊的注释语法,以便标记出特殊的文档;另外还需要一个工具,用于提取这些注释,并按 

有价值的形式将其展现出来。这些都是Java 必须做到的。  

用于提取注释的工具叫作javadoc。它采用了部分来自Java 编译器的技术,查找我们置入程序的特殊注释标 

记。它不仅提取由这些标记指示的信息,也将毗邻注释的类名或方法名提取出来。这样一来,我们就可用最 

轻的工作量,生成十分专业的程序文档。  

javadoc输出的是一个 HTML 文件,可用自己的Web 浏览器查看。该工具允许我们创建和管理单个源文件,并 

生动生成有用的文档。由于有了jvadoc,所以我们能够用标准的方法创建文档。而且由于它非常方便,所以 

我们能轻松获得所有Java 库的文档。  



2。8。2  具体语法  



所有 javadoc命令都只能出现于“/**”注释中。但和平常一样,注释结束于一个“*/”。主要通过两种方式 

来使用 javadoc:嵌入的HTML ,或使用“文档标记”。其中,“文档标记”(Doc tags)是一些以“@”开头 

的命令,置于注释行的起始处(但前导的“*”会被忽略)。  

有三种类型的注释文档,它们对应于位于注释后面的元素:类、变量或者方法。也就是说,一个类注释正好 

位于一个类定义之前;变量注释正好位于变量定义之前;而一个方法定义正好位于一个方法定义的前面。如 

下面这个简单的例子所示:  

  

/** 一个类注释 */  

public class docTest {  

/** 一个变量注释 */  

public int i;  

/** 一个方法注释 */  

public void f() {}  

}  

  

注意 javadoc 只能为 public (公共)和protected (受保护)成员处理注释文档。“private”(私有)和 

 “友好”(详见5 章)成员的注释会被忽略,我们看不到任何输出(也可以用…private 标记包括private 成 

员)。这样做是有道理的,因为只有public 和protected 成员才可在文件之外使用,这是客户程序员的希 

望。然而,所有类注释都会包含到输出结果里。  

上述代码的输出是一个 HTML 文件,它与其他Java 文档具有相同的标准格式。因此,用户会非常熟悉这种格 

式,可在您设计的类中方便地“漫游”。设计程序时,请务必考虑输入上述代码,用 javadoc处理一下,观 

看最终HTML 文件的效果如何。  



2。8。3  嵌入 HTML   



javadoc将 HTML 命令传递给最终生成的 HTML 文档。这便使我们能够充分利用HTML 的巨大威力。当然,我们 

的最终动机是格式化代码,不是为了哗众取宠。下面列出一个例子:  

  

/**  

*   

* System。out。println(new Date());  

*   

*/  

  

亦可象在其他Web 文档里那样运用 HTML ,对普通文本进行格式化,使其更具条理、更加美观:  

  

/**  



                                                                              56 


…………………………………………………………Page 58……………………………………………………………

* 您甚至可以插入一个列表:  

*   

*  项目一  

*  项目二  

*  项目三  

*   

*/  

  

注意在文档注释中,位于一行最开头的星号会被javadoc 丢弃。同时丢弃的还有前导空格。javadoc 会对所 

有内容进行格式化,使其与标准的文档外观相符。不要将或这样的标题当作嵌入 HTML 使用,因为 

javadoc会插入自己的标题,我们给出的标题会与之冲撞。  

所有类型的注释文档——类、变量和方法——都支持嵌入 HTML 。  



2。8。4 @see :引用其他类  



所有三种类型的注释文档都可包含@see 标记,它允许我们引用其他类里的文档。对于这个标记,javadoc会 

生成相应的 HTML ,将其直接链接到其他文档。格式如下:  

  

@see 类名  

@see 完整类名  

@see 完整类名#方法名  

  

每一格式都会在生成的文档里自动加入一个超链接的“See Also ”(参见)条目。注意 javadoc不会检查我 

们指定的超链接,不会验证它们是否有效。  



2。8。5  类文档标记  



随同嵌入HTML 和@see 引用,类文档还可以包括用于版本信息以及作者姓名的标记。类文档亦可用于“接 

口”目的(本书后面会详细解释)。  

  

1。 @version  

格式如下:  

@version 版本信息  

其中,“版本信息”代表任何适合作为版本说明的资料。若在 javadoc命令行使用了 “…version”标记,就 

会从生成的 HTML 文档里提取出版本信息。  

  

2。 @author  

格式如下:  

@author 作者信息  

其中,“作者信息”包括您的姓名、电子函件地址或者其他任何适宜的资料。若在javadoc命令行使用了“

author”标记,就会专门从生成的HTML 文档里提取出作者信息。  

可为一系列作者使用多个这样的标记,但它们必须连续放置。全部作者信息会一起存入最终 HTML 代码的单独 

一个段落里。  



2。8。6  变量文档标记  



变量文档只能包括嵌入的HTML 以及@see 引用。  



2。8。7  方法文档标记  



除嵌入HTML 和@see 引用之外,方法还允许使用针对参数、返回值以及违例的文档标记。  

  

1。 @param  

格式如下:  



                                                                               57 


…………………………………………………………Page 59……………………………………………………………

@param 参数名 说明  

其中,“参数名”是指参数列表内的标识符,而“说明”代表一些可延续到后续行内的说明文字。一旦遇到 

一个新文档标记,就认为前一个说明结束。可使用任意数量的说明,每个参数一个。  

  

2。 @return  

格式如下:  

@return 说明  

其中,“说明”是指返回值的含义。它可延续到后面的行内。  

  

3。 @exception  

有关“违例”(Exception)的详细情况,我们会在第 9 章讲述。简言之,它们是一些特殊的对象,若某个方 

法失败,就可将它们“扔出”对象。调用一个方法时,尽管只有一个违例对象出现,但一些特殊的方法也许 

能产生任意数量的、不同类型的违例。所有这些违例都需要说明。所以,违例标记的格式如下:  

@exception 完整类名 说明  

其中,“完整类名”明确指定了一个违例类的名字,它是在其他某个地方定义好的。而“说明”(同样可以 

延续到下面的行)告诉我们为什么这种特殊类型的违例会在方法调用中出现。  

  

4。 @deprecated  

这是Java 1。1 的新特性。该标记用于指出一些旧功能已由改进过的新功能取代。该标记的作用是建议用户不 

必再使用一种特定的功能,因为未来改版时可能摒弃这一功能。若将一个方法标记为@deprecated,则使用该 

方法时会收到编译器的警告。  



2。8。8  文档示例  



下面还是我们的第一个 Java 程序,只不过已加入了完整的文档注释:  

  

//: Property。java  

import java。util。*;  

  

/** The first Thinking in Java example program。  

 * Lists system information on current machine。  

 * @author Bruce Eckel  

 * @author http://BruceEckel。  

 * @version 1。0   

*/  

public class Property {  

  /** Sole entry point to class & application  

   * @param args array of string arguments  

   * @return No return value  

   * @exception exceptions No exceptions thrown  

  */  

  public static void main(String'' args) {  

    System。out。println(new Date());  

    Properties p = System。getProperties();  

    p。list(System。out);  

    System。out。println(〃……Memory Usage:〃);  

    Runtime rt = Runtime。getRuntime();  

    System。out。println(〃Total Memory = 〃  

                       + rt。totalMemory()  

                       + 〃 Free Memory = 〃  

                       + rt。freeMemory());  

  }  



                                                                                           58 


…………………………………………………………Page 60……………………………………………………………

} ///:~  

  

第一行:  

//: Property。java  

采用了我自己的方法:将一个“:”作为特殊的记号,指出这是包含了源文件名字的一个注释行。最后一行也 

用这样的一条注释结尾,它标志着源代码清单的结束。这样一来,可将代码从本书的正文中方便地提取出 

来,并用一个编译器检查。这方面的细节在第 17章讲述。  



2。9 编码样式 
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!