亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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條經驗 獲得超8個贊

其實

baz = baz

會提出這個警告

對變量baz的賦值無效

所以你認為錯誤,本地范圍覆蓋了class屬性,所以你必須使用this關鍵字explictly將變量賦值給class屬性。

否則,賦值為賦值的變量只是作為參數傳遞的變量,而忽略了第一類。這就是為什么this有用,它不是可讀性的事實,它是明確決定baz你在談論哪個事實。

我會說

使用this的地方不使用會引起歧義(或編譯器警告,這是更重要的),否則見好就收吧。因為它的目的正是在默認假設(首先檢查本地,然后檢查類屬性)是不夠的時候解決歧義。


查看完整回答
反對 回復 2019-08-27
  • 3 回答
  • 0 關注
  • 431 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號