Java核心技术(卷I) 6、Java对象构造(构造器)

2021-02-18  本文已影响0人  kaiker

1、重载

就是一个构造器(方法也可以)有多个同名的实现,构造对象的时候,根据参数判断具体使用哪一个。

2、默认字段初始化

如果构造器中没有显式地为字段设置初始值。

3、无参数构造器

public Employee(){
  // 这里不设置就按第二部分的默认值进行初始化
  name = "";
  salary = 0;
  hireDay = LocalDate.now(); // 静态工厂方法构造对象
}

4、显式字段初始化

class Employee{
  private String name = "";
}
class Employee{
  private static int nextId;
  private int id = assignId();
  private static int assignId(){
    int r = nextId;
    nextId++;
    return r;
  }
}

5、this

public Employee(String name, double salary){
  this.name = name;  // this就是隐式参数(隐式参数:https://www.jianshu.com/p/4aa648e19b5a)
  this.salary = salary;
}
public Employee(double s){
  // 调用另外一个Employee(String, double)构造器
  this("Employee #" + nextId, s);
  nextId++;
}

6、初始化块

{
  id = nextId;
  nextId++;
}
static{
  var generator = new Random();
  nextId = generator.nextInt(10000);
}
上一篇 下一篇

猜你喜欢

热点阅读