程式如下:
class Classmate{ String name; int height; int weight; Classmate(){ System.out.println("0參數的自構函數"); } Classmate(String name, int height, int weight){ this(); this.name = name; this.height = height; this.weight = weight; System.out.println("三個參數的自構函數"); } void discuss(){ System.out.println("In " + this.name + " Opinion"); } }
接著在Test.java當中,
編寫以下程式:
class Test{ public static void main(String args []){ Classmate p1 = new Classmate(); p1.name = "Helen"; p1.discuss(); Classmate p2 = new Classmate("laser", 180,80); } }
this的使用方法,
1.
在Test.java當中,建立的p1,執行 p1.discuss() 的method時,
在Classmate.java的method宣告中,
使用了this.name,就是為了告知程式,我們現在使用的是p1的資訊,
可以把this想成,為了明確的知道是使用了"誰"的name。
2.
在Test.java當中,看到p2,在建立Classmate時,給予了三個參數,
所以程式在執行時,會自動在Classmate.java當中去尋找三個參數的自構函數,
接著看到Classmate.java當中,可以看到Classmate(String name, int height, int weight),
把name、height、weight給予了this.name、this.height、this.weight,
這表示了使用 this 可以讓我們的程式看起來更簡潔,
也避免了自構函數的參數與成員的變數相同的情況。
3.
在Classmate.java的Classmate(String name, int height, int weight)當中
第一行為this( ),表示呼叫了Classmate.java中沒有參數的自構函數。
*this( ) 用法只可以在函數中使用一次,而且必須在第一行。