更新時間:2020-04-03 15:48:55 來源:動力節點 瀏覽2658次
我們在最初學習編程的時候,就遇到過這樣一個關鍵字this,意思就是只帶當前對象,其實this關鍵字還有很多其他的用途,因此就花了這篇文章好好的去介紹一下
為什么要引入this關鍵字?
現在出現一個問題,就是你希望在方法的內部去獲得當前對象的引用。現在java提供了一個關鍵字this。他就表示當前對象的引用。
使用this關鍵字
一、一個方法調用同一個類的另外一個方法,
這種情況是不需要使用this的。直接使用即可。
二. 當成員變量和局部變量重名時,在方法中使用this時,表示的是該方法所在類中的成員變量。(this是當前對象自己)
結果為:s = HelloWorld!
1 -> this.s = Hello
2 ->this.s = HelloWorld!
s=HelloWorld!
在這個例子中,構造函數Hello中,參數s與類Hello的成員變量s同名,這時如果直接對s進行操作則是對參數s進行操作。若要對類Hello的成員變量s進行操作就應該用this進行引用。運行結果的第一行就是直接對構造函數中傳遞過來的參數s進行打印結果; 第二行是對成員變量s的打印;第三行是先對成員變量s賦傳過來的參數s值后再打印,所以結果是HelloWorld!而第四行是主函數中直接打印類中的成員變量的值,也可以驗證成員變量值的改變。
三.把自己當作參數傳遞時,也可以用this.(this作當前參數進行傳遞)
結果為:
HelloAA from A!
HelloAB from B!
HelloAA from A!
HelloAA from A!
HelloAB from B!
在這個例子中,對象A的構造函數中,用new B(this)把對象A自己作為參數傳遞給了對象B的構造函數。
四.當在匿名類中用this時,這個this則指的是匿名類或內部類本身。
這時如果我們要使用外部類的方法和變量的話,則應該加上外部類的類名。如:
在上面這個例子中, thread 是一個匿名類對象,在它的定義中,它的 run 函數里用到了外部類的 run 函數。這時由于函數同名,直接調用就不行了。這時有兩種辦法,一種就是把外部的 run 函數換一個名字,但這種辦法對于一個開發到中途的應用來說是不可取的。那么就可以用這個例子中的辦法用外部類的類名加上 this 引用來說明要調用的是外部類的方法 run。
五. 在構造函數中,通過this可以調用同一類中別的構造函數。如:
為了更確切的說明this用法,另外一個例子為:
結果為:this測試成功25
值得注意的是:
1:在構造調用另一個構造函數,調用動作必須置于最起始的位置。
2:不能在構造函數以外的任何函數內調用構造函數。
3:在一個構造函數內只能調用一個構造函數。這一點在第二個構造方法內可以看到,第一個this(str),第二個為this.age=age;
六.this同時傳遞多個參數
結果為:9 10
以上就是動力節點java培訓機構的小編針對“Java基礎學習:java中的this關鍵字”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習