背景

Java中的参数遵循就近原则

比如

public class Emp{
    private String name;
    public Emp(String name){
        name=name; // 就近原则, 全是形参的name
    }
}

以上代码中 name=name 其实全是形参的name。 私有的实例变量时无法赋值的。 这时候this不能省

public class Emp{
    private String name;
    public Emp(String name){
        this.name=name;
    }
}

this()

一个类有多个构造函数,

作用:通过当前的构造方法去调用本类的另一个构造方法。

目的: 代码复用

public class Emp{
    private String name;
    private int age
    public Emp(String name,int age){
        this.name=name;
        this.age=age
    }
    
    public Emp(){
        this.name="默认";
        this.age=0;
    }
}

以上可以代码复用

public class Emp{
    private String name;
    private int age
    public Emp(String name,int age){
        this.name=name;
        this.age=age
    }
    
    public Emp(){
        this("默认",0);
    }
}