java中this指標的作用?
阿新 • • 發佈:2019-01-04
一.
廢話不多說,看程式碼:
我們定義一個Student類,用來測試,其中,Student中有兩個成員變數:StuName(學生姓名),StuNo(學生學號)。
執行結果:
當我們把this指標加上。
執行結果:
這是什麼意思呢?
當我們在一個類中寫一個方法時,當傳入的引數的引數名與該類的成員變數名相同,並且把引數賦值給與之同名的成員變數時(如圖),
此時編譯器並不知道到底是引數賦值給成員變數,還是成員變數賦值給引數;所以就有了this指標的誕生;
當我們把this指標加上時(如圖):
這時編譯器就會知道,是把傳進來的引數賦值給成員變數。
二,
說到這裡相信大家應該就明白了,那接下來我們來看看如果傳入的引數的引數名 不同時,會是怎樣的? 來我們上程式碼:
執行結果:
加上this指標之後:
執行結果:
通過以上程式碼我們可以發現,當我們傳入的引數的引數名不同時,並不會對結果造成影響,這又是什麼情況呢?
原來因為編譯器會隱示的給成員變數新增this指標,所以當引數不同時,照樣可以運行了。
小夥伴們懂了嗎?
不管懂不懂我也要廢話幾句。其實this指標其實就是一個類的物件,舉個例子;如圖,我們在Student類中新增一個方法交useThis(),並在方法裡用this指標呼叫該類的其他方法;
執行結果:
這又是什麼原因呢?
當我們用Student定義一個物件時,
如圖中的s,此時s就會有一個屬於自己的this指標,並指向他本身,在類的內部就可以用this指標(像一般的物件呼叫方法一樣)呼叫類的方法。
三,
以上是我對this指標的一些理解,希望對你有幫助,當你理解了this指標之後,在之後學習其他語言都會遇到,到時候你就能輕鬆的理解這個東西了。
四,
若有異議,下方留言,我們一起討論!