程式如下:
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( ) 用法只可以在函數中使用一次,而且必須在第一行。
Classmate p1 = new Classmate;
回覆刪除少一個括號?
您好~
刪除謝謝您的提醒, 已經修改過來, 謝謝您~