在setters中使用"this"

Chu*_*ber 9 java

我发现以下两种创建setter的方法没有真正区别,但我想知道我是不是天真.比另一个更令人满意吗?

public void fooSetter(String bar)
{
    _bar = bar;
}


public void fooSetter(String bar)
{
    this._bar = bar;
}
Run Code Online (Sandbox Code Playgroud)

Ken*_*art 16

在这种情况下没有语义差异,因为没有歧义.另一方面,如果您的实例字段也被调用,barthis需要消除歧义:

public void fooSetter(String bar)
{
    this.bar = bar;
}
Run Code Online (Sandbox Code Playgroud)

  • 值得一提的是,`_bar`中的下划线对于Java中的私有成员变量来说并不常见 - 通常只是`bar`. (4认同)
  • 但为什么m_bar?为什么不只是'酒吧'?所有这些_bar m_bar的东西都是C++的遗物,需要它.Java中不需要. (3认同)

Kir*_*oll 7

你不需要"这个",因为没有歧义.("bar"和"_bar"是不同的.现在如果你的领域被称为"bar",你需要它)