构造函数

构造函数在面试中常常出现,昨天面试有两道关于构造函数的题目,因此作一下笔记,顺便看看其余大牛对构造函数有何高见。

静态构造函数

静态构造函数具备如下特色:   

 静态构造函数自动被调用,不能被显式调用,在程序中,用户没法控制什么时候执行静态构造函数。 静态构造函数既没有访问修饰符,也没有参数。
 一个类的静态构造函数在这个类的任何实例被建立前执行。 一个类的静态构造函数在类的任何静态成员被引用前执行。一个类的静态构造函数从不会被执行一次以上。
class Program { static void Main(string[] args) { BaseClass cla1 = new BaseClass(); BaseClass cla2 = new BaseClass(); BaseClass cla3 = new BaseClass(); BaseClass cla4 = new BaseClass(); Console.ReadKey(); } } class BaseClass { private static int callCounter; static BaseClass() { Console.WriteLine("callCounter1=" + callCounter); } public BaseClass() { callCounter += 1; Console.WriteLine("callCounter2=" + callCounter); } }
其结果为:

 一个类的静态构造函数在它的全部派生类的静态构造函数执行以后执行。

class Program { static void Main(string[] args) { Class cla1 = new Class(); Console.ReadKey(); } } class BaseClass { private static int callCounter; static BaseClass() { Console.WriteLine("父类静态callCounter1=" + callCounter); } public BaseClass() { callCounter += 1; Console.WriteLine("父类非静态callCounter2=" + callCounter); } } class Class:BaseClass { private static int callCounter; static Class() { Console.WriteLine("子类静态callCounter3=" + callCounter); } public Class() { callCounter += 1; Console.WriteLine("子类非静态callCounter4=" + callCounter); } }
运行结果为: 

私有构造函数

私有构造方法一般用在单件模式上面,关于单件模式的运用不是本文重点,重在说明当构造方法设置为私有的话,那么该类就没法被其余类去new了,由于私有的构造方法代替了默认的构造方法,若是想在另一个方法中获得有私有构造方法的类的话,能够封装具备私有构造方法类的方法。
class Program { static void Main(string[] args) { //Singleton singleton = new Singleton();//会报错
            Singleton singleton = Singleton.GetClass(); Singleton singleton1 = Singleton.GetClass(); Console.WriteLine(singleton==singleton1); Console.ReadKey(); } } class Singleton { private Singleton() {} private static Singleton singleton=null; public static Singleton GetClass() { if (singleton == null) { Console.Write("初始化\n"); singleton= new Singleton(); } else { Console.Write("使用原来的\n"); } return singleton; } }

运行结果:html

 参考

    //http://www.51cto.com/art/200708/53110.htm
    //http://www.cnblogs.com/jincwfly/archive/2007/10/10/919886.html面试

相关文章
相关标签/搜索