“的常规用法”;这";在Java类中引用实例变量

“的常规用法”;这";在Java类中引用实例变量,java,coding-style,conventions,instance-variables,Java,Coding Style,Conventions,Instance Variables,下面使用“this”来引用当前类中的实例变量是否可以接受?在PHP中,您必须这样做,但我注意到在Java中,您可以直接按名称调用变量 我个人觉得“this.variable”更容易理解,但如果这不正常,我不想养成坏的编码习惯 谢谢 public class MyClass { /** * Private variable */ private int myInt; /** * Setter method */ pub

下面使用“this”来引用当前类中的实例变量是否可以接受?在PHP中,您必须这样做,但我注意到在Java中,您可以直接按名称调用变量

我个人觉得“this.variable”更容易理解,但如果这不正常,我不想养成坏的编码习惯

谢谢

public class MyClass {  

    /**
     * Private variable
     */
    private int myInt;

    /**
     * Setter method
     */
    public void setMyInt(int value) {
        this.myInt = value;
    }   
}

这在Java中是完全可以接受的做法,尽管它不是必需的(如您所述)。

使用或不使用它,只要在整个代码库中保持一致即可。如果变量被屏蔽(通过参数或本地方法变量),则必须使用它。

除非您的工作场所或项目有一个样式指南明确禁止以这种方式使用
,否则我认为您所做的是完全正确的。我个人只在非常必要的情况下(例如,当我使用相同名称的方法参数初始化实例变量时)才使用
this
,但我见过很多代码总是使用
this
引用成员。它可能更具可读性,当然可读性也不会差太多,所以去读吧

我会这样编写您的代码:

public class MyClass {

  private int myInt;

  public void setMyInt(int myInt) {
    this.myInt = myInt;
  }
}
private int value;

public void setValue(int value) {
     this.value = value;
}

与您的不同之处在于(除了删除了无用的Javadoc之外),在我的代码中,参数与成员变量具有相同的名称。其他用户更愿意为成员变量指定与参数不同的名称,但我们更愿意在必要时使用
this.
作为成员变量的前缀,因为视觉平衡。在使用该标准进行Java编码的10多年中,我们从未遇到过因使用错误变量而导致的错误。

正如人们所说,这不是必需的,但可以接受

也就是说,如果你正在做这样的事情,这是必要的:

public class MyClass {

  private int myInt;

  public void setMyInt(int myInt) {
    this.myInt = myInt;
  }
}
private int value;

public void setValue(int value) {
     this.value = value;
}

它区分类变量和同名参数。我发现自己几乎在我做的每一个setter中都使用了这种模式,这也是我唯一一次使用“this”关键字。

可接受性严格取决于您的风格指南,因为无论哪种方式生成的代码都完全相同。有些人要求,有些人不允许,而且很可能根本不在乎。我想我属于更喜欢我的情妇有不同名字的阵营,因为这有助于我理解自己的处境。很抱歉文档过多。如果一个方法有多个参数,您如何命名参数<代码>值1,
值2
值3
。。。?另一种方法是在参数或成员变量前面加上前缀(或后缀)。但是如果已经有了前缀,为什么还要发明一个新的前缀呢??