java中建構方法的寫法為“class class_name {public class_name(){} public ciass_name([paramList]){} …// 類別主體}”,方法名稱必須與類別名稱相同,各自的方法參數要不同。
本教學操作環境:windows7系統、java8版、DELL G3電腦。
建構方法是類別的一種特殊方法,用來初始化類別的一個新的對象,在建立物件(new 運算子)之後自動呼叫。 Java 中的每個類別都有一個預設的建構方法,並且可以有一個以上的建構方法。
Java 建構方法有以下特點:
方法名稱必須與類別名稱相同
可以有0 個、1個或多個參數
沒有任何回傳值,包含void
預設回傳類型就是物件類型本身
#只能與new 運算子結合使用
值得注意的是,如果為建構方法定義了傳回值型別或使用void 宣告建構方法沒有傳回值,編譯時不會出錯,但Java 會把這個所謂的構造方法當成普通方法來處理。
這時候大家可能會產生疑問,建構方法不是沒有回傳值嗎?為什麼不能用 void 聲明呢?
簡單的說,這是 Java 的文法規定。實際上,類別的建構方法是有傳回值的,當使用new 關鍵字來呼叫建構方法時,建構方法傳回該類別的實例,可以把這個類別的實例當成建構器的回傳值,因此建構器的傳回值類型總是當前類,無須定義返回值類型。但必須注意不要在建構方法裡使用 return 來傳回目前類別的對象,因為構造方法的回傳值是隱式的。
注意:建構方法不能被 static、final、synchronized、abstract 和 native(類似 abstract)修飾。構造方法用來初始化一個新對象,所以用 static 修飾沒有意義。構造方法不能被子類別繼承,所以用 final 和 abstract 修飾沒有意義。多個線程不會同時創建內存地址相同的同一個對象,所以用 synchronized 修飾沒有必要。如果不了解 static、final 以外的其他關鍵字,教程後面會詳細講解。
建構方法的語法格式如下:
class class_name { public class_name(){} // 默认无参构造方法 public ciass_name([paramList]){} // 定义构造方法 … // 类主体 }
在一個類別中,與類別名稱相同的方法就是建構方法。每個類別可以具有多個建構方法,但要求它們各自包含不同的方法參數。
範例:
建構方法主要有無參考構造方法和有參構造方法兩種,範例如下:
public class MyClass { private int m; // 定义私有变量 MyClass() { // 定义无参的构造方法 m = 0; } MyClass(int m) { // 定义有参的构造方法 this.m = m; } }
此範例定義了兩個構造方法,分別是無參構造方法和有參構造方法。在一個類別中定義多個具有不同參數的同名方法,這就是方法的重載。這兩個建構方法的名稱都與類別名稱相同,都是 MyClass。在實例化該類別時可以呼叫不同的建構方法進行初始化。
注意:類別的建構方法不是要求必須定義的。如果在類別中沒有定義任何一個建構方法,則 Java 會自動為該類別產生一個預設的建構方法。預設的建構方法不包含任何參數,且方法體為空。如果類別中明確地定義了一個或多個建構方法,則 Java 不再提供預設建構方法。
提示:無參數的建構方法也稱為 Nullary 建構方法。只有編譯程式自動加入的建構方法,才稱為預設建構子。如果自行寫無參數、沒有內容的建構函數,就不稱為預設建構函數了(只是 Nullary 建構函數)。雖然只是名詞定義,不過認證考試時要區別一下兩者的差異。
相關影片教學推薦:Java影片教學
#以上是java中構造方法怎麼寫的詳細內容。更多資訊請關注PHP中文網其他相關文章!