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

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

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

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

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


白衣非少年
浏览 420回答 3
3回答

慕田峪4524236

当你有一个与字段同名的参数时,你应该使用它,否则你会遇到问题。它会编译,但不一定会按你的意愿行事。至于其他地方,除非为了可读性而需要它,否则不要使用它。如果你到处使用它,你的代码中有20%将包含'this'这个词!

qq_遁去的一_1

其实baz = baz会提出这个警告对变量baz的赋值无效所以你认为错误,本地范围覆盖了class属性,所以你必须使用this关键字explictly将变量赋值给class属性。否则,赋值为赋值的变量只是作为参数传递的变量,而忽略了第一类。这就是为什么this有用,它不是可读性的事实,它是明确决定baz你在谈论哪个事实。我会说使用this的地方不使用会引起歧义(或编译器警告,这是更重要的),否则见好就收吧。因为它的目的正是在默认假设(首先检查本地,然后检查类属性)是不够的时候解决歧义。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java