当我想在方法中引用实例变量时,我应该使用"this"关键字吗?

Jua*_*era 24 java scope local this instance

我的老师说,当我尝试访问方法中的实例变量时,我应该总是使用this关键字,否则我会执行双重搜索.本地范围搜索,然后是实例范围搜索.

例:

public class Test(){
    int cont=0;
    public void Method(){
        System.out.println(cont);//Should I use This.cont instead?
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望他错了,但我找不到任何论据.

Hov*_*els 38

不,仅this在您发生名称冲突时使用,例如当方法参数与其正在设置的实例字段具有相同名称时.

它可以在其他时间使用,但我们中的许多人认为它只是在代码中添加了不必要的措辞.

  • 这种代码的可读性差.总是使用`this`.否则,每当读者看到对变量的引用时,他们就会怀疑它是本地变量还是实例变量. (10认同)
  • @MohamedEzz:我们同意不同意,但我确实尊重你的意见,并且你的投票完全没问题,因为你认为这是一个合理的理由和你的评论.此致,感谢您的评论. (7认同)
  • 我在Hovercraft任职-首先,如果您编写的代码整洁,结构合理且具有凝聚力,那么任何合格的程序员都应该清楚变量是成员。其次,由于颜色编码,IDE使识别成员变量变得无关紧要。 (2认同)

And*_*mas 23

如果需要,您必须使用this,因为名称冲突,但最好完全避免这些.

如果你愿意,你可以使用this.这纯粹是一种品味问题.

如果你的老师要求,你应该this在你的功课中使用它.

  • 用于暗示较大点的+1:您工作的每个环境都将具有编码约定,即使您不喜欢它们也应该遵循它们,因为一致的代码在眼睛上更容易.如果教师的惯例是总是使用`this`,那就这样吧.(但是没有双重搜索.) (2认同)