this关键字,是指代的当前对象。
先来一段代码

class User{
  private Integer id;
  private String email;
  public void init(Integer id,String email){
    id = id;
    email = email;
  }
  public void out(){
    System.out.println("id="+id+",email="+email);
  }
  //...
}

可想而知,当调用init方法进行初始化的时候,id=null,email=null,除非init的参数不叫id,不叫email,不然就找不到哪个参数对应哪个参数。

为了解决这个问题,this关键字就起到了不小的作用

class User{
  private Integer id;
  private String email;
  public void init(Integer id,String email){
    this.id = id;
    this.email = email;
  }
  public void out(){
    System.out.println("id="+id+",email="+email);
  }
}

通过添加了this之后,id和email就会显示为你所输入的内容。

比如,你的对象为User user = new User();

那么,这里的this,就相当于user。

this.id 等价于 user.id.

除此之外,在构造函数中,this也是很有作用的。

比如

public User(){

}
public User(Integer id){
  this.id = id;
}

public User(Integer id,String email){
   this(id);//相当于this.id = id;
   this.email = email;
}

用this(…)指代当前类中的不同构造函数。