我知道这对许多人来说可能是一个愚蠢的问题,但我通常喜欢坚持正确/更好的实施。在Java中,在编写getter / setter时,最好是使用this
引用实例变量还是直接访问它?
由于
答案 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
可以缓解您稍后可能遇到的任何变量范围问题。