構造函數 :java
是一種特殊的方法。主要用來在建立對象時初始化對象, 即爲對象成員變量賦初始值,總與new運算符一塊兒使用在建立對象的語句中。特別的一個類能夠有多個構造函數 ,可根據其參數個數的不一樣或參數類型的不一樣來區分它們 即構造函數的重載。c++
特色:
1.構造函數的命名必須和類名徹底相同。在java中普通函數能夠和構造函數同名,可是必須帶有返回值;
2.構造函數的功能主要用於在類的對象建立時定義初始化的狀態。它沒有返回值,也不能用void來修飾。這就保證了它不只什麼也不用自動返回,並且根本不能有任何選擇。而其餘方法都有返回值,即便是void返回值。儘管方法體自己不會自動返回什麼,但仍然可讓它返回一些東西,而這些東西多是不安全的;
3.構造函數不能被直接調用,必須經過new
運算符在建立對象時纔會自動調用;而通常的方法是在程序執行到它的時候被調用的;
4.當定義一個類的時候,一般狀況下都會顯示該類的構造函數,並在函數中指定初始化的工做也可省略,不過Java
編譯器會提供一個默認的構造函數.此
默認構造函數是不帶參數的。而通常的方法不存在這一特色;
5.構造函數有回滾的效果,構造函數拋出異常時,構造的是一個不完整對象,會回滾,將此不完整對象的成員釋放(c++)
6.當一個類只定義了私有的構造函數,將沒法經過new關鍵字來建立其對象,當一個類沒有定義任何構造函數,C#編譯器會爲其自動生成一個默認的無參的構造函數。[1]
7.在Python中構造函數必須經過重寫__init__方法實現