什么是是JAVA構造函數
每創建一個類的實例都去初始化它的所有變量是乏味的。如果一個對象在被創建時就完成了所有的初始工作,將是簡單的和簡潔的。因此,Java在類里提供了一個特殊的成員函數,叫做構造函數(Constructor)。
一個構造函數是對象被創建時初始對象的成員函數。它具有和它所在的類完全一樣的名字。一旦定義好一個構造函數,與new運算符一起使用,創建對象時就會自動調用它。構造函數沒有返回類型,即使是void類型也沒有。這是因為一個類的構造函數的返回值的類型就是這個類本身。構造函數的任務是初始化一個對象的內部狀態,所以用new操作符創建一個實例后,立刻就會得到一個清楚、可用的對象。
構造方法是一種特殊的方法,具有以下特點。
(1)構造方法的方法名必須與類名相同。
(2)構造方法沒有返回類型,也不能定義為void,在方法名前面不聲明方法類型。
(3)構造方法的主要作用是完成對象的初始化工作,它能夠把定義對象時的參數傳給對象的域。
(4)構造方法不能由編程人員調用,而要系統調用。
(5)構造函數不能被直接調用,必須通過new運算符在創建對象時才會自動調用(即在new的時候就開始執行構造函數里面的語句);而一般的方法是在程序執行到它的時候被調用的.
(6)一個類可以定義多個構造方法,如果在定義類時沒有定義構造方法,則編譯系統會自動插入一個無參數的默認構造器,這個構造器不執行任何代碼。
(7)構造方法可以重載,以參數的個數,類型,或排列順序區分。
(8)當定義一個類的時候,如果程序員不創建構造函數,則Java編譯器就會提供一個默認的不帶參數的構造函數。創建對象時系統就會自動調用這個默認的構造函數來創建類的對象。如
Public Class Person{
Int age;
String name;
//默認的構造函數為(java編輯器會自動生成的)
Public Person(){
}
Person p=new Person();
p.age=10;
p.name=”張三”;
}
java 構造函數的執行過程
類初始化時構造函數調用順序: public class Demo_1 { /** * @param args */ public static void main(String[] args){ new Money(); new Dollar(); new Rmb(); } } class Money{ public Money(){ System.out.println("Money is construct"); } } class Dollar{ public Dollar(){ System.out.println("Dollar is construct!"); } } class Rmb{ public Rmb(){ System.out.println("RMB is construct"); } } 輸出結果: Dollar is construct! RMB is construct
(1)初始化對象的存儲空間為零或null值;
(2)調用父類構造函數;
(3)按順序分別調用類成員變量和實例成員變量的初始化表達式;
Money is construct