9. 构造函数和析构函数

Posted LiuChangwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9. 构造函数和析构函数相关的知识,希望对你有一定的参考价值。

 

构造函数和析构函数:

  编写代码时,如果没有编写他们则编译器会自动添加。

1、构造函数(特殊的方法)

  (1作用:帮助我们初始化对象,给对象的每个字段依次赋值;
  (2)构造函数没有返回值,连void也不能写必须public;
  (3)构造函数的名称必须跟类名一样;
  (4)方法自动运行,无需显示调用;
  (5)类中会有一个默认的无参数的构造函数,当你写一个新的构造函数时,那个默认的无参数构造函数就会被覆盖掉。

2、析构函数

  (1)是实现销毁一个类的实例方法成员;
  (2)他不能有参数,也不能有任何修饰符而且不能被调用 ;
  (3)析构函数前加缀“~” ;
  (4)编写一些关于本类对象消失(清除)前的一些必要处理工作;
  (5)常用于数据库,数据连接的关闭,或者 Socket 数据连接的关闭 。

例:

 1 namespace ProgramTest
 2 {
 3     //主类
 4     class Program
 5     {
 6         static void Main(string[] args)
 7         {
 8             //利用构造函数及调用方法输出
 9             Clerk zsClerk = new Clerk("张三", Gender.女, 100);
10             zsClerk.Wrte();
11             Console.ReadKey();
12         }
13     }
14 
15     /// <summary>
16     /// 新建类Clerk,声明变量(字段)、生成属性及利用构造函数初始化字段
17     /// </summary>
18     /// 枚举
19     public enum Gender
20     {
21         男,
22 23     }
24     class Clerk
25     {
26         //声明变量及添加属性
27         private string _name;                               //声明变量
28         public string Name                                  //添加属性。生成属性快捷键:Ctrl + r +e
29         {
30             get
31             {
32                 return _name;
33             }
34 
35             set
36             {
37                 _name = value;
38             }
39         }
40         private Gender _gender;                             //声明变量
41         public Gender Gender                                //添加属性
42         {
43             get
44             {
45                 return _gender;
46             }
47 
48             set
49             {
50                 _gender = value;
51             }
52         }
53         private int _age;                                   //声明变量
54         public int Age                                      //添加属性
55         {
56             get
57             {
58                 return _age;
59             }
60 
61             set
62             {
63                 _age = value;
64             }
65         }
66 
67         //创建一个方法
68         public void Wrte()
69         {
70             Console.WriteLine("我叫{0},我是{1}生,我{2}岁了!", this.Name, this.Gender, this.Age);
71         }
72 
73         //带参构造函数,对字段进行赋值
74         public Clerk(string name, Gender gender, int age)
75         {
76             this.Name = name;
77             this.Gender = gender;
78             this.Age = age;
79         }
80         
81         //创建析构函数
82         ~Clerk()
83         {
84             Console.WriteLine("这是一个析构函数");
85         }
86     }
87 }

 

以上是关于9. 构造函数和析构函数的主要内容,如果未能解决你的问题,请参考以下文章

条款9:绝不在构造和析构过程中调用virtual函数

条款9:绝不在构造和析构过程中调用virtual函数

构造函数和析构函数的作用[转]

这个构造函数和析构函数发生了啥?

php构造函数的PHP 5 构造函数和析构函数

构造函数和析构函数