1.構造方法的名字必須與定義他的類名完全相同,沒有返回類型,甚至連void也沒有。
2.構造方法的調用是在創建一個對象時使用new操作進行的。構造方法的作用是初始化對象。
3.不能被static、final、synchronized、abstract和native修飾。構造方法不能被子類繼承。
例:
public class A{
public A(){
System.out.println("調用了無參的構造函數");
}
public A(String mess){
System.out.println("調用了有參的構造函數\n"+
"參數內容爲:"+mess);
}
}
public class Test{
public static void main(String [] args){
A a_1=new A();//調用無參的構造函數
A a_2=new A("Hello");//調用有參的構造函數
}
}
輸出結果:
調用無參的構造函數
調用有參的構造函數
參數內容爲:Hello
使用super調用父類構造器的語句必須是子類構造器的第一條語句
如果子類構造器沒有顯式地調用父類的構造器,則將自動調用父類的默認(沒有參數)的構造器。如果父類沒有不帶參數的構造器,並且在子類的構造器中又沒有顯式地調用父類的構造器,則java編譯器將報告錯誤
public class A{
public A(){
System.out.println("調用了A的無參構造函數");
}
public A(String mess){
System.out.println("調用了A的有參的構造函數\n"+
"參數內容爲:"+mess);
}
}
public class B extends A{
public B(){
System.out.println("調用了B的無參構造函數");
}
public B(String mess){
super(mess);
System.out.println("調用了B的有參構造函數\n"+
"參數內容爲:"+mess);
}
}
public class Test{
public static void main(String [] args){
B b_01=new B();
B b_02=new B("你好");
}
}
輸出結果: