this關鍵字除了可以調用成員變量之外,還可以調用構造方 法。如下面的代碼:
1. public class Student{ //定義一個類,類的名字爲student。
2. public Student(){ //定義一個方法,名字與類相同故爲構造方法
3.
4. this(“luobo”)
5. }
6.
7. public Student(String name){ //定義一個帶形式參數的構造方法
8. }
9. }
在上面這個代碼中,定義了兩個構造方法,一個帶參數,另一個沒有帶參數。構 造方法都不會有返回值,不過由於構造方法的特殊性,爲此不必要在構造方法定義時帶上void關鍵字來說 明這個問題。在第一個沒有帶參數的構造方法中,使用了this(“luobo”)這個代碼。在構造方法中使this關鍵字表示調用類中的構造方法。如果一個類中有多個構造方法,因爲 其名字都相同,跟類名一致,這跟採用其他方法引用構 造方法一樣,都是通過形式參數來嗲用構造方法的。如上例中,this關鍵字後面加上了一個參數,那麼就 表示其引用的是帶參數的構造方法。如果現在有三個構造方法,分別爲不帶參數、帶一個參數、帶兩個參 數。那麼Java編譯器會根據所傳遞的參數數量的不同,來判斷該調用哪個構造方法。從上面這個示例中可 以看出,this關鍵字不僅可以用來引用成員變量,而且還可以用來引用構造方法。
不過如果要使用這種方式來調用構造方法的話,有一個語法上的限制。一般來說,利用this關鍵 字來調用構造方法,只有在無參數構造方法中第一句使用this調用有參數的構造方法。否則的話,翻譯的 時候,就會有錯誤信息。這跟引用成員變量不同。如果引用成員變量的話,this關鍵字是沒有位置上的限 制的。如果不熟悉這個限制的話,那麼還是老老實實的採用傳統的構造方法調用方式爲好。雖然比較麻煩 ,但是至少不會出錯。