this用来指向当前对象的地址。
this的用法:
1)在普通方法中,this总是指向调用该方法的对象。在普通方法中,它是作为一种隐式参数一直就存在着(这句话的意思,就是其实在普通方法中,编译器一直就在用它,只是没有显示出来而已)
例如:
public class TestThis {int a, b, c;void sing(){ //这是一个普通方法}public static void main(String[] args) {TestThis abc = new TestThis();abc.sing();//abc这个对象调用sing()这个方法,实际上这时是this.abc.sing//只不过没有显示出来而已。这时this就指向abc这个对象的地址。}
}
2)在构造方法(即前面学习过的构造器)中,this总是指向正在初始化的对象。
public class TestThis {int a, b, c;TestThis(){//这是一个无参的构造方法}public static void main(String[] args) {TestThis abc = new TestThis();//这个时候this是指向abc}
}
3)在构造方法的重载中,用this避免相同的初始化代码。这种用法中,this必须放在构造方法的第一句。
public class User {int id;String name;String pwd;public User(){}public User(int id, String name, String pwd) {//上面已经//有一个构造方法,所以这里是构造方法重载//下面的this,就是为了在用这个构造方法时,可以正确将参数传递this.id = id;this.name = name;this.pwd = pwd;}public static void main(String[] args) {User u = new User();User u1 = new User(100,"Jason","12345678")}
}
4)this不能用于static方法中。