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方法中。