C#总结(二)—构造函数和析构函数
2013-03-12 21:36
183 查看
一、对象的初始化
VB中我们定义变量时,给变量分配一定的空间,但并没有要求对变量进行初始化。
对象定义时就不同了。对象是类的实例化,是确实存在的实体,一旦建立了对象不但要为其分配内存控件,而且要保证对象的所有属性有确定的意义。也就是在创建对象时(new)就进行初始化。
1、建立类
2、实例化对象
注意:get{}和set{}为访问器。get为读取,set为编写。只读取数据用get;相反则用set。其中set中的“value”为用户赋给成员的值。
二、什么是构造函数和析构函数?怎样去用它们?
1、构造函数
(1)定义:是一种特殊的成员函数,它主要用于为对象分配空间,进行初始化。
(2)特性:
其名字必须与类名相同
它可以有任意类型的参数,但不能指定返回类型(void类型也是不合法的)。它有隐含的返回值,该值由系统内部使用。
它是特殊的成员函数(在C++中,其函数体可写在类体内,也可写在类体外)
它可以重载(一个类中可以定义不同参数个数或不同类型的构造函数)。若系统无显示定义构造函数,系统会自己生成一个缺省的构造函数(不做任何事情)
它被声明为公有函数,但它不能向其他成员函数那样被显示的调用,它是在定义对象的同时被调用。
(3)实例
2、析构函数
(1)定义:如同构造函数可以自动进行对象属性的初始化一样,C#也会自动调用一个函数注销该对象并进行资源的释放与清理工作,这个工作就即析构函数。
(2)特性:
名字与类名相同,前加“~”。
它是无类型,无参数的。因为它只需释放资源,不用返回任何调用结果。
一个类只有一个析构函数,不能随意调用,只在对象注销时,自动调用。
同构造函数,若无定义析构函数,系统会自动生成一个。
(3)实例
注意:
三种情况调用析构:
对象注销时,会自动调用析构函数
对象定义在一个函数体,函数运行结束时,自动撤销对象,析构函数也被自动调用。
若对象由new动态创建,在用delete释放它时,其析构函数被自动调用(若不用delete释放,则系统不会调用析构函数)
VB中我们定义变量时,给变量分配一定的空间,但并没有要求对变量进行初始化。
对象定义时就不同了。对象是类的实例化,是确实存在的实体,一旦建立了对象不但要为其分配内存控件,而且要保证对象的所有属性有确定的意义。也就是在创建对象时(new)就进行初始化。
1、建立类
<span style="font-size:18px;"> class Student { private string _no; private int _age; public string StudentNo { get { return _no; } set { _no= value; } } public int StudentAge { get { return _age; } set { _age= value; } } } </span>
2、实例化对象
<span style="font-size:18px;"> private void button1_Click(object sender,EventArgs e) { Student zhang = new Student(); //创建对象,也初始化构造函数 //以下其实是使用了类的编译器set zhang.StudentNo ="000001"; zhang.StudentAge = 16; //显示对象的内容,其实是使用了类的读取器get label1.Text= zhang.StudentNo +zhang.StudentAge; }</span>
注意:get{}和set{}为访问器。get为读取,set为编写。只读取数据用get;相反则用set。其中set中的“value”为用户赋给成员的值。
二、什么是构造函数和析构函数?怎样去用它们?
1、构造函数
(1)定义:是一种特殊的成员函数,它主要用于为对象分配空间,进行初始化。
(2)特性:
其名字必须与类名相同
它可以有任意类型的参数,但不能指定返回类型(void类型也是不合法的)。它有隐含的返回值,该值由系统内部使用。
它是特殊的成员函数(在C++中,其函数体可写在类体内,也可写在类体外)
它可以重载(一个类中可以定义不同参数个数或不同类型的构造函数)。若系统无显示定义构造函数,系统会自己生成一个缺省的构造函数(不做任何事情)
它被声明为公有函数,但它不能向其他成员函数那样被显示的调用,它是在定义对象的同时被调用。
(3)实例
<span style="font-size:18px;">class Cat() //声明Cat类 { public string name; //成员变量 public Cat(stringname) //利用构造函数为初始的Cat赋初值 { this.name=name; //进行赋值 } }</span>
2、析构函数
(1)定义:如同构造函数可以自动进行对象属性的初始化一样,C#也会自动调用一个函数注销该对象并进行资源的释放与清理工作,这个工作就即析构函数。
(2)特性:
名字与类名相同,前加“~”。
它是无类型,无参数的。因为它只需释放资源,不用返回任何调用结果。
一个类只有一个析构函数,不能随意调用,只在对象注销时,自动调用。
同构造函数,若无定义析构函数,系统会自动生成一个。
(3)实例
<span style="font-size:18px;"> class Cat() { …… ~ Cat() { console.WriteLine(); } }</span>
注意:
三种情况调用析构:
对象注销时,会自动调用析构函数
对象定义在一个函数体,函数运行结束时,自动撤销对象,析构函数也被自动调用。
若对象由new动态创建,在用delete释放它时,其析构函数被自动调用(若不用delete释放,则系统不会调用析构函数)
相关文章推荐
- const用法总结以及构造函数、析构函数、拷贝构造函数的深入剖析
- 构造函数、复制构造函数和析构函数的总结
- 【C#学习】构造函数和析构函数
- 总结C++中的构造函数,析构函数
- 深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
- C++ VS C#(10):构造函数与析构函数
- 构造函数与析构函数浅拷贝深拷贝总结
- C#中构造函数和析构函数的用法
- C#基础之构造函数(Constructor)与析构函数(Destructor)
- 类中的构造函数与析构函数、函数重载以及this指针的总结
- C# 构造函数和析构函数
- C#中构造函数和析构函数的用法
- C#基础 属性 构造函数 静态构造函数 析构函数
- C#中构造函数和析构函数的用法
- 菜鸟谈谈C#中的构造函数和析构函数
- 初步学习“C#中构造函数和析构函数的用法”
- C#中构造函数与析构函数的用法
- 构造函数和析构函数的原理及在C#中的运用
- C#例题——析构函数和构造函数
- this指针、构造函数、拷贝构造函数、析构函数的总结