在C++中第一次聽到構造函數這個名詞,在C#中又遇到了。
在創建某個類時,由於對該對象的狀態(數據)不是很明確,因此需要對其進行初始化。比如說我們要在長方形這個類中創建一個對象,或者說新建一個長方形,那麼我們首先要確定他的長和寬,假如我們無法確定它的長和寬,那麼我們是無法造出一個長方形來的。所以就要使用這個長方形類中一個用來構造該類所有對象的函數——構造函數。由於該函數要在創建一個新對象時使用,因此它不肯能存在於對象之後,那麼我們就必須在類中對它進行聲明和定義。
如果有一個名稱是MyClass的類,其定義的構造函數框架如下:
public class MyClass
{
public MyClass()
{
}
}
下面就拿計算長方形的面積來舉例吧:
首先,聲明一個rectangle類:
class rectangle
{
public rectangle(int w, int h) //構造函數的聲明
{
width = w;
high = h;
}
public int area()
{
return width * high;
}
private int width;
private int high;
}
其次,將類實例化為A,完成初始化。
Program
{
static void Main(string[] args)
{
rectangle A = new rectangle(3,4); //創建對象A時執行了初始化
Console.WriteLine("長方形的面積為{0}",A.area());
}
}
最後,要注意的是, 構造函數沒有返回值,而且一個類可以有多個構造函數。使用有參數的構造函數時,需要自己寫一個空參數的構造函數。