关键字this是指向调用对象自身。
先来看一段程序
public class ThisTest01 {
public static void main(String[] args) {
Customer c1 = new Customer("张三");
Customer c2 = new Customer("李四");
c1.shopping();
c2.shopping();
}
}
class Customer{
String name;
public Customer() {
;
}
public Customer(String s) {
name = s;
}
public void shopping() {
System.out.println(name+"正在购物");
}
}
结果:
其中,this指针是隐藏起来的。我们可以在内存图中画出。
我们思考这样一个问题,当我们执行c1.shopping();
时,会调用shopping执行System.out.println(name+“正在购物”);
,但是name是实例变量,应该使用点的方式访问,所以name前面应该是这样写的:c1.name,但是,如果我们这样写,那么程序将无法执行接下来的c2.shopping();
,为了解决这个问题,我们使用this指针,this.name
,当执行
c1.shopping();
时,this指向与c1相同,类似,当执行c2.shopping();
,this指向与c2相同。这就是this指针的作用。