构造函数是类的一种特殊方法,它的特殊性主要体现在如下几方面:
l 构造函数的方法名和类名相同;
l 构造函数没有返回类型;
l 构造函数的主要作用是完成对类对象的初始化工作;
l 在创建一个类的新对象时,系统会自动调用该的构造函数初始化新对象;
C#的类有两种构造函数:实例构造函数和静态构造函数。
实例构造函数负责:初始化类中的实例变量,它只有在用户用new关键字时才被调用。而且作为引用类型的类;
using System;
namespace gouzaohanshu
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void
{
MyClass c = new MyClass();
c.ShoeMsg();
}
}
class MyClass
{
private string msg;
public MyClass()
{
msg = "Hello World";
}
public void ShoeMsg()
{
Console.WriteLine(msg);
}
}
}
12、带参数的构造函数
类一旦有了自己的构造函数后,无论是有参数的还是无参数,默认构造函数都将无效。
下面的例了中,类MyClass的构造函数带有一个串型参数s,在使用new关键字实例化MyClass类时,传入了字符串”Hello World”.运行结果是在控制台上显示出”Hello World”。
例:
using System;
namespace daicanshugzhs
{
class Class1
{
[STAThread]
static void
{
MyClass c = new MyClass("Hello World!");
c.ShowMsg();
}
}
class MyClass
{
private string msg;
public MyClass(string s) //此构造函数是个带参数的函数
{
msg = s;
}
public void ShowMsg()
{
Console.WriteLine(msg);
}
}
}
13、构造函数的重载
可以像重载方法一样,对一个类重载构造函数,途径是为构造函数提供不同的参数个数或参数类型。
例:
using System;
namespace gzhschongzai
{
class Class1
{
[STAThread]
static void
{
MyClass c1 = new MyClass();//用无参构造函数实例化类MyClass
MyClass c2 = new MyClass("Hello Everyone");//用有参构造函数实例化类MyClass
c1.ShowMsg();
c2.ShowMsg();
}
}
class MyClass
{
private string msg;
public MyClass() //定义无参构造函数
{
msg = "Hello World";
}
public MyClass(string s)//定义有参构造函数
{
msg = s;
}
public void ShowMsg()
{
Console.WriteLine(msg);
}
}
}