【发布时间】:2011-01-26 14:37:04
【问题描述】:
在 Java 中使用 this 关键字的最佳做法是什么?例如,我有以下课程:
class Foo {
Bar bar;
public Foo(Bar bar) {
this.bar = bar;
}
}
这很好,但是如果我将构造函数中的语句更改为,Java 足够聪明,可以知道会发生什么
bar = bar;
那么为什么要使用this 关键字呢? (我意识到在某些情况下,完全有必要使用它,我只是要求这样的情况)。实际上,我倾向于纯粹为了可读性而使用关键字,但常见的做法是什么?例如,在整个商店中使用它会使我的代码看起来有点混乱
boolean baz;
int someIndex = 5;
this.baz = this.bar.getSomeNumber() == this.someBarArray[this.someIndex].getSomeNumber();
显然代码很差,但它说明了我的示例。在这些情况下是否仅取决于个人喜好?
【问题讨论】:
-
2天前发过同样的问题:stackoverflow.com/questions/2411270/… 顺便还有更多骗子:google.com/…
-
我的错,我使用 SO 搜索进行了(显然非常)快速搜索,但没有找到任何东西......
-
正如其他人指出的那样,您正在对上面的 self (参数)进行分配。但我的经验法则是使用
this,当它使程序更可读。如果您对成员变量使用某种命名约定(例如_bar或mBar),那么写this._bar只是额外的噪音,恕我直言。 -
真正的问题(对我来说)是为什么人们在地球上对方法参数和成员变量使用相同的名称?我无法忍受这种做法,因为它只会带来混乱的机会。不幸的是(对我来说)这是非常流行的,大多数自动生成代码的框架都这样做:/ Grr...
-
如果你不在局部变量中使用相同的标识符,
this在你的第一种情况下可以省略。而且,至于其他情况,我认为正确性和可读性是美。
标签: java coding-style this