私有构造函数

来源:互联网 发布:ubuntu编译用什么版本 编辑:程序博客网 时间:2024/05/26 12:59

私有构造函数是一种特殊的实例构造函数。它通常用在只包含静态成员的类中。如果类具有一个或多个私有构造函数而没有公共构造函数,则不允许其他类(除了嵌套类)创建该类的实例。例如:

class NLog {   // Private Constructor:   private NLog() {}   public static double e = 2.71828;}

声明空构造函数可阻止自动生成默认构造函数。注意,如果您不对构造函数使用访问修饰符,则在默认情况下它仍为私有构造函数。但是,通常显式地使用private(私有)修饰符来清楚地表明该类不能被实例化。

当没有实例字段或实例方法(如 Math 类)或调用方法以获得类的实例时,私有构造函数可用于阻止创建类。

示例

下面是使用私有构造函数的类的示例。

// PrivateCtor1.csusing System;public class MyClass {   private MyClass() {}   public static int counter;   public static int IncrementCounter()    {      return ++counter;   }}class MainClass{   static void Main()   {      // If you uncomment the following statement, it will generate      // an error because the constructor is inaccessible:      // MyClass myObject = new MyClass();   // Error      MyClass.counter = 100;      MyClass.IncrementCounter();      Console.WriteLine("New count: {0}", MyClass.counter);   }}

输出

New count: 101

注意,如果您取消注释该示例中的以下语句,它将生成一个错误,因为该构造函数受其保护级别的限制而不可访问:

// MyClass myObject = new MyClass();   // error



FROM: http://blog.163.com/lm_shan/blog/static/1328465200682935119142/

0 0
原创粉丝点击