## 注释(Comments)
在这一节,我们会讲一下注释(Comments),单行注释(Single Line Comments)和多行注释(Multi Line Comments)还有JavaDoc风格的注释。
所以回到IntelliJ
注释不是可执行的代码,它们可以放在任意地方,注释可以让你的代码更容易读懂。但是如果有过多的注释,代码也会可读性很差,且难以理解。在考试当中你不会看到很多的注释, 基本上出考题的人会尽量让代码更加难以理解,更加难读懂。
在这一节,你会看到很多问题,类型可能会出现在考试中的。在这个课程中,你经常会看到代码有注释,写注释总是一个好习惯。以便你在几周或几个月后再看自己的代码时,更容易看懂当初写的是什么。
### 单行注释(Single Line Comments)
所以让我们先看一下单行注释
单行注释由两个正斜杠(Slash)开始 //, 然后是注释的内容。例如
```java
package io.zwt;
public class Main {
public static void main(String[] args) {
// printing size of arguments
System.out.println("args-size= " + args.length);
for (int i = 0; i < args.length; i++) {
System.out.println("args[" + i + "]=" + args[i]);
}
}
}
```
上面的就是单行注释,你甚至可以有空的注释
```java
//
//
```
你也可以注释掉代码,英文说法是 comment out
```java
package io.zwt;
public class Main {
public static void main(String[] args) {
// printing size of arguments
//
//
//System.out.println("args-size= " + args.length);
for (int i = 0; i < args.length; i++) {
System.out.println("args[" + i + "]=" + args[i]);
}
}
}
```
被注释掉的代码,不会再执行。在IntelliJ 可以使用快捷键 `Ctrl+/`注释掉某行。例如我可以选项某行,或者多个行,然后按下 `Ctrl+/`,这样子就会注释掉所选的行。如果是多行注释就是 `Ctrl+Shift+/`。
### 多行注释(Multi Line Comments)
多行注释由正斜杠和星号开始,即 `/*` 所以如果我现在输入 `/*` 下边的代码就不再编译了,提示由编译错误了。Unclose comment。 所以为了关闭这个多行注释块,我们需要输入 `*/`。 这样就形成了多行注释,或者是块注释(Block Comments),所以就是有一对的,开闭的。 `/* */` 例如下面代码就是注释掉了 for 循环。
```java
package io.zwt;
public class Main {
public static void main(String[] args) {
// printing size of arguments
//
//
//System.out.println("args-size= " + args.length);
/*
for (int i = 0; i < args.length; i++) {
System.out.println("args[" + i + "]=" + args[i]);
}
*/
}
}
```
接下来我们恢复for循环,在它上面写多行注释:
```java
package io.zwt;
public class Main {
public static void main(String[] args) {
// printing size of arguments
//
//
//System.out.println("args-size= " + args.length);
/*
* printing arguments
* another line.
*/
for (int i = 0; i < args.length; i++) {
System.out.println("args[" + i + "]=" + args[i]);
}
}
}
```
### JavaDoc风格注释
还有一种注释就是JavaDoc风格的注释,也就是文档注释,它们可以被JavaDoc文档工具处理。如果你使用JavaDoc工具生成文档,这些注释里的内容就会出现在文档上。
在IntelliJ 里面创建的JavaDoc风格的注释,是输入 `/**` 然后按`Enter`这样就会是JavaDoc风格的注释。因为它开头是 `/**`两个星号,然后换行。
JavaDoc风格的注释通常出现在类或者是方法头上。它其实也可以在变量上,但是不用担心这个,后面遇到了会讲的。所以然我们在Main类里边再添加一个JavaDoc注释。
在main方法的头上,输入`/**`按下Enter,发现IntelliJ自动生成了JavaDoc注释,并且添加了 `@param args`。所以这就是方法的参数。如果我们的方法有多个参数,它会添加所有的参数的。然后我们可以为这些参数添加注释了。还可以给方法本身添加注释,例如:
```java
package io.zwt;
public class Main {
/**
* This is main method.
* @param args command line arguments
*/
public static void main(String[] args) {
// printing size of arguments
//
//
//System.out.println("args-size= " + args.length);
/*
* printing arguments
* another line.
*/
for (int i = 0; i < args.length; i++) {
System.out.println("args[" + i + "]=" + args[i]);
}
}
}
```
如果方法有返回值,创建JavaDoc注释时,IntelliJ还会自动添加返回值类型`@return`,例如下面:
```java
package io.zwt;
public class Main {
/**
* This is main method.
* @param args command line arguments
*/
public static void main(String[] args) {
// printing size of arguments
//
//
//System.out.println("args-size= " + args.length);
/*
* printing arguments
* another line.
*/
for (int i = 0; i < args.length; i++) {
System.out.println("args[" + i + "]=" + args[i]);
}
}
/**
*
* @param a
* @param b
* @return
*/
public static int sum(int a, int b) {
return a + b;
}
}
```
上面的 sum 方法只是一个简单的方法,只是为了演示JavaDoc注释。在这个方法上面用IntelliJ 创建JavaDoc,可以看到:
```
/**
*
* @param a
* @param b
* @return
*/
```
两个参数的注释,还有返回值的注释,所以我们可以说:
```java
/**
* 计算两个整数的和
* @param a 操作数
* @param b 操作数
* @return 求和
*/
public static int sum(int a, int b) {
return a + b;
}
```
所以如果我们在main方法里边调用这个 sum方法,可以看到IntelliJ提示它需要两个参数,而且如果我们用 `Ctrl+Q`查看一下快速文档,我们也可以看到注释所写的内容。这就是JavaDoc注释的作用。
所以就算是在自己的代码,写JavaDoc注释也很有帮助,有助于了解各个部分,各个方法的作用。
- 0.考试大纲解读
- 1.内容简介与环境搭建
- 1.1内容简介
- 1.2.在Windows安装JDK8
- 2.Java基础
- 2.1.Java类结构
- 2.2.main方法
- 2.3.注释
- 2.4.package与import
- 2.5.命名冲突与代码格式
- 2.6.静态导入
- 2.7.理解原始数据类型
- 2.8.整数型原始类型
- 2.9.小数型原始类型
- 2.10.原始char与boolean
- 2.11.声明和初始化变量
- 2.12.理解原始类型变量的默认初始化
- 2.13.变量作用范围
- 2.14.类里面元素的顺序
- 2.15.理解null
- 2.16.原始类型的包装类
- 2.17.Java的好处
- 2.18.考试题目举例
- 3.操作符
- 3.1.理解操作符
- 3.2.算术操作符
- 3.3.数值类型提升以及类型转换
- 3.4.一元操作符第一部分
- 3.5.一元操作符第二部分
- 3.6.赋值运算符
- 3.7.复合赋值运算符
- 3.8.关系操作符
- 3.9.关系操作符
- 3.10.相等操作符
- 3.11.理解 == 与 equals()方法
- 3.12.字符算术运算
- 3.13.考试题目举例
- 4.基本程序控制流
- 4.1.if else语句
- 4.2.三元操作符
- 4.3.switch语句
- 4.4.while循环
- 4.5.do-while循环
- 4.6.for循环
- 4.7.考试题目举例
- 5.理解字符串类型
- 5.1.创建字符串以及字符串连接
- 5.2.理解不可变性
- 5.3.字符串常量池和字符串相等
- 5.4.String类的方法第一部分
- 5.5.String类的方法第二部分
- 5.6.方法串联
- 5.7.使用StringBuilder类
- 5.8.StringBuilder类的方法
- 5.9.理解相等性
- 5.10.考试题目举例
- 6.数组
- 6.1.理解数组
- 6.2.使用数组
- 6.3.数组常见的问题
- 6.4.For-each循环
- 6.5.break语句和标签
- 6.6.continue语句
- 6.7.数据排序
- 6.8.搜索数组
- 6.9.可变数量参数
- 6.10多维数组
- 6.11嵌套循环
- 6.12考试题目举例
- 7.ArrayList
- 7.1.理解ArrayList
- 7.2.ArrayList的方法第一部分
- 7.3.ArrayList的方法第二部分
- 7.4.在ArrayList使用包装类
- 7.5.ArrayList与数组之间的转换
- 7.6.ArrayList元素排序
- 7.7.搜索ArrayList
- 7.8.遍历List第一部分
- 7.9.遍历List第二部分
- 7.10.考试题目举例
- 8.方法
- 8.1.设计一个方法
- 8.2.方法的返回类型
- 8.3.方法的参数列表
- 8.4.带有数量可变参数的方法
- 8.5.访问修饰符
- 8.6.静态方法和字段
- 8.7.使用静态方法和字段第一部分
- 8.8.使用静态方法和字段第二部分
- 8.9.final方法
- 8.10.静态初始化
- 8.11.在方法之间传输数据
- 8.12.方法的返回数据
- 8.13.重载方法
- 8.14.考试题目举例
- 9.类设计
- 9.1.类的构造函数
- 9.2.默认构造函数
- 9.3.构造方法重载
- 9.4.this 与 this()的区别
- 9.5.初始化的顺序
- 9.6.数据封装
- 9.7.不可变类
- 9.8.类与继承第一部分
- 9.9.类与继承第二部分
- 9.10方法重写
- 9.11.super 与 super()的区别
- 9.12.重载与重写的区别
- 9.13.抽象类
- 9.14.抽象方法
- 9.15.创建接口
- 9.16.实现接口
- 9.17.接口的默认方法
- 9.18.接口的静态方法
- 9.19.抽象类与接口的区别
- 9.20.多态
- 9.21.虚方法
- 9.22.参数多态
- 9.23.考试题目举例
- 10.Java 8的日期和时间API
- 10.1.创建日期与时间
- 10.2.使用日期与时间
- 10.3.Periods
- 10.4.格式化日期和时间
- 10.5.解释日期和时间
- 10.6.考试题目举例
- 11.异常处理
- 11.1.理解异常处理
- 11.2.Checked 与 Unchecked 异常的区别
- 11.3.处理异常
- 11.4.使用finally语句块
- 11.5.捕获不同的异常
- 11.6.return 和 finally块
- 11.7.抛出异常的方法
- 11.8.考试题目举例
- 12.简单的Lambda表达式
- 12.1.理解Lambda
- 12.2.使用Lambda
- 12.3.Predicates
- 12.4.考试问题举例
- 13.福利
- 13.1.Anki记忆卡片