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'这个词!
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
其实
baz = baz
会提出这个警告
对变量baz的赋值无效
所以你认为错误,本地范围覆盖了class属性,所以你必须使用this
关键字explictly将变量赋值给class属性。
否则,赋值为赋值的变量只是作为参数传递的变量,而忽略了第一类。这就是为什么this
有用,它不是可读性的事实,它是明确决定baz
你在谈论哪个事实。
我会说
使用
this
的地方不使用会引起歧义(或编译器警告,这是更重要的),否则见好就收吧。因为它的目的正是在默认假设(首先检查本地,然后检查类属性)是不够的时候解决歧义。
添加回答
举报
0/150
提交
取消