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條經驗 獲得超8個贊
其實
baz = baz
會提出這個警告
對變量baz的賦值無效
所以你認為錯誤,本地范圍覆蓋了class屬性,所以你必須使用this
關鍵字explictly將變量賦值給class屬性。
否則,賦值為賦值的變量只是作為參數傳遞的變量,而忽略了第一類。這就是為什么this
有用,它不是可讀性的事實,它是明確決定baz
你在談論哪個事實。
我會說
使用
this
的地方不使用會引起歧義(或編譯器警告,這是更重要的),否則見好就收吧。因為它的目的正是在默認假設(首先檢查本地,然后檢查類屬性)是不夠的時候解決歧義。
添加回答
舉報
0/150
提交
取消