Java学习-面向对象 -this关键字与就近原则-学习理解感悟

如果没有this关键字,类中方法,会自动调用最近的,比如说:

1.此处表示私有的成员变量name

public class Student{
    private String name;  
}

2.在创造对象过程中使用setName用成员方法给成员变量赋值,因为在创造方法时,就像是在写设计说明书,所以方法名必须一看就懂,这样会导致成员方法中的name和成员变量的name重名
 

public String setName(String name){
    name = name;
}

3.出现重名后,就会采取就近原则,此时name离局部变量name更近,就导致了自己赋值了自己,结果外部的全局变量没有被赋值

4.这时使用方法getname输出name,就算离局部变量name近,也只会输出全局变量name,因为方法之间是没有距离这一说的,getname方法看不到setname方法中的name,所以对于它来讲,最近的仍然是全局变量name,但是全局变量name没有被赋值,导致输出会为null

public String getName(){
    return name;
}

5.解决方法就是在name = name;前面的全局变量name前面加一个this,取消就近原则

public String setName(String name){
    this.name = name;
}

6.this代表方法调用者的地址值,如果调用者是s,s地址是001,当使用this.name时,他的意思就是调用001这个地址下的name

关于方法之间没有就近原则是我自己思考出来的,可能还有改进的地方,大佬们可以教教我

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值