为了账号安全,请及时绑定邮箱和手机立即绑定

老师的思考题

public void setScreee(float scree){

this.scree=scree;

}

如果去掉this会怎么么样呢????

正在回答

2 回答

screen=screen到底代表的是什么含义?根据局部变量的作用域,在方法内部,如果局部变量与成员变量同名的话,那么是以局部变量为准。可是在screen=screen这个赋值语句中,将局部变量的值赋值给自己,显然并不是很合适。根据代码的含义,本来的意思应该是将局部变量赋值给成员变量。为了更清晰的表达这个含义,为此最好采用如下的书写格式this.screen=screen


7 回复 有任何疑惑可以回复我~
#1

洛辰m

这个有点长,但是很简单,你看完就理解了,手打不易希望采纳。
2018-09-30 回复 有任何疑惑可以回复我~
#2

慕瓜453346 提问者

谢谢 谢谢,已采纳!!!
2018-09-30 回复 有任何疑惑可以回复我~

https://img1.sycdn.imooc.com//5bb0175b000142fd05930199.jpg

这是有this.screen = screen;的运行结果,

https://img1.sycdn.imooc.com//5bb0179700016cb605140192.jpg

这是没有this的结果,这就是区别。

https://img1.sycdn.imooc.com//5bb01b4d0001094506260046.jpg

看见这一行前面的警告了吗。点击你就会发现eclipse已经提示你此次赋值是无效的。

https://img1.sycdn.imooc.com//5bb017cb0001714b06360355.jpg

都是用这个测试类运行的,结果如上面两个图,

screen=screen到底代表的是什么含义?根据局部变量的作用域,在方法内部,如果局部变量与成员变量同名的话,那么是以局部变量为准。可是在screen=screen这个赋值语句中,将局部变量的值赋值给自己,显然并不是很合适。根据代码的含义,本来的意思应该是将局部变量赋值给成员变量。为了更清晰的表达这个含义,为此最好采用如下的书写格式this.screen=screen


3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530696    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

老师的思考题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信