this的常见用法
一、第一种:this用来区分局部变量和成员变量;
当形参名称与该方法内部的成员名称冲突时,使用this可以对其进行区分;
public class usingOfThis {
private int age;
private String name;
public usingOfThis(int age, String name) {
this.age = age; //this.age就代表的是该方法的成员变量
this.name = name; //this.name代表的是该方法的成员变量
}
}
二、第二种:this用来指代对象本身,(类里面的方法要通过对象来调用,即:对象.方法()。此时this就代表调用方法的对象)
测试代码
public class ThisTest {
public static void main(String[] args) {
usingOfThis one = new usingOfThis(23, "zjh");
usingOfThis twO = new usingOfThis(23, "zjh");
System.out.println(one.equals(twO));
}
}
类中的方法
@Override
public boolean equals(Object obj) {
if (null == obj) {
return false;
}
if (this == obj) {
return true;
}
if (!(obj instanceof usingOfThis)) {
return false;
}
usingOfThis number = (usingOfThis)obj;
return this.age == number.age && this.name.equals(number.name);
}
测试代码中有这样一行代码:System.out.println(one.equals(twO));one这个对象引用类中的equals()方法时,此时方法中的this就是one,this.age就是one.age。
三、第三种:this用来表示构造方法。
public usingOfThis() {
this(0, null);
}
这个this(0, null)就是该类中的双参构造方法
用来表示构造方法时,需注意
- this()只能在构造方法中使用。
- this()只能出现在构造方法中的第一行。
- this()使用要避免递归问题。