第四章 对象与类
使用预定义类
Java类库中的LoaclDate类
- 表示时间点是Data类。
- 用日历表示法表示日期的是LocalDate类。
- LocalDate.now()会构造一个新对象,表示构造这个对象时的日期。
更改器方法与访问器方法
- 只访问对象而不修改对象的方法称为访问器方法。
- 相反则称为更改器方法。
用户定义类
使用null引用
-
判断是否为null的俩种方法:
- 宽容型:
// 若n不为null,则name为n;若n为null,则name为“unkown” String n = null; name = Objects.requireNonNullElse(n,"unkown");
- 严格型:
// 若n为null,则抛出自定义异常 String n = null; Objects.requireNonNull(n,"The name cannot be null");
隐式参数与显式参数
- 是否将某个方法设为内联方法是Java虚拟机的任务,编译器会监视简短且经常调用而没有被覆盖的方法调用,并进行优化。
封装的优点
- 不要编写返回可变对象的访问器方法,如果需要返回一个可变对象的引用,应该返回它的克隆(.clone())。
基于类的访问权限
- 类的方法可以访问任何该类的对象的私有字段。
对象构造
调用另一个构造器
- 如果构造器的第一个语句是this(…),这个构造器将调用同一个类的另一个构造器。
初始化块
- 在类的声明中,可以包含任意多个代码块,只要构造这个类的对象,这些块就会执行。
- 首先运行初始化块,再运行构造器的主体部分。
- 调用构造器的具体顺序:
- 如果构造器的第一行调用了另一个构造器,执行第二个构造器。
- 数据字段初始化为默认值。
- 按照出现顺序,执行所有字段初始化方法和初始化块。
- 执行构造器主体代码。
- 静态初始化块:
static
{
......
}
包
静态导入
- 导入静态方法和静态字段,如:
import static java.lang.System.*; // 使用System的静态方法和静态字段无需加前缀。
import static java.lang.System.out; // 导入特定方法或字段。
类路径
- JAR文件使用ZIP格式组织文件和目录。可以使用任何ZIP工具查看JAR文件。
文档注释
类注释
- 类注释必须放在import语句之后,类定义之前。
方法注释
- 标记:
@param ...
参数
@return ...
返回
@throws ...
抛出异常
字段注释
- 只需要对公共字段(静态变量)建立文档。
通用注释
@since ...
引入特性版本的描述,如@since 1.7.1
@author ...
作者
@version
版本
@see和@link 可以使用超链接
包注释
-
想要产生包目录,每个包目录添加以下两种之一:
-
package-info.java 的文件,文件包含/** … */ 的注释,后面是应该package语句,不能再有其他的代码和注释。
-
package.html 文件,抽取
<body>...</body>
之间的所有文本。
-