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(…)指代当前类中的不同构造函数。