关于this传递的问题?

我对this是这样理解的,用引用stu去调用方法的时候,会把stu传给方法里面的this,然后this就表示stu这个引用,但是从图上看并不是直接传给方法里面的this,那么对象在调用方法的时候this又是如何传递进去的呢?

this就是个对当前对象的引用,其实在编译期就帮你处理好了

如果真的是图上所示,那么方法里面的this是堆里面的this引用保存的地址,还是栈里面的stu引用保存的地址,为什么?

this是个特殊的属性资源下载,保存的是对象本身自己的内存地址
stu是栈里的变量,保存的是堆对象的内存地址
所以this和sut都是指向堆对象的内存地址,也就是this和stu自己的内存区域不同(前者在堆里后者在栈里),但是两者的值相同(即指向的内存地址相同)
所以stu调用方法的时候不需要传this,对象本身自己就有this这个属性,它的值和stu的值一样(都是指向同一个内存地址),所以也就达到了调用sut.xx和调用this.xx一样的

这里的this,存放的就是stu 的内容, this.name =stu.name

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值