構造方法是在創建類的實例時負責初始化工作的操作方法。在C#中,類的構造方法一般被定義為公有的(public),構造方法沒有返回類型,也不能為空型(void),同時,構造方法的名稱與類的名稱相同;類的構造方法可以包含任何數量的參數,從而使創建類變得更為靈活。
在面向對象程序設計中,將具有相同名稱,但參數的數據類型、參數個數不同的方法稱為方法的重載。構造方法通過改變參數的數據類型、參數的個數同樣可以實現重載。
下面舉一個例子來說明這個問題:
這個例子演示了一個教師類(Teacher),該類具有兩個字段成員_name(教師姓名)和_age(教師年齡),類的三個構造方法分別分別在給出不同參數時給這兩個成員字段賦值的方法。
本類同時重寫了ToString方法,使其能夠輸出教師的相關信息。在測試類TestClass中演示了該類的使用形式。
下面是具體的源代碼:
using System;
class Teacher
{
string _name;
int _age;
public Teacher() //無參的構造方法
{
_name = "無名氏"; _age = -1;
}
public Teacher(string sName) //一個參數的構造方法:給出教師姓名
{
_name = sName; _age = -1;
}
public Teacher(string sName, int iAge) //兩個參數的構造方法:給出教師姓名和教師年齡
{
_name = sName; _age = iAge;
}
public override string ToString()
{
return "姓名:" + _name + ",年齡:" + (_age == -1 ? "不詳" : _age.ToString());
}
}
class TestClass //測試類
{
static void Main() //主方法
{
Teacher t1 = new Teacher(); //使用無參的構造方法構造實例
Console.WriteLine(t1.ToString());
Teacher t2 = new Teacher("劉濤"); //使用一個參數的構造方法構造實例
Console.WriteLine(t2.ToString());
Teacher t3 = new Teacher("王濤", 23); //使用兩個參數的構造方法構造實例
Console.WriteLine(t3.ToString());
}
}
程序運行結果如下圖所示:
重載類的構造方法運行結果圖
新聞熱點
疑難解答