共找到2條詞條名為構造方法的結果 展開
  • 完成對象初始化的編程方法
  • 構造器

構造方法

完成對象初始化的編程方法

構造方法是一種特殊的方法,它是一個與類同名且返回值類型為同名類類型的方法。對象的創建就是通過構造方法來完成,其功能主要是完成對象的初始化。當類實例化一個對象時會自動調用構造方法。構造方法和其他方法一樣也可以重載。

定義


Java中,任何變數在被使用前都必須先設置初值。Java提供了為類的成員變數賦初值的專門方法。

特殊性


構造方法是一種特殊的成員方法,它的特殊性反映在如下幾個方面:
1.構造方法作用:(1).構造出來一個類的實例(2).對構造出來個一個類的實例(對象)初始化。
2.構造方法的名字必須與定義他的類名完全相同,沒有返回類型,甚至連void也沒有。
3.主要完成對象的初始化工作,構造方法的調用是在創建一個對象時使用new操作進行的。
4.類中必定有構造方法,若不寫,系統自動添加無參構造方法。介面不允許被實例化,所以介面中沒有構造方法。
5.不能被static、final、synchronized、abstract和native修飾。
6.構造方法在初始化對象時自動執行,一般不能顯式地直接調用。當同一個類存在多個構造方法時,java編譯系統會自動按照初始化時最後面括弧的參數個數以及參數類型來自動一一對應。完成構造函數的調用。
7.構造方法分為兩種:無參構造方法 有參構造方法
構造方法可以被重載。沒有參數的構造方法稱為默認構造方法,與一般的方法一樣,構造方法可以進行任何活動,但是經常將他設計為進行各種初始化活動,比如初始化對象的屬性。
8.構造代碼塊:
(1)作用:給對象進行初始化,對象一建立就執行,而且優先於構造函數執行
(2)構造代碼塊和構造函數的區別:
構造代碼塊是給所有不同對象的共性進行統一初始化,構造函數是給對應的對象進行初始化
9.子類繼承父類中,
***子類的實例化過程
***構造方法不能被子類繼承
***子類創建對象時,會先去創建父類的對象。
默認是去調用父類的無參構造方法。
***子類構造方法中,第一行默認是super()
***為什麼子類中第一行會默認有super()
因為他繼承父類的成員使用,使用前這些成員必須初始化,
而他們是父類的成員,所以,必須通過父類進行初始化。
所以,會先創建一個父類的對象。
**當父類沒有無參構造方法時
必須使用this或者super調用其他的構造方法。
10.自定義類中,如果不寫構造方法,java系統會默認添加一個無參的構造方法。如果寫了一個有參的構造方法,就一定要寫無參構造方法。
如果想使用無參的構造方法,就必須手動給出無參構造方法。
建議:一般情況下,我們自定義的類都要手動給出無參構造方法。
具體使用:分別計算長、寬為20、10和6、3的兩個長方形的面積。
double length;
double width;
double area(){
return length*width;
}
RectConstructor(double width,double length){//帶參數的構造方法
this.length=length;
this.width=width;
}
}
public class RectDemo{
public static void main(String args[]) {
RectConstructor rect1=new RectConstructor(10,20);
RectConstructor rect2=new RectConstructor(3,6);
double ar;
ar=rect1.area();
System.out.println("第一個長方形的面積是"+ar);
ar=rect2.area();
System.out.println("第二個長方形的面積是"+ar);
}
}
控制台輸出結果為:
第一個長方形的面積是200
第二個長方形的面積是18

軟道語錄


構造方法:
構造方法就是類構造對象時調用的方法,主要用來實例化對象。