1. 程式人生 > >java中this指標的作用?

java中this指標的作用?

一.

   廢話不多說,看程式碼:

  我們定義一個Student類,用來測試,其中,Student中有兩個成員變數:StuName(學生姓名),StuNo(學生學號)。


執行結果:



當我們把this指標加上。


執行結果:


  這是什麼意思呢?

 當我們在一個類中寫一個方法時,當傳入的引數的引數名該類的成員變數名相同,並且把引數賦值給與之同名的成員變數時(如圖),



此時編譯器並不知道到底是引數賦值給成員變數,還是成員變數賦值給引數;所以就有了this指標的誕生;

當我們把this指標加上時(如圖):



這時編譯器就會知道,是把傳進來的引數賦值給成員變數。

二,

   說到這裡相信大家應該就明白了,那接下來我們來看看如果傳入的引數的引數名

不同時,會是怎樣的? 來我們上程式碼:





執行結果:

加上this指標之後:



執行結果:



 通過以上程式碼我們可以發現,當我們傳入的引數的引數名不同時,並不會對結果造成影響,這又是什麼情況呢? 

  原來因為編譯器會隱示的給成員變數新增this指標,所以當引數不同時,照樣可以運行了。

  小夥伴們懂了嗎?

 不管懂不懂我也要廢話幾句。其實this指標其實就是一個類的物件,舉個例子;如圖,我們在Student類中新增一個方法交useThis(),並在方法裡用this指標呼叫該類的其他方法;



執行結果:


  這又是什麼原因呢?

  當我們用Student定義一個物件時,



如圖中的s,此時s就會有一個屬於自己的this指標,並指向他本身,在類的內部就可以用this指標(像一般的物件呼叫方法一樣)呼叫類的方法。

三,

 以上是我對this指標的一些理解,希望對你有幫助,當你理解了this指標之後,在之後學習其他語言都會遇到,到時候你就能輕鬆的理解這個東西了。

四,  

若有異議,下方留言,我們一起討論!