( ! ) Warning: include(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in D:\www\up\CSharp\class04.php on line 20
Call Stack
#TimeMemoryFunctionLocation
10.0000356072{main}( )...\class04.php:0

( ! ) Warning: include(http://pub.houheaven.com/Nav02/Nav_deep2.htm): failed to open stream: no suitable wrapper could be found in D:\www\up\CSharp\class04.php on line 20
Call Stack
#TimeMemoryFunctionLocation
10.0000356072{main}( )...\class04.php:0

( ! ) Warning: include(): Failed opening 'http://pub.houheaven.com/Nav02/Nav_deep2.htm' for inclusion (include_path='.;C:\php\pear') in D:\www\up\CSharp\class04.php on line 20
Call Stack
#TimeMemoryFunctionLocation
10.0000356072{main}( )...\class04.php:0

说明:构造函数是类中比较特殊的方法成员,主要作用就是在创建对象时初始化对象。每一个类,都必须至少有一个构造函数,如果用户在定义类的时候,没有声明其构造函数,系统会自动提供一个默认的无参数的构造函数给该类,并使用默认初始值初始化字段,如果用户声明了构造函数,系统就不会提供默认的构造函数了。

默认构造函数在初始化时,针对数值类型的字段,初始值为0;针对字符类型的字段,初始值为空格;针对字符串类型的字段,初始值为null(空值);针对布尔类型的字段,初始值为false。

注意:构造函数不能有返回值。

① 构造函数的声明

格式:访问修饰符 类名(可选形参列表){ …… }

说明:构造函数的函数名必须与类名一致,还必须给出完整的方法体。

实例:打开

[ 源代码 ]

class Example

{

public int width, length;

public example(int x, int y) // 声明构造函数

{ length = x; width = y; }

public int area() // 声明方法,求面积

{ return length * width; }

}

……

example ex = new example(4, 5);

Console.WriteLine("length={0},width={1}", ex.length, ex.width);

Console.WriteLine("Area={0}",ex.area());


[ 输出结果 ]

length=4,width=5

Area=20

② 构造函数的使用

构造函数是与类同名的特殊方法,它们不能被直接使用,而只能在用户声明类、实例化对象时,被系统自动调用。

如果用户自己声明了构造函数,并且含有参数,那么在实例化对象的时候必须给出对应的实参,不然系统会出错。

③ 重载构造函数

构造函数有时也有缺点,比如构造函数含有参数,那么在初始化对象时就必须为其提供参数,不然会出错。如何解决这种问题呢?可以使用重载构造函数,重载一个没有参数的构造函数。

重载构造函数与一般的方法重载相同。

④ 析构函数

C#还提供了另一个特殊的函数成员,即析构函数。

析构函数用于销毁类的实例,释放这些类实例对象所占用的资源。析构函数无参数,也无返回值。析构函数与类名相同,但需要在名称前面加上~。

实例:打开

[ 源代码 ]

class Example

{

~Example() // 声明析构函数

{

Console.WriteLine("已经调用析构函数")

}

}

显示框架
显示框架
显示框架
显示框架