Java学习第三天之注释
编写程序时,总需要为程序添加一些注释,用以说明某段代码的作用,或者说明某个类的用途、某个方法的功能,以及该方法的参数和返回值的数据类型及意义等。
一、为什么要添加注释?
(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学习第三天之注释的更多相关文章
- 201671010140. 2016-2017-2 《Java程序设计》java学习第三周
java学习第三周 不知不觉,学习java已经是第三周了,不同于初见时的无措,慌张,在接触一段时日后,渐渐熟悉了一些,了解到了它的便利之处,也体会到了它的一些难点,本周主攻第四章,< ...
- java学习笔记(2)注释、public lcass、class、标识符、字面值、变量
java学习笔记(1)中说过了java的一些基础知识,发展史,特点,编译和运行过程,配置环境变量等,接下来开始介绍java的语法等只是点 关于java源程序中的注释: *什么是注释?注释的作用是什么 ...
- 从.Net到Java学习第三篇——spring boot+mybatis+mysql
从.Net到Java学习第一篇——开篇 环境:mysql5.7 新建mysql数据库demo,然后执行如下sql脚本进行数据表创建和数据初始化: -- ------------------------ ...
- java学习(三)
学号 20189214 <Java程序设计>第三周学习总结 教材学习内容总结 核心类 java.lang.Object 所有的类都直接派生自这个类. java.lang.String St ...
- JAVA学习第三十六课(经常使用对象API)— Set集合:HashSet集合演示
随着Java学习的深入,感觉大一时搞了一年的ACM,简直是明智之举,Java里非常多数据结构.算法类的东西,理解起来就轻松多了 Set集合下有两大子类开发经常使用 HashSet集合 .TreeSet ...
- java学习第三天2020/7/8
一. 学习了数组的使用 一维数组的使用 (1)类型[ ] 名称 名称=new 类型[]{元素1,元素2......} (2)类型[] 名称={元素1,元素2......} (3)类型[] 名称=new ...
- java学习阶段三:运算符和结构学习
import java.util.Scanner;/* * JAVA中运算符的学习: * 算术运算符:+.-.*./ 和 %,两个整数相除,结果还是整数. * 赋值运算符:=.+=.-=.*=./=. ...
- Java学习笔记三十一:Java 包(package)
Java 包(package) 一:包的作用: 如果我们在使用eclipse等工具创建Java工程的时候,经常会创建包,那么,这个包是什么呢. 为了更好地组织类,Java 提供了包机制,用于区别类名的 ...
- Java学习第三周摘要
20145307<Java程序设计>第三周学习总结 教材学习内容总结 认识对象 类类型 Java可区分为基本类型和类类型两大类型系统,其中类类型也称为参考类型.sun就是一个类类型变量,类 ...
随机推荐
- ElasticSearch文档删除字段
https://www.cnblogs.com/ljhdo/archive/2017/03/24/4885796.html
- EasyNetQ使用(七)【发布者确认 ,用Future Publish发布预定中事件 】
AMQP发布消息默认情况下是非事务性的,不能确保你的消息真正送达代理.AMQP可以去指定事务性发布,但是RabbitMQ这样会非常慢,我们没有让EasyNetQ API去支持此功能.为了高效的确保投递 ...
- 如何实现批量截取整个网页完整长截图,批量将网页保存成图片web2pic/webshot/screencapture/html2picture
如何实现批量截取整个网页完整长截图,批量将网页保存成图片web2pic/webshot/screencapture [困扰?疑问?]: 您是否正受到:如何将网页保存为图片的困扰?网页很高很长截图截不全 ...
- java面试考点-面试准备
面试前准备 了解应试公司相关信息及岗位信息 系统复习基础知识 对原公司负责项目进行梳理 阅读常规框架源码 学习典型架构案例 针对招聘文案准备加分项 相关技能 基础知识:进程/线程,TCP协议,HTTP ...
- MySQL“Another MySQL daemon already running with the same unix socket”的处理
方法一: rm var/lib/mysql/mysql.sock service mysqld start 方法二: mv /var/lib/mysql/mysql.sock /var/lib/mys ...
- thinkphp5 验证器 validate 和 layer
首先tp5的验证器使用特方便 设置规则即可通用 首先页面html(layer 配合) 毕竟是后端 尽量用一些成熟的前台框架 之前用boostrap $.ajax({ url:'/index/Regi ...
- 最新 房天下java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.房天下等10家互联网公司的校招Offer,因为某些自身原因最终选择了房天下.6.7月主要是做系统复习.项目复盘.LeetCo ...
- Java 面试 - 打印九九乘法口诀表
在Java面试过程中, 面试者经常会被要求手写代码或上机操作.一般来说,手写代码或上机操作,主要还是考察面试者的分析问题和解决问题的能力.打印九九乘法口诀无疑是非常基础的,那么如何实现呢?首先我们先来 ...
- RocketMQ之六:RocketMQ消息存储
一.RocketMQ的消息存储基本介绍 先看一张图: 1.Commit log存储消息实体.顺序写,随机读.2.Message queue存储消息的偏移量.读消息先读message queue,根据偏 ...
- 关于npm install 报错 EAI_AGAIN reason: getaddrinfo EAI_AGAIN registry.npmjs.org
在公司里使用了isa连接外网,刚开始使用npm 安装依赖的时候一直报错EAI_AGAIN reason: getaddrinfo EAI_AGAIN registry.npmjs.org,我们的老大给 ...