"这个"vs正常初始化java

Moh*_*hit 1 java

我是java的初学者,慢慢开始感受这种语言.

我很难理解"这个"变量.

例如,哪个更好..为什么?

  public class Foo{
   int a;
   public Foo(int _a){
   a = _a;
     }
 }
Run Code Online (Sandbox Code Playgroud)

VS

public class Foo{
   int a;
   public Foo(int _a){
   this.a = _a;
     }
 }
Run Code Online (Sandbox Code Playgroud)

谢谢

duf*_*ymo 8

就个人而言,我讨厌那些使用下划线或"m_"来区分变量的约定.这就是IDE要明确的内容.

this用来清楚地描述属于当前实例的变量.

你的例子都没有任何优势.您可以通过查看生成的字节代码向自己证明.如果你使用javap,你会看到两个编译成相同的代码.

在我看来,它更多地与你自己和其他程序员的可读性有关.良好的IDE,如IntelliJ,使用突出显示和颜色编码,使其更清晰.

绝对需要的一种情况是方法参数和私有成员之间存在名称冲突.然后你必须使用this消除歧义哪个是编译器:

public class Foo {
    private int x;
    public void setX(int x) {
        this.x = x;  // this is required here.
    }
}
Run Code Online (Sandbox Code Playgroud)

  • +1 - 首先,"_ xyz"是许多样式指南中的样式违规. (2认同)