类注释文档编写方法

2023-10-27

对于Java语言,最体贴的一项设计就是它并没有打算让人们为了写程序而写程序——人们也需要考虑程序的文档化问题。对于程序的文档化,最大的问题莫过于对文档的维护。若文档与代码分离,那么每次改变代码后都要改变文档,这无疑会变成相当麻烦的一件事情。解决的方法看起来似乎很简单:将代码同文档“链接”起来。为达到这个目的,最简单的方法是将所有内容都置于同一个文件。然而,为使一切都整齐划一,还必须使用一种特殊的注释语法,以便标记出特殊的文档;另外还需要一个工具,用于提取这些注释,并按有价值的形式将其展现出来。这些都是Java必须做到的。
用于提取注释的工具叫作javadoc。它采用了部分来自Java编译器的技术,查找我们置入程序的特殊注释标记。它不仅提取由这些标记指示的信息,也将毗邻注释的类名或方法名提取出来。这样一来,我们就可用最轻的工作量,生成十分专业的程序文档。
javadoc输出的是一个HTML文件,可用自己的Web浏览器查看。该工具允许我们创建和管理单个源文件,并生动生成有用的文档。由于有了jvadoc,所以我们能够用标准的方法创建文档。而且由于它非常方便,所以我们能轻松获得所有Java库的文档。

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文件的效果如何。

3 嵌入HTML
javadoc将HTML命令传递给最终生成的HTML文档。这便使我们能够充分利用HTML的巨大威力。当然,我们的最终动机是格式化代码,不是为了哗众取宠。下面列出一个例子:

/**
*
* System.out.println(new Date());
*

*/

亦可象在其他Web文档里那样运用HTML,对普通文本进行格式化,使其更具条理、更加美观:
/**
* 您甚至可以插入一个列表:
*

*
项目一
*
项目二
*
项目三
*

*/

注意在文档注释中,位于一行最开头的星号会被javadoc丢弃。同时丢弃的还有前导空格。javadoc会对所有内容进行格式化,使其与标准的文档外观相符。不要将


这样的标题当作嵌入HTML使用,因为javadoc会插入自己的标题,我们给出的标题会与之冲撞。
所有类型的注释文档——类、变量和方法——都支持嵌入HTML。

4 @see:引用其他类
所有三种类型的注释文档都可包含@see标记,它允许我们引用其他类里的文档。对于这个标记,javadoc会生成相应的HTML,将其直接链接到其他文档。格式如下:

@see 类名
@see 完整类名
@see 完整类名
每一格式都会在生成的文档里自动加入一个超链接的“See Also”(参见)条目。注意javadoc不会检查我们指定的超链接,不会验证它们是否有效。

5 类文档标记
随同嵌入HTML和@see引用,类文档还可以包括用于版本信息以及作者姓名的标记。类文档亦可用于“接口”目的(本书后面会详细解释)。

1. @version
格式如下:
@version 版本信息
其中,“版本信息”代表任何适合作为版本说明的资料。若在javadoc命令行使用了“-version”标记,就会从生成的HTML文档里提取出版本信息。

2. @author
格式如下:
@author 作者信息
其中,“作者信息”包括您的姓名、电子函件地址或者其他任何适宜的资料。若在javadoc命令行使用了“-author”标记,就会专门从生成的HTML文档里提取出作者信息。
可为一系列作者使用多个这样的标记,但它们必须连续放置。全部作者信息会一起存入最终HTML代码的单独一个段落里。

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

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

1. @param
格式如下:
@param 参数名 说明
其中,“参数名”是指参数列表内的标识符,而“说明”代表一些可延续到后续行内的说明文字。一旦遇到一个新文档标记,就认为前一个说明结束。可使用任意数量的说明,每个参数一个。

2. @return
格式如下:
@return 说明
其中,“说明”是指返回值的含义。它可延续到后面的行内。

3. @exception
有关“违例”(Exception)的详细情况,我们会在第9章讲述。简言之,它们是一些特殊的对象,若某个方法失败,就可将它们“扔出”对象。调用一个方法时,尽管只有一个违例对象出现,但一些特殊的方法也许能产生任意数量的、不同类型的违例。所有这些违例都需要说明。所以,违例标记的格式如下:
@exception 完整类名 说明
其中,“完整类名”明确指定了一个违例类的名字,它是在其他某个地方定义好的。而“说明”(同样可以延续到下面的行)告诉我们为什么这种特殊类型的违例会在方法调用中出现。

4. @deprecated
这是Java 1.1的新特性。该标记用于指出一些旧功能已由改进过的新功能取代。该标记的作用是建议用户不必再使用一种特定的功能,因为未来改版时可能摒弃这一功能。若将一个方法标记为@deprecated,则使用该方法时会收到编译器的警告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类注释文档编写方法 的相关文章

随机推荐

  • SGD和Adam(转载)

    https blog csdn net weixin 42398658 article details 84525917 另在一篇文章中 我们介绍了随机梯度下降的细节以及如何解决陷入局部最小值或鞍点等问题 在这篇文章中 我们看看另一个困扰神
  • Unity3D编辑器扩展——EditorWindow交互响应事件

    重点 需要在OnGUI方法里监听事件 Unity的编辑器界面中由这么一些事件 EventType MouseDown 鼠标按下 MouseUp 鼠标抬起 MouseDrag 鼠标拖动 KeyDown 按键按下 KeyUp 按键抬起 Scro
  • js sum函数

    addnum function num1 num2 const num1Digits num1 toString split 1 length const num2Digits num2 toString split 1 length co
  • Qt新建项目No valid kits found解决思路

    第一次用Qt Creator创建Project时 进入Kit Selection窗口后 会提示No Valid kits found Please add a kit in the options
  • web性能测试基本性能指标

    文章出处 https blog csdn net qiguiting article details 11584397 Web性能测试的部分概况一般来说 一个Web请求的处理包括以下步骤 1 客户发送请求 2 web server接受到请求
  • Source Insight 4.0常用设置

    1 删除某一个或多个无用的project 历史project 用十六进制编辑器打开 我的文档 Source Insight 4 0 Projects project list sidb 文件 找到你要删除的项目路径及名称字符串 用0替换相关
  • TortoiseGit实现分支的新增、合并、删除详细教程

    分支的新增 合并 删除 关于git分支的操作 内容较多 所以从上篇博客 Windows下TortoiseGit客户端安装 中单独提取了出来 16 创建分支 Create Branch 关于Git Branch 在实际的项目开发过程中 这个非
  • ROS学习笔记(一)

    一 ROS安装与测试 Ubuntu和ROS版本的对应关系 网上教程很多 本人主要参考以下几篇 官网教程 全英文 ROS安装教程 ROS kinetic 超详细安装教程 安装过程中报错以及参考文章 均能有效解决 安装完ROS后 初始化rosd
  • 总结Pyinstaller的坑及终极解决方法

    一 首先要有个稳定环境 下面是博主经测试的觉得坑比较少的环境搭配 Python3 4 PyQt5 4 Pyinstaller3 2 1 Python3 5 PyQt5 8 Pyinstaller3 2 1 二 Pyinstaller遇到坑没
  • el-table表头无法居中显示(使用了cell-style和header-cell-style属性,也没有效果)----解决办法

    解决办法 cell style和header cell style属性要写在style前面
  • Windows Server 2016组策略限制用户登录到本机

    打开组策略 编辑 设置允许本地登录 拒绝本地登录 刷新组策略
  • 【EI会议征稿】第三届机械自动化与电子信息工程国际学术会议(MAEIE 2023)

    第三届机械自动化与电子信息工程国际学术会议 MAEIE 2023 第三届机械自动化与电子信息工程国际学术会议 MAEIE 2023 将于2023年12月15 17日在江苏南京举行 本会议通过与业内众多平台 社会各团体协力 聚集机械自动化 电
  • 嵌入式Linux应用开发笔记:串口

    文章目录 目的 基础说明 开发准备 设备树 应用程序 应用程序与演示 代码 演示 总结 设备树文件 目的 串口 UART 是嵌入式设备中比较常用的功能 这篇文章将记录下应用程序中串口操作相关内容 这篇文章中内容均在下面的开发板上进行测试 新
  • Dockerfile部署lnmp

    Dockerfile部署lnmp 实验步骤 需一台安装好docker的虚拟机 systemctl stop firewalld systemctl disable firewalld setenforce 0 指定网段 docker net
  • stream与Byte相互转换

    stream 转为byte public byte stream2byte Stream stream byte buffer new byte stream length stream Read buffer 0 buffer lengt
  • 嵌入式调试工具合集

    Embedded Develop Tools 嵌入式开发中用到的一些工具软件集 文章目录 Embedded Develop Tools 串口调试 串口收发 串口终端 虚拟串口 串口监控 网络调试 网络抓包 TCP UDP HTTP MQTT
  • Android SDK 安装与Manager下载tools详情

    Android SDK 安装与Manager下载tools详情 Android SDK 安装 前往android网站下载 下载图片红色处即可 下载后双击按步骤安装即可 Manager tools安装 进入安装的文件目录 找到SDK Mana
  • 区块链的5个特征

    id BSN 2021 公众号 BSN研习社 人们看重区块链 最重要的是看重区块链所具有的不可替代的功能和特点 这些特点包括去中心化 开放性 独立性 安全性 匿名性 去中心化 区块链技术不依赖额外的第三方管理机构或硬件设施 没有中心管制 除
  • Linux资源监控工具

    概述 glances 是一款用于 Linux BSD 的开源命令行系统监视工具 它使用 Python 语言开发 能够监视 CPU 负载 内存 磁盘 I O 网络流量 网速 文件系统 系统温度等信息 本文介绍 glances 的使用方法和技巧
  • 类注释文档编写方法

    对于Java语言 最体贴的一项设计就是它并没有打算让人们为了写程序而写程序 人们也需要考虑程序的文档化问题 对于程序的文档化 最大的问题莫过于对文档的维护 若文档与代码分离 那么每次改变代码后都要改变文档 这无疑会变成相当麻烦的一件事情 解