4.6.1 重载
有相同的名字, 不同的参数, 就是重载.
- 编译器来选择构造方法
- 只有返回值不同不能算重载
方法签名包括:
- 方法名
- 方法参数
4.6.2 默认字段初始化
如果在构造器中没有显式为字段设置初始值, 那么将会被设置为默认值:
- 数值: 0
- 布尔: false
- 对象: null
4.6.3 无参数的构造器
4.6.4 显式字段初始化
直接为类中的字段赋值:
class Employee {
private String name = "";
}
public static final int NextID
这种必须初始化.
public class Employee {
public static final int NextID = 1;
...
}
4.6.5 参数名
构造器参数名不要与字段相同, 否则会遮蔽. 非要使用同名, 那么使用 this.xxx = xxx
进行赋值.
4.6.6 调用另一个构造器
this(p1, p2...)
4.6.7 初始化块
初始化字段的第三种方法:
- 先运行初始化块
- 再运行构造器
静态初始化块用于初始化静态字段:
static {
var generator = new Random();
nextId = generator.nextInt(10000);
}
4.6.8 对象析构与 finalize 方法
- 因为 Java 有垃圾回收, 所以不需要人工回收内存
- 除了内存的其他资源需要手动回收
- 文件