C#构造函数

一、构造函数

构造函数用于执行类的实例的初始化。每个类都有自己的构造函数,如果我们声明了构造函数,系统就会执行我们声明好的构造函数;如果我们没有声明构造函数,编译器就会自动为我们提供一个默认的构造函数。

在访问一个类的时候,系统将首先执行构造函数中的语句。

实际上,执行构造函数时都隐式地调用了系统提供的默认构造函数base()。

如果我们在类中声明了下面的构造函数:

A(...){...}它等价于:

A(...):base(){...}在使用构造函数时,请注意下面的问题:

?构造函数的名字必须与类同名。

?构造函数可以带参数,也可以不带参数,并且没有返回类型。

?构造函数总是public类型的。如果是private类型的,表示类不能被实例化,一般用于只含有静态成员的类。

?构造函数主要完成对类的初始化工作,因此,在构造函数中不要做对类的实例进行初始化以外的事情,也不要尝试显式地调用构造函数。

下面的示例讲解了构造函数的使用:

class classTest
{
    int x = 0, y = 0, count;
    public classTest()              // 不带参数的构造函数classTest()
    {
        count = 0;
    }
    public classTest(int x1, int y1)// 带参数的构造函数classTest(int x1,int y1)
    {
        x = x1;
        y = y1;
    }
}

二、构造函数的参数

构造函数可以不带参数,不过,有时候我们在对类进行实例化时,需要传递一定的数据,来对其中的各种数据进行初始化,这时,我们可以使用带参数的构造函数,来实现对类的不同实例的不同初始化。

在带有参数的构造函数中,类在实例化时必须传递参数,否则该构造函数不会被执行。

我们在上面声明了两个构造函数:不带参数的构造函数和带参数的构造函数。

下面讨论一下构造函数的参数的传递情况:

1. 不带参数的构造函数的参数传递

classTest obj1 = new classTest();

不带参数的构造函数,不需要传递参数。请阅读C#静态成员和非静态成员示例。

2. 带参数的构造函数的参数传递

classTest classTest1 = new classTest("BaiXue", 18);

带参数的构造函数,需要传递参数。请阅读C#中类的成员示例。

 

posted @ 2015-01-21 16:41  melao2006  阅读(409)  评论(0编辑  收藏  举报