构造方法是在创建类的实例时负责初始化工作的操作方法。在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());
}
}
程序运行结果如下图所示:
重载类的构造方法运行结果图
新闻热点
疑难解答