第二章:注释

目录

一、单行注释和多行注释

二、文档注释 :javadoc

(一)编写方式

详细描述

方法参数描述

链接跳转描述

异常链接描述

(二)生成方式

 会出现的两个问题

JDK—API文档


一、单行注释和多行注释

单行注释: 适用于对单行语句的注释在语句";" 的后面 or 另作一句)

基本格式: //  注释文字  

多行注释: 适用于对代码块的注释(描述代码块的作用)

基本格式  /* 注释文字 */

/*  多行注释:
* 1、类名:hello
* 2、方法:main
* 3、功能:输出hello  */
public class hello {
    public static void main(String[] args) {
        // 单行注释:输出hello
        System.out.println("hello");    // 单行注释:输出hello
    }
}

使用细节:

  1. 被注释的文字,不会被 JVM(java 虚拟机)解释执行,增强可读性
  2. 多行注释里面不允许有多行注释嵌套
  3. 非javadoc的注释(代码)给代码的维护者看方面维护及该代码的作用

二、文档注释 :javadoc

需求:项目需要给客户使用,让客户能够快速上手的说明书

javadoc是JDK提供的工具,该工具用于解析源文件(源代码)中文档注释生成网页版的API说明文档适用于类、方法的注释

优点:能让对方快速上手项目

缺点:对新手不友好,且进行编注比较难——多练

(一)编写方式

基本格式 /** @标签  注释文字 */

       

在编写好的方法的上方/** + Enter会由系统自动增加的@标签 和句尾  */(也可以自加)

以下是常用的@标签,不是限定在某个场景,还可以在其他场景使用(包、类、接口、方法的上方)

【根据需要自定义】

详细描述

  • @author(作者名称)@version(当前版本【可写时间】)@since (更新版本)@deprecated(过期版本)
/**
 * @author  ccs
 * @Version v1.0
 * @since v1.5
 * @deprecated(since = 1.0,forRemoval = true)  //since:从什么版本开始弃用,forRemoval:是否会被删除
 */

public class hello { }
  •  {@code 注释文本} (会被解析成<code> 注释文本 </code>)

一般在Javadoc中只要涉及到类名或者方法名、关键字,都需要使用{@code }进行标记

(将html标签,变为普通文本)

/**
 *  If the {@code format} is {@code null}
 */

public PrintStream format(String format, Object ... args) {}
  • 常用html标签:<p>、<a>、<pre>、<ul>、<ol>、<li>、<i>        【在转换为javaDoc文档时,就有html效果】
    • <p> 注释文本:段落文本说明,可以不使用结束标签<\p>(相当于写作文的段落前要空两格)
    • <a href = "链接地址"  >  链接说明 <\a> :链接地址
    • <pre> 注释文本 </pre>:预定义格式化文本,文本通常会保留空格和换行符、呈现为等宽字体
      • 通常用来表示计算机的源代码部分
      • 注意:标签中如果有小于号、大于号、泛型 在生成javadoc时会报错
      • 解决方法:跟{@code }搭配使用
    • <i> 注释文本<\i>:斜体
    • <ul> 注释文本<li>:无序列表
    • <ol> 注释文本<li>:有序列表
    /**
     * 标题,不用<p>
     *
     * <p>Note: this method returns {@code true} for a {@code CharSequence}
     * <a href="http://commons.apache.org/proper/commons-lang/">Apache's Commons Lang</a>   //表示有个链接地址
     * that purely consists of whitespace.
     *
     *<pre>{@code
     *     int result = identity;
     *     for (int element : this stream)
     *         result = accumulator.applyAsInt(result, element)
     *     return result;
     * }</pre>
     *
     */

方法参数描述

  • @param 形参名(形参描述,跳转功能)
  • @return (返回值描述)
  • {@value 常量 }   (常量描述,跳转功能)
    /**
     * sum方法的说明:整型数据的输入输出
     * @param a 形参a,传递整型数据
     * @param b 形参b,传递整型数据
     * @return 返回sum的值
     * {@value sum} 用于a + b 的赋值
     */
    public int sum(int a,int b){
        int sum = 0;
        sum = a + b
        return sum;
    }
  •  @inheritDoc  (用于注解在重写方法或者子类上,用于继承父类中的Javadoc)
    • 基类的文档注释被继承到了子类
    • 子类可以再加入自己的注释(特殊化扩展)
    • @return  @param  @throws 也会被继承

链接跳转描述

Ctrl键+鼠标单击快速跳到相应的类或者方法上

  • {@link 包名.类名#方法名(参数类型)}         优点:不用顶头 ;缺点:设定链接,只能单独跳转

        {@linkplain....}        (纯文本形式,无链接效果)

//不在同个包内时的链接设定
{@link java.lang}                          //跨包指向
{@link java.lang.Demo}                     //跨包指向类
{@link java.lang.Demo#sum(int,int)}        //跨包指向类的方法

//在同个包内时的链接设定
{@link Demo}                               //指向类
{@link Demo#sum(int,int)}                  //跨包指向类的方法
 
//在同个类内时的链接设定,
{@link #sum(int,int)}                      //同个类指向方法,必须有#

// 可以进行多个的设定
{@link String} and {@link StringBuilder}   //and是普通字符

细节:方法都是通用的,只是如何便捷看自己
  • @see  包名.类名#方法名(参数类型)           优点:设定链接,可以标签多个目的跳转;缺点:必须顶头;
/** 
 * @see demo.unit.one.hello#main(String[]) 普通字符*/    //必须顶头

//点击包,可以跳转到包
//点击类,可以跳转到类
//点击方法,可以跳转到方法

作用:调用方法被篡改了,注释会报红,起到一个提示作用

异常链接描述

  • @throws  异常类型       (用于描述方法内部可能抛出的异常)
  • @exception   异常类型  (用于描述方法内部可能抛出的异常)

两个注解同理

    /**
     * @throws IllegalArgumentException
     * @exception IllegalArgumentException
     */

    public boolean createOrder() throws IllegalArgumentException{ }

(二)生成方式

IDEA提供的javadoc生成工具,tools(工具) →  Generator javaDoc(生成 javaDoc)

设置API文档的生成路径(输出目录),按照下面的操作,点击确定,在生成文件后,点击index.html就可查看

 会出现的两个问题

 

 第一个问题:标签后没进行说明内容,不影响JavaDoc文档的输出(不致命,可无视)

 第二个问题:标签后的注释文本采用的是中文,会导致JavaDoc文档的输出乱码(只是windos 会出现这种错误)

解决方法

区域设置:zh_CN

其他命令行实参:-encoding utf-8 -charset utf-8


JDK—API文档

若有中文文档,可不用强调在线文档

java8的在线文档(java API)——缺点:没有搜索功能https://docs.oracle.com/javase/8/docs/api/index.html

Java官方不同版本的API在线文档—到JDK11才有搜索功能https://docs.oracle.com/en/java/javase/index.html

JDK8(java8)的在线文档入口

JDK11(java11)的在线文档入口

常用的API包

  • 基础API:字符串、时间日期、格式化
  • 集合框架:java.util
  • 并发编程:java.lang       java.util.conurrent         java.util
  • 文件编程:java.io
  • 网络编程:java.net
  • 反射和动态代理:java.lang
  • 数据库编程:java.sql
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值