关于吸气剂的问题&塞特斯

时间:2011-09-25 21:00:43

标签: java getter-setter

我知道这对许多人来说可能是一个愚蠢的问题,但我通常喜欢坚持正确/更好的实施。在Java中,在编写getter / setter时,最好是使用this引用实例变量还是直接访问它?

由于

4 个答案:

答案 0 :(得分:5)

编写setter时,您通常需要使用this引用实例变量本地变量)以区分实例变量和参数; e.g。

public void setFoo(int foo) {
  this.foo = foo;
}

但是,在编写getter方法时,通常不需要为实例变量添加前缀:

public int getFoo() {
  return foo;
}

答案 1 :(得分:3)

只要你提到适当的变量,它就没关系了。

然而,通常使用this来引用本地字段,这样就不会将它们与局部变量混淆:

public void setField(int field)[
    this.field = field;
}

答案 2 :(得分:1)

这只是品味的问题,尽管它有一些特殊的用例。

继承时,this关键字可用于例程和变量,以强调它们实际上属于超类(或此类),而不是例如静态导入。

它也常用于从局部变量中消除歧义参数。例如,

private Foo foo;
public void setFoo(Foo foo) {
     this.foo = foo;
}

答案 3 :(得分:0)

指定this可以缓解您稍后可能遇到的任何变量范围问题。

但是,没有必要这样做。