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關鍵字就是多餘的。