( ! ) 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 | ||||
# | Time | Memory | Function | Location |
1 | 0.0000 | 357352 | {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 | ||||
# | Time | Memory | Function | Location |
1 | 0.0000 | 357352 | {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 | ||||
# | Time | Memory | Function | Location |
1 | 0.0000 | 357352 | {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("已经调用析构函数")
}
}
[ 后天堂 | 这里,只泊同流人 ]