java中構造方法的調用和簡單解釋(this)

在一個Java類中,其方法可以分爲成員方法和構造方法兩種。構造方法是一個與類同名的方法, 在Java類中必須存在一個構造方法。如果在代碼中沒有顯示的體現構造方法的話,那麼編譯器在編譯的時 候會自動添加一個沒有形式參數的構造方法。這個構造方法跟普通的成員方法還是有很多不同的地方。如 構造方法的話一律是沒有返回值的。而且也不用void關鍵字來說明這個構造方法沒有返回值。而普通的方 法可以有返回值、也可以沒有返回值。不過如果普通的方法沒有返回 值的話,那麼一定要在方法定義的時候採用void關鍵字來進行說明。其次構造方法的名字有嚴格的要求, 即必須與類的名字相同。也就是說,Java編譯器發現有個方法與類的名字相同才把其當作構造方法來對待 。而對於普通方法的話,則要求不能夠與類的名字相同,而且多個成員方法不能夠採用相同的名字。在一 個類中可以存在多個構造方法,這些構造方法都採用相同的名字。只是形式參數不同。Java語言就憑用戶 參數的參數來判斷調用那個構造方法。
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關鍵字是沒有位置上的限 制的。如果不熟悉這個限制的話,那麼還是老老實實的採用傳統的構造方法調用方式爲好。雖然比較麻煩 ,但是至少不會出錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章