第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Java - 何時(shí)使用'this'關(guān)鍵字

Java - 何時(shí)使用'this'關(guān)鍵字

白衣非少年 2019-08-27 15:48:43
Java - 何時(shí)使用'this'關(guān)鍵字this在Java中使用關(guān)鍵字的最佳做法是什么?例如,我有以下類(lèi):class Foo {     Bar bar;     public Foo(Bar bar) {          this.bar = bar;     }}這很好,但是如果我將構(gòu)造函數(shù)中的語(yǔ)句更改為,Java就足夠聰明地知道發(fā)生了什么 bar = bar;那么為什么要使用this關(guān)鍵字?(我知道在某些情況下,使用它是完全必要的,我只是要求這樣的情況)。實(shí)際上,我傾向于純粹為了可讀性而使用關(guān)鍵字,但通常的做法是什么?例如,在整個(gè)商店中使用它會(huì)使我的代碼看起來(lái)有些混亂boolean baz;int someIndex = 5;this.baz = this.bar.getSomeNumber() == this.someBarArray[this.someIndex].getSomeNumber();顯然是一個(gè)糟糕的代碼,但它說(shuō)明了我的例子。在這些情況下,這僅僅取決于個(gè)人偏好嗎?
查看完整描述

3 回答

?
慕田峪4524236

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊

當(dāng)你有一個(gè)與字段同名的參數(shù)時(shí),你應(yīng)該使用它,否則你會(huì)遇到問(wèn)題。它會(huì)編譯,但不一定會(huì)按你的意愿行事。

至于其他地方,除非為了可讀性而需要它,否則不要使用它。如果你到處使用它,你的代碼中有20%將包含'this'這個(gè)詞!


查看完整回答
反對(duì) 回復(fù) 2019-08-27
?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

其實(shí)

baz = baz

會(huì)提出這個(gè)警告

對(duì)變量baz的賦值無(wú)效

所以你認(rèn)為錯(cuò)誤,本地范圍覆蓋了class屬性,所以你必須使用this關(guān)鍵字explictly將變量賦值給class屬性。

否則,賦值為賦值的變量只是作為參數(shù)傳遞的變量,而忽略了第一類(lèi)。這就是為什么this有用,它不是可讀性的事實(shí),它是明確決定baz你在談?wù)撃膫€(gè)事實(shí)。

我會(huì)說(shuō)

使用this的地方不使用會(huì)引起歧義(或編譯器警告,這是更重要的),否則見(jiàn)好就收吧。因?yàn)樗哪康恼窃谀J(rèn)假設(shè)(首先檢查本地,然后檢查類(lèi)屬性)是不夠的時(shí)候解決歧義。


查看完整回答
反對(duì) 回復(fù) 2019-08-27
  • 3 回答
  • 0 關(guān)注
  • 433 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)