c# —— 构造函数小解

   c#的学习有了一段时间了,当时学习的过程中一直都在忙着别的事情就没有认真地去学,所有接下来的一段时间,我在备考英语的同时,认真的整理c#的相关知识还有HTML5+Css3+javascript的相关知识点,并最后将最终学习的零碎知识点进行融合运用,和这一阵子学习相同科目的同学共同进步。

    今天下午将c#的基础中的基础知识点又看了一点,对其的理解更加的透彻了一点,下面我将大家都最为熟悉的构造函数来和大家分享一下。对于构造函数和析构函数想必看过c++的同学们对其是一点都不陌生了吧?它是在面向对象程序设计中不可或缺的一部分,是面向对象里基础组成类的实例化时也离不开的两个特殊的函数,特殊就在于它是缺则皆亡的存在,就像人没有了心脏一样,可能比喻的不够形象,我重点想要表达的就是它是任何一个类都不能够没有的,即使你不去定义一个构造函数或析构函数,当你在对类进行实例化时系统都会自动调用类库中的构造函数来初始化类的实例。

    说了那么多,那么构造函数和析构函数的作用究竟是干什么的呢?

    对于面向对象程序设计语言中对类的每个实例,都有一个明确定义的生命周期(生命周期是一个急需了解的概念),除了使用时的正常状态外,还包含如下两个重要阶段:

  •     构造函数:类的实例化(对象的初始化)过程,由构造函数完成。
  •     析构函数:对象在被删除时的一些清理工作(如释放内存等),由析构函数完成。

    在这里一定要理解析构函数的概念,以前在学c++的时候,我理解成析构函数是删除(销毁)对象的功能,其实不然,它不具备删除对象的能力,他只是可以对删除后的对象进行释放内存等一些清理工作。

    下面,我们来看一个简单的带有参数的构造函数的例子:

    

    由上面的实例,大家可以看到系统两次调用了构造函数,分别对s1、s2进行了初始化,大家也应该就明白了了什么是构造函数,构造函数有哪些特点了吧。下面是我结合一些资料书对构造函数的五点总结;

  1.     一个类的构造函数通常与类名相同;
  2. 构造函数可以任意类型的参数(还有无参的构造函数,我忘记说了);
  3. 构造函数没有返回值类型(切记)
  4. 一般情况下构造函数总是public类型的,如果是private类型的,表明该类不可以被实例化,这样的话,通常只用于只含有静态成员的类;
  5. 在构造函数中,不要做对类的实例进行初始化以外的事情(你就记得构造函数的唯一功能就是在类实例化时进行初始化的),也不要尝试显式的调用构造函数。

猜你喜欢

转载自www.cnblogs.com/zkh-blog/p/10817057.html