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

一、为什么要添加注释?

  (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. Delphi下Treeview控件基于节点编号的访问1

    有时我们需要保存和重建treeview控件,本文提供一种方法,通过以树结构节点的编号访问树结构,该控件主要提供的方法如下:      function GetGlobeNumCode(inNode:T ...

  2. 基于Spark的用户分析系统

    https://blog.csdn.net/ytbigdata/article/details/47154529

  3. js面向对象写法及栈的实现

    function Stack() { this.dataStore = []; this.top = 0; //指向栈顶的位置 this.push = push; this.pop = pop; th ...

  4. iOS-UITextField的使用

    UITextField  UITextField * accountField = [[UITextField alloc] initWithFrame:CGRectMake(85.0f, 60.0f ...

  5. MySQL的注入总结

    0x01 MySQL 5.0以上和MySQL 5.0以下版本的区别 MySQL5.0以上版本存在一个叫information_schema的数据库,它存储着数据库的所有信息,其中保存着关于MySQL服 ...

  6. Ubuntu linux 下的基本操作

    防火墙相关: 关闭防火墙: ufw disable

  7. 【ARM-Linux开发】Rico Board上编译USB WiFi RT3070驱动

    1.附件中提供了RT3070驱动源码包DPO_RT5572_LinuxSTA_2.6.1.3_20121022.tar.gz和编译好的驱动,这里选择使用taget_file.tar.gz中已经编译好的 ...

  8. 如何衡量一个人的 JavaScript 水平?

    参考链接:https://blog.csdn.net/weixin_37615279/article/details/103658866

  9. python 问题解决:UnicodeEncodeError: 'ascii' codec can't encode character u'\uff08'

    第一种方案(90%情况下,大部分帖子都是这个)一般报错到代码都是自己写到代码,代码上添加 import sysreload(sys)sys.setdefaultencoding('utf-8') 第二 ...

  10. Windows删除某服务

    win+R然后cmd进入命令窗口 sc delete 服务名