问答详情
源自:7-4 Java 中的 this 关键字

老师的思考题

public void setScreee(float scree){

this.scree=scree;

}

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

提问者:慕瓜453346 2018-09-30 00:34

个回答

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

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


  • 洛辰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