4.6.1 重载

有相同的名字, 不同的参数, 就是重载.

  • 编译器来选择构造方法
  • 只有返回值不同不能算重载

方法签名包括:

  • 方法名
  • 方法参数

4.6.2 默认字段初始化

如果在构造器中没有显式为字段设置初始值, 那么将会被设置为默认值:

  • 数值: 0
  • 布尔: false
  • 对象: null

4.6.3 无参数的构造器

4.6.4 显式字段初始化

直接为类中的字段赋值:

  1. class Employee {
  2. private String name = "";
  3. }

public static final int NextID 这种必须初始化.

  1. public class Employee {
  2. public static final int NextID = 1;
  3. ...
  4. }

4.6.5 参数名

构造器参数名不要与字段相同, 否则会遮蔽. 非要使用同名, 那么使用 this.xxx = xxx 进行赋值.

4.6.6 调用另一个构造器

this(p1, p2...)

image.png

4.6.7 初始化块

初始化字段的第三种方法:

  • 先运行初始化块
  • 再运行构造器

image.png

静态初始化块用于初始化静态字段:

  1. static {
  2. var generator = new Random();
  3. nextId = generator.nextInt(10000);
  4. }

4.6.8 对象析构与 finalize 方法

  • 因为 Java 有垃圾回收, 所以不需要人工回收内存
  • 除了内存的其他资源需要手动回收
    • 文件

image.png