您好,登錄后才能下訂單哦!
本篇內容介紹了“java中的構造方法怎么寫”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
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中的構造方法怎么寫”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。