为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

白衣非少年 2019-08-27 15:48:43
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();显然是一个糟糕的代码,但它说明了我的例子。在这些情况下,这仅仅取决于个人偏好吗?
查看完整描述

3 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

当你有一个与字段同名的参数时,你应该使用它,否则你会遇到问题。它会编译,但不一定会按你的意愿行事。

至于其他地方,除非为了可读性而需要它,否则不要使用它。如果你到处使用它,你的代码中有20%将包含'this'这个词!


查看完整回答
反对 回复 2019-08-27
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

其实

baz = baz

会提出这个警告

对变量baz的赋值无效

所以你认为错误,本地范围覆盖了class属性,所以你必须使用this关键字explictly将变量赋值给class属性。

否则,赋值为赋值的变量只是作为参数传递的变量,而忽略了第一类。这就是为什么this有用,它不是可读性的事实,它是明确决定baz你在谈论哪个事实。

我会说

使用this的地方不使用会引起歧义(或编译器警告,这是更重要的),否则见好就收吧。因为它的目的正是在默认假设(首先检查本地,然后检查类属性)是不够的时候解决歧义。


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 419 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信