这里我有点迷糊了,老师们

这里我有点迷糊了,老师们

http://img1.sycdn.imooc.com//climg/5f8563be09e4ac3d10680688.jpg这里的就近原则该怎么理解?这个就近指的是哪两个就近?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,

1、关于就近原则:我们可以理解为当方法参数中含有name属性时,我们首先找到的就是这个参数中的name进行操作,找不到的情况,才会在类中找name属性。

2、这里的最近是指如下这里:

http://img1.sycdn.imooc.com//climg/5f857fa309902c6810960353.jpg

3、起初name=name,就相当于将传入的参数属性自己赋给自己,并没有赋值给方法外的name属性,也就是当前对象的name属性,所以在进行输出时,获取类的name属性,也就是当前对象的name值,会是null。

而name=newName时,根据就近原则,类中只有成员属性name与此相同,所以传进来的参数应该为属性赋值

http://img1.sycdn.imooc.com//climg/5f85807e09e26f5a08740263.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 昜某人 提问者 #1
    感谢,我往后看了几节弄明白了
    2020-10-13 18:44:09
晓舟 2022-04-08 09:10:55

视频老师在这一节还搞了很多动画,但我们都很菜,
这里她缺少介绍了一个小的知识点就是变量的作用范围,方法调用那里的传入的参数变量和方法里面的变量名称如果是同名,系统就会认为是同一个。和外面同名的变量是不同的。

慕函数4309305 2020-10-13 16:35:19

当然是构造方法的参数变量name,month是最近的。因为构造方法里就有这两个参数啊。

要比较哪个更近的是构造方法的参数变量name,month和类的变量name,month。

  • 提问者 昜某人 #1
    大佬,那为什么参数名字改成newName,他就能赋值给属性了,我有点搅不清了
    2020-10-13 16:48:18
  • 提问者 昜某人 #2
    是构造方法里面的name把值又传给了参数变量里面name么? 然后如果参数变量里面的name改了名字,方法就知道吧值传给类里面的变量了吗? 我这么理解可以吗,大佬,感谢感谢
    2020-10-13 16:55:04
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师