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

一、为什么要添加注释?

  (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. rm -rf 误删后该怎么办?

    Google有一个开源的包 叫ext3grep工具他可以回复删除的文件,甚至是drop database,想什么呢,数据库啦!这个工具需要在ext3或者ext4 的文件系统上才可以实现,因为ext3文 ...

  2. (1) Java实现JDBC连接及事务的方式

    许多数据库的auto-commit默认是ON的,比如MySQL,PostgresSQL等.当然也有默认是OFF的,比如Oracle(Oracle里面执行DML语句是需要手动commit的). 这里我们 ...

  3. 看看BeginInvoke的用法,亲爱的们

    看看它是杂带参数的哈 using System; using System.Threading; class MyTest { delegate bool deleTest(string a,stri ...

  4. 完全解读 margin 标签

    你真的了解margin吗?你知道margin有什么特性吗?你知道什么是垂直外边距合并?margin在块元素.内联元素中的区别?什么时候该用 padding而不是margin?你知道负margin吗?你 ...

  5. 极客时间-左耳听风-程序员攻略-UI/UX设计

    程序员练级攻略:UI/UX设计 学习设计新手, 7 steps to become a UI/UX designer 学习设计的一些原则和套路,如配色.平衡.排版.一致性等. 用户体验的 4D 步骤- ...

  6. 【计算机视觉】Object Proposal之BING++

    本文是对 BING 算法的升级,主要是在快的同时保持定位精度  两个 + 分别对应: edge-based recursive boxes as one "+", and MTSE ...

  7. Asp.Net Core 客户端验证和远程验证

    我们先来看这样一个注册页面和它的后台Model @model RegisterViewModel @{ ViewBag.Title = "用户注册"; } <h1>用户 ...

  8. Longest Line of Consecutive One in Matrix

    Given a 01 matrix, find the longest line of consecutive 1 in the matrix. The line could be horizonta ...

  9. MySQL安装与连接

    1.安装 下载地址:https://dev.mysql.com/downloads/mysql/ 常见问题及解决办法:https://blog.csdn.net/chen97_08/article/d ...

  10. golang之map的使用声明

    1.map的基本介绍 map是key-value数据结构,又称为字段或者关联数组.类似其它编程语言的集合,在编程中是经常使用到的 2.map的声明 1)基本语法 var map 变量名 map[key ...