close

如何使用this調用成員變數和成員函數?

16_範例_Person.png  

  • 在此this.namethis指的是「調用此一函數的物件」,因此於結果列印時,可分別印出person1的名字是張三,person2的名字則是李四。相應於日常生活,可將「this」看成是「我」這個字,即不同人說我時,所代表的就是說我的那個人。
  • 在參數為空或參數不同名時,this可被省略。而如成員變數與區域變數同名,且方法體中使用的是無加this的變數時,該函數會取最近的變數(即區域變數)的值,需注意!!
  • this除了可調用成員變數,也可調用成員函數,只需將其看成一個物件即可。

16_範例_Main.png 16_範例_Main結果.png  

 

如何使用this調用建構函數

範例1-同名之區域變數賦值給成員變數之使用方法

16_範例_ConstructorPerson1.png  

  • 在此如需將同名之區域變數賦值給成員變數的話,前面的成員變數需加上「this」。
  • 而此一情況用於解決同一類型參數過多,且為提升程式之可讀性等情況。

 

範例2-為簡化重複賦值之代碼與如何使用this調用本類的建構函數

16_範例_ConstructorPerson.png  

  • 使用this調用本類建構函數之格式:this([參數]) (註:[參數]是指可能會有參數類型與個數,但需看調用的建構函數為何)
  • 於建構函數中如需調用本類別個建構函數者,需將其放置在方法體中的「第一行」,不然將會造成編譯上的錯誤。且一個建構函數中「只能有一個thissuper,需注意!!
  • 如在此範例中需在三個參數建構函數中調用無參數的建構函數者,可在二個參數建構函數中調用即可。

16_範例_ConstructorMain.png 16_範例_ConstructorMain結果.png  

  

 

arrow
arrow

    Elsa 發表在 痞客邦 留言(0) 人氣()