1.问题
如图,我们定义了成员变量name,又写了一个方法sayhello,里面的形参之前说过本质也是一个变量,即是局部变量,也叫name。
这时,我们给成员变量赋值为钢门吹雪,局部变量是西域狂鸭,我们输出name,得到的是哪个名字?
答案是西域狂鸭,原因有两点,第一点java中存在就近原则,我们调用sayhello方法时,西域狂鸭离方法近,所以优先打印西域狂鸭。
第二点,我们并没有打印成员变量,而是只给了成员变量赋值,所以打印的肯定只有西域矿鸭
2.那如果我们就不想直接打印成员变量而要通过方法中的name打印出钢门吹雪呢?
这时就可以使用this关键字,this关键字可以区分成员变量和局部变量的重名
3.this关键字的作用和省略规则
.
4.this的介绍
1.代表地址
如图
之前我们直接打印对象的时候出现的是地址,这里我们直接打印this发现出现的也是地址,并且和对象的地址一模一样,说明,this就是对象的地址。
2.谁调用this,this就代表谁
如图,stu1和stu2都调用了print,this分别打印了stu1和stu2的地址
.
5.this内存图
https://kdocs.cn/l/cuQvFYJirzaR?linkname=150996219