编写程序时,总需要为程序添加一些注释,用以说明某段代码的作用,或者说明某个类的用途、某个方法的功能,以及该方法的参数和返回值的数据类型及意义等。

一、为什么要添加注释?

  (1)便于自己理解:有些人可能对此不认同,觉得我自己写的代码难道我自己还能不理解吗,殊不知这是一种错误的想法。一个程序员终其一生要编写多少代码笔者不知,但想必不在少数,再加上人本身的健忘,可能当时能够理解的代码,过后再呈现于眼前真的会不认识。添加注释,便于过后理解,也方便将来进行代码的重构。

  (2)便于他人理解:我们编写的代码,不仅自己会读,他人也会读,自己写的代码过后拿出来,自己都尚且不理解,更何况是别人。这样的事情在实际工作中是经常遇到的。当你进入一家新的公司,首先便会阅读之前公司一些项目的代码,如果程序的编写人员不添加注释,看起来真的是两眼一抹黑。而且,在一个大型项目中,少不了要分工协作,相互沟通,你得保证你写的代码能够被别人理解。

  程序注释是源代码的一个重要部分,对于一份规范的程序源代码而言,注释应该占到程序的1/3以上。

二、注释的类型

  Java语言的注释一共有三种类型:

    单行注释;

    多行注释;

    文档注释。

  (1)单行注释:就是在程序中注释一行代码。在Java语言中,将双斜线(//)放在要注释的代码之前就可以了。

  (2)多行注释:指一次性的将程序中的多行代码注释掉。使用“/*”和“*/”将程序中需要注释的内容包含起来。其中,“/*”表示注释开始,“*/”表示注释结束。

  下面以一段代码展示单行注释与多行注释的用法:

 public class HelloWorld {

     /*
* 这是多行注释
* main方法是程序的入口
*/
public static void main(String[] args) { // 这是单行注释
// 下面这段代码表示打印 Hello,World!
System.out.println("Hello,World!");
// System.out.println("这段代码已被注释,将不会被编译,执行。");
} }

  另外,添加注释也是调试程序的一个重要方法。如果觉得某段代码可能有问题,可以先把这段代码注释起来,让编译器忽略这段代码,再次编译、运行,如果程序可以正常执行,则可以说明错误就是由这段代码引起的,这样就缩小了错误所在的范围,有利于排错;如果依然出现相同的错误,则可以说明错误不是由这段代码引起的,同样也缩小了错误所在的范围。

  (3)文档注释:如果编写java源代码时添加了合适的文档注释,然后通过JDK提供的javadoc工具可以直接将源代码里的文档注释提取成一套系统的API文档。

  Java提供了大量的基础类,因此Oracle也为这些基础类提供了相应的API文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。

  学会使用及阅读JavaAPI文档也是学习Java的重要方式。

  可以去官网下载Java8的API文档用于学习。

    https://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-downloads-2133158.html

  下载好后解压缩,进入到目录的docs/api下,找到index.html,双击即可打开。如下图所示:

    有想了解JavaAPI用法的可以去网上搜索,看不懂英文的可以在网上找中文版的,这里就不详述了。

  由于文档注释是用于生成API文档的,而API文档主要用于说明类、方法、成员变量的功能。因此,javadoc工具只处理文档源文件在类、接口、方法、成员变量、构造器和内部类之前的注释,忽略其他地方的文档注释。而且javadoc工具默认只处理以public或protected修饰的类、接口、方法成员变量、构造器和内部类之前的注释。

  文档注释以斜线后紧跟两个星号(/**)开始,以星号后紧跟一个斜线(*/)结束,中间部分全是文档注释,会被提取到API文档中。

  下面以一段代码示例:

 /**
* 这是一个测试生成API文档的类
* @author Administrator
*
*/
public class JavadocTest { /**
* 这是一个成员变量
*/
protected String name; /**
* 这是main方法,是程序的入口
* @param args
*/
public static void main(String[] args) { System.out.println("Hello,World!");
} }

  在Java源文件的所在的目录行输入cmd打开命令行窗口,输入javadoc JavadocTest.java,会在当前目录生成许多以.html为后缀的文件,找到index.html双击就可以显示生成的API文档。当然你也可以指定生成目录,可以在命令行输入javadoc指定选项。

  注释的学习到此结束。

Java学习第三天之注释的更多相关文章

  1. 201671010140. 2016-2017-2 《Java程序设计》java学习第三周

    java学习第三周       不知不觉,学习java已经是第三周了,不同于初见时的无措,慌张,在接触一段时日后,渐渐熟悉了一些,了解到了它的便利之处,也体会到了它的一些难点,本周主攻第四章,< ...

  2. java学习笔记(2)注释、public lcass、class、标识符、字面值、变量

    java学习笔记(1)中说过了java的一些基础知识,发展史,特点,编译和运行过程,配置环境变量等,接下来开始介绍java的语法等只是点  关于java源程序中的注释: *什么是注释?注释的作用是什么 ...

  3. 从.Net到Java学习第三篇——spring boot+mybatis+mysql

    从.Net到Java学习第一篇——开篇 环境:mysql5.7 新建mysql数据库demo,然后执行如下sql脚本进行数据表创建和数据初始化: -- ------------------------ ...

  4. java学习(三)

    学号 20189214 <Java程序设计>第三周学习总结 教材学习内容总结 核心类 java.lang.Object 所有的类都直接派生自这个类. java.lang.String St ...

  5. JAVA学习第三十六课(经常使用对象API)— Set集合:HashSet集合演示

    随着Java学习的深入,感觉大一时搞了一年的ACM,简直是明智之举,Java里非常多数据结构.算法类的东西,理解起来就轻松多了 Set集合下有两大子类开发经常使用 HashSet集合 .TreeSet ...

  6. java学习第三天2020/7/8

    一. 学习了数组的使用 一维数组的使用 (1)类型[ ] 名称 名称=new 类型[]{元素1,元素2......} (2)类型[] 名称={元素1,元素2......} (3)类型[] 名称=new ...

  7. java学习阶段三:运算符和结构学习

    import java.util.Scanner;/* * JAVA中运算符的学习: * 算术运算符:+.-.*./ 和 %,两个整数相除,结果还是整数. * 赋值运算符:=.+=.-=.*=./=. ...

  8. Java学习笔记三十一:Java 包(package)

    Java 包(package) 一:包的作用: 如果我们在使用eclipse等工具创建Java工程的时候,经常会创建包,那么,这个包是什么呢. 为了更好地组织类,Java 提供了包机制,用于区别类名的 ...

  9. Java学习第三周摘要

    20145307<Java程序设计>第三周学习总结 教材学习内容总结 认识对象 类类型 Java可区分为基本类型和类类型两大类型系统,其中类类型也称为参考类型.sun就是一个类类型变量,类 ...

随机推荐

  1. ElasticSearch——数据建模最佳实践

    如何建模 mapping 设计非常重要,需要从两个维度进行考虑: 功能:搜索.排序.聚合 性能:存储的开锁.内存的开销.搜索的性能 mapping 注意事项: 加入新字段很容易(必要时需要 updat ...

  2. (四)Asp.net web api中的坑-【api的返回值】

    void无返回值 IHttpActionResult HttpResponseMessage 自定义类型 我这里并不想赘述这些返回类型, 可以参考博文http://blog.csdn.net/leon ...

  3. 【c# 学习笔记】构造函数

    构造函数 主要用于创建类的实例对象.当调用构造函数创建一个对象时,构造函数会为对象分配内存空间,并初始化类的成员.构造函数分为实例构造函数和静态构造函数两种. 1.实例构造函数 实例构造函数用于创建和 ...

  4. 用MOQ来Mock静态方法的 2种方法(含Moq和Fakes的配合使用)

    Moq是无法直接模拟静态方法的,解决方式有两种: 1.需要修改正式代码,在源代码中建一个新的方法把静态方法包起来,调用的时候源代码调用时调用新方法而不是原来的静态方法. 在测试的时候,Mock掉这个新 ...

  5. NOIp 2009:靶形数独

    题目描述 Description 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向Z 博士请教, Z ...

  6. extentreports报告插件与testng集成

    前段时间在群里有人说了下用这个插件来生成测试报告,发现生成的报告非常不错.就下来学习了一下,并集成到了testng上,下面来分享一下: ExtentReports (by Anshoo Arora) ...

  7. php开启多线程下载

    php开启多线程下载 <pre><?php/** * 多进程批量下载文件(使用php curl_multi_exec实现) * Date: 2017-07-16 * Author: ...

  8. [LuoguP1155]双栈排序_二分图_bfs

    双栈排序 题目链接:https://www.luogu.org/problem/P1155 数据范围:略. 题解: 神仙题. 就第一步就够劝退了. 这个二分图非常不容易,首先只有两个栈,不是属于一个就 ...

  9. python学习-23 函数

    函数 1.函数分为:数学定义的函数和编程语言中的函数 例如: - 数学定义的函数:y=2*x+1 - 编程语言的函数: def test(x): x += 1 return x def  :定义函数的 ...

  10. pandas数据结构之Series笔记

    对Series的理解也源于对其相关的代码操作,本次仅贴一些代码来加深理解以及记忆 import pandas as pd import numpy as np s = pd.Series(np.ran ...