Java学习:十一.this和static---this的内存结构

关键字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指针的作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值