Java基礎(chǔ)學(xué)習(xí):java中的this關(guān)鍵字

Java基礎(chǔ)學(xué)習(xí):java中的this關(guān)鍵字

北大青鳥(niǎo)長(zhǎng)沙麓谷校區(qū)      2022-04-11 15:00:01     6

Java基礎(chǔ)學(xué)習(xí):java中的this關(guān)鍵字,  我們?cè)谧畛鯇W(xué)習(xí)編程的時(shí)候,就遇到過(guò)這樣一個(gè)關(guān)鍵字this,意思就是只帶當(dāng)前對(duì)象,其實(shí)this關(guān)鍵字還有很多其他的用途,因此就

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹


  我們?cè)谧畛鯇W(xué)習(xí)編程的時(shí)候,就遇到過(guò)這樣一個(gè)關(guān)鍵字this,意思就是只帶當(dāng)前對(duì)象,其實(shí)this關(guān)鍵字還有很多其他的用途,因此就花了這篇文章好好的去介紹一下


  為什么要引入this關(guān)鍵字?


  現(xiàn)在出現(xiàn)一個(gè)問(wèn)題,就是你希望在方法的內(nèi)部去獲得當(dāng)前對(duì)象的引用?,F(xiàn)在java提供了一個(gè)關(guān)鍵字this。他就表示當(dāng)前對(duì)象的引用。


  使用this關(guān)鍵字


  一、一個(gè)方法調(diào)用同一個(gè)類(lèi)的另外一個(gè)方法,


  這種情況是不需要使用this的。直接使用即可。



  二. 當(dāng)成員變量和局部變量重名時(shí),在方法中使用this時(shí),表示的是該方法所在類(lèi)中的成員變量。(this是當(dāng)前對(duì)象自己)



  結(jié)果為:s = HelloWorld!


  1 -> this.s = Hello


  2 ->this.s = HelloWorld!


  s=HelloWorld!


  在這個(gè)例子中,構(gòu)造函數(shù)Hello中,參數(shù)s與類(lèi)Hello的成員變量s同名,這時(shí)如果直接對(duì)s進(jìn)行操作則是對(duì)參數(shù)s進(jìn)行操作。若要對(duì)類(lèi)Hello的成員變量s進(jìn)行操作就應(yīng)該用this進(jìn)行引用。運(yùn)行結(jié)果的第一行就是直接對(duì)構(gòu)造函數(shù)中傳遞過(guò)來(lái)的參數(shù)s進(jìn)行打印結(jié)果; 第二行是對(duì)成員變量s的打印;第三行是先對(duì)成員變量s賦傳過(guò)來(lái)的參數(shù)s值后再打印,所以結(jié)果是HelloWorld!而第四行是主函數(shù)中直接打印類(lèi)中的成員變量的值,也可以驗(yàn)證成員變量值的改變。


  三.把自己當(dāng)作參數(shù)傳遞時(shí),也可以用this.(this作當(dāng)前參數(shù)進(jìn)行傳遞)



  結(jié)果為:


  HelloAA from A!


  HelloAB from B!


  HelloAA from A!


  HelloAA from A!


  HelloAB from B!


  在這個(gè)例子中,對(duì)象A的構(gòu)造函數(shù)中,用new B(this)把對(duì)象A自己作為參數(shù)傳遞給了對(duì)象B的構(gòu)造函數(shù)。


  四.當(dāng)在匿名類(lèi)中用this時(shí),這個(gè)this則指的是匿名類(lèi)或內(nèi)部類(lèi)本身。


  這時(shí)如果我們要使用外部類(lèi)的方法和變量的話,則應(yīng)該加上外部類(lèi)的類(lèi)名。如:



  在上面這個(gè)例子中, thread 是一個(gè)匿名類(lèi)對(duì)象,在它的定義中,它的 run 函數(shù)里用到了外部類(lèi)的 run 函數(shù)。這時(shí)由于函數(shù)同名,直接調(diào)用就不行了。這時(shí)有兩種辦法,一種就是把外部的 run 函數(shù)換一個(gè)名字,但這種辦法對(duì)于一個(gè)開(kāi)發(fā)到中途的應(yīng)用來(lái)說(shuō)是不可取的。那么就可以用這個(gè)例子中的辦法用外部類(lèi)的類(lèi)名加上 this 引用來(lái)說(shuō)明要調(diào)用的是外部類(lèi)的方法 run。


  五. 在構(gòu)造函數(shù)中,通過(guò)this可以調(diào)用同一類(lèi)中別的構(gòu)造函數(shù)。如:



  為了更確切的說(shuō)明this用法,另外一個(gè)例子為:



  結(jié)果為:this測(cè)試成功25


  值得注意的是:


  1:在構(gòu)造調(diào)用另一個(gè)構(gòu)造函數(shù),調(diào)用動(dòng)作必須置于最起始的位置。


  2:不能在構(gòu)造函數(shù)以外的任何函數(shù)內(nèi)調(diào)用構(gòu)造函數(shù)。


  3:在一個(gè)構(gòu)造函數(shù)內(nèi)只能調(diào)用一個(gè)構(gòu)造函數(shù)。這一點(diǎn)在第二個(gè)構(gòu)造方法內(nèi)可以看到,第一個(gè)this(str),第二個(gè)為this.age=age;


  六.this同時(shí)傳遞多個(gè)參數(shù)



  結(jié)果為:9 10


  以上就是北大青鳥(niǎo)長(zhǎng)沙麓谷校區(qū)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)學(xué)習(xí):java中的this關(guān)鍵字”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。


Java基礎(chǔ)學(xué)習(xí)

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。