Java - 何时使用“this”关键字

2022-08-31 12:43:49

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

显然是一段糟糕的代码,但它说明了我的例子。在这些情况下,这仅仅是个人喜好吗?


答案 1

但是Java足够聪明,知道如果我将构造函数中的语句更改为

  bar = bar;

假!它可以编译,但它不会做你认为它所做的!

至于何时使用它,很多都是个人喜好。我喜欢在我的公共方法中使用,即使它是不必要的,因为这是接口发生的地方,断言什么是我的,什么是不重要的。this

作为参考,您可以查看Oracle的Java教程,了解这个.subject ;-)

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


答案 2

当您的参数与字段同名时,应使用它,否则会遇到问题。它会编译,但不一定能做你想做的事。

至于其他地方,除非为了可读性而需要,否则不要使用它。如果你在任何地方使用它,你的代码中有20%将由“this”这个词组成!