Java - 何时使用 'this' 关键字

标签 java coding-style this

在 Java 中使用 this 关键字的最佳做法是什么?例如,我有以下类(class):

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();

显然代码很差,但它说明了我的示例。在这些情况下是否仅取决于个人喜好?

最佳答案

but Java is clever enough to know what is happening if I change the statement in the constructor to

  bar = bar;

错误!它可以编译,但并没有按照您的想法执行!

至于什么时候用,很多都是个人喜好。我喜欢在我的公共(public)方法中使用 this,即使它是不必要的,因为这是接口(interface)发生的地方,并且很高兴断言什么是我的,什么不是。

作为引用,您可以查看有关 this.subject 的 Oracle 的 Java 教程;-)

http://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html

关于Java - 何时使用 'this' 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2429062/

相关文章:

java - 在大型 if/else 结构中调用函数/类的好方法

Python 编码标准/最佳实践

java - this:不能在静态上下文中使用 this

java - 如何通过 VTD-XML 中的节点名称-值合并(加入)两个不同的 xml 文件?

java - onTouch 无法正常工作

java - Servlet 服务差的 Servlet

delphi - 如何设置结果值?

javascript - 继承时原型(prototype)方法中的“this”未按预期解析

c++ - 分配 'this' 指针的内存

java - 使用 Robolectric 对 Toast 消息内容进行单元测试