this关键字用来表示当前对象本,或当前类的一个实例,通过this可以调用本对象的所有属性和方法。例如:
public class Demo{
public int x = 10;
public int y = 15;
public void sum(){
// 通过 this 点取成员变量
int z = this.x + this.y;
System.out.println("x + y = " + z);
}
public static void main(String[] args) {
Demo obj = new Demo();
obj.sum();
}
}
上面的程序中,obj是Demo类的一个实例,this和obj等价(此时obj就是this,this就是obj),执行int z=this.x+this.y;,就相当于执行int z=obj.x+obj.y;。
而需要注意的是,this只有在实例化后才有意义。
使用this关键字还可以区分同名变量
成员变量与方法内部的变量重名时,希望在方法内部调用成员变量,怎么办呢?这时候只能使用this关键字,例如:
public class Demo1 {
int a;
int b;
public Demo1(int a,int b) {
this.a=a;
this.b=b;
}
public void add(){
System.out.println("a+b="+(a+b));
}
public static void main(String[] args) {
Demo1 d=new Demo1(10, 5);
d.add();
}
}
Java默认将所有成员变量和成员方法与this关联在一起,因此有些情况下使用this关键字就是多余的。