在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()); } }
最後,要注意的是, 構造函數沒有返回值,而且一個類可以有多個構造函數。使用有參數的構造函數時,需要自己寫一個空參數的構造函數。