老师的思考题

来源:7-4 Java 中的 this 关键字

慕瓜453346

2018-09-30 00:34

public void setScreee(float scree){

this.scree=scree;

}

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

写回答 关注

2回答

  • 洛辰m
    2018-09-30 08:43:30
    已采纳

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


    慕瓜4533...

    谢谢 谢谢,已采纳!!!

    2018-09-30 13:55:44

    共 2 条回复 >

  • 洛辰m
    2018-09-30 08:40:44

    https://img4.mukewang.com/5bb0175b000142fd05930199.jpg

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

    https://img2.mukewang.com/5bb0179700016cb605140192.jpg

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

    https://img1.mukewang.com/5bb01b4d0001094506260046.jpg

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

    https://img3.mukewang.com/5bb017cb0001714b06360355.jpg

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

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


Java入门第二季 升级版

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

530554 学习 · 6091 问题

查看课程

相似问题