美文网首页
静态类 ,静态构造函数,单例设计模式

静态类 ,静态构造函数,单例设计模式

作者: Unity开发 | 来源:发表于2016-12-13 21:54 被阅读59次

/*用static修饰的类为静态类

*静态类的特点:

1.静态类不能被直接实例化

2.静态类不能被继承

3.静态类中不能包含实例成员

4.静态类就是特殊的密封类

5.静态类中虽然不能包含实例成员,但是可以包含常量

6.静态类和实例调用方式不一样,普通类是以实例.的方式进行调用,二静态类是以类名.的方式调用

7.静态类的访问速度,相对而言比实例类要快的多

8.如果类中包含静态构造函数和函数的入口Main()函数,此时静态构造函数会在调用Main之前调用

9.如果类中包含静态构造函数但不包括函数的入口Main函数,此时静态构造函数会在调用Main之后调用

静态构造函数:

 * 1.一定是静态类才有静态构造函数吗? 错误

 * 

 * 静态函数的特点:

 * 1静态函数没有修饰符修饰(默认修饰符为private,但是你不能写出来)

 * 2.静态构造函数是系统默认调用的,程序员无法手动调用

 * 3.如果类中没有静态构造函数,而此时类中包含静态字段(未初始化的)那么此时编译器会默认生成静态构造函数

 * 4.在静态类中或方法中,不能使用对象

 * 5.如果类中包含静态成员,且没有被初始化,系统会默认提供一个默认的值,这也间接说明了我们不可以直接调用静态构造函数,这也没办法控制静态函数的执行时间

 * 6.静态构造函数只能被调用一次,并且不能有重复

 * 7.静态构造函数不能有参数

 * 8.虽然静态构造函数和普通构造函数名字一样,但是系统规定他俩可以共存,尽管参数列表一样

 * 9.静态构造函数是在普通构造函数调用之前执行,一般情况下用于初始化静态字段或者拦截在实例化之前

class Person{public string name; 

public static string sex; 

构造函数public Person(){

Console.WriteLine ("构造函数");

}

// //静态构造函数static Person()

{

Console.WriteLine ("静态构造函数");}

class MainClass{

public static void Main (string[] args)

{

Console.WriteLine ("________");

new Person ();

}

}

}

class MainClass

{

public static void Main (string[] args)

{Console.WriteLine ("________");

new Person ();

}

}

static class Person

{

public const int a=10;

}

静态类


static class Arr

public static int d;

public static void A(int []arr)

{

int sum = 0;

for (int i = 0; i < arr.Length; i++) {

sum += arr [i];

}

d = sum;

Console.WriteLine ("和为:{0}",d);

}}

class MainClass

{

public static int Main (string[] args){

//定义一个静态类Arr,计算一个数组的求和

int[] arr1 = new int[]{1,5,6,8,4 };

Arr.A (arr1);

//练习2:在上面的条件下,将数组的求和输出到一个变量中(静态成员变量),打印该静态成员变量的值

return 0;

}

}

/* 设计模式二十一种

 单例设计模式

 核心:将我们的构造函数设为私有 

 工厂设计模式 

 MVC设计模式

 */

sealed class P {

 private static P instance;

 private P() { 

 }

 public static P Singleinstance { 

 get { 

 if (instance == null) 

 {

 instance = new P (); 

 }

 return instance; 

 } 

 } 

 }

class MainClass {

 public static int Main(string [] args)

 { 

 P p=P.Singleinstance; 

 P p1=P.Singleinstance;

 if (p == p1) 

{ Console.WriteLine ("同一对象"); 

 } return 0; 

 } 

 }

相关文章

  • 静态类 ,静态构造函数,单例设计模式

    /*用static修饰的类为静态类 *静态类的特点: 1.静态类不能被直接实例化 2.静态类不能被继承 3.静态类...

  • 设计模式之单例

    单例模式 一般私有化构造函数 通过一个静态方法来获取唯一单例对象 两个例子 静态内部类单例模式 枚举模式 懒汉模式...

  • 单例模式

    单例模式 单例模式的特点: 构造函数不对外开放,一般为Private 通过一个静态方法返回一个单例类对象 确保单例...

  • 常见的设计模式

    ****#设计模式 单例模式 懒汉式 私有化构造函数,一个私有静态属性为该类的对象,一个静态方法里面new对象,判...

  • 实现 Singleton 模式

    题目:设计一个类,只能生成该类的一个实例 单例模式的组成: 使用一个私有构造函数、一个私有静态变量以及一个公有静态...

  • 静态类是不能实例化的

    静态类 原则 静态类中的所有成员必须是静态的。 静态构造函数 静态类可以有静态构造函数,静态构造函数不可继承。 静...

  • 单例模式(创建型)

    特点:一个类只能有一个实例对象。单例实现要求: 静态单例实例对象 私有构造方法 public 静态函数用以返回实例...

  • 02-创建型模式-单例模式

    单例模式 单例模式:类只能创建一个实例,并提供对实例的静态访问方法。要点:私有构造器静态私有变量声明可全局访问的公...

  • PHP设计模式

    单例模式 $_instance 必须申明为静态的是有变量 构造函数和析构函数必须申明为私有,防止外部程序new类从...

  • PHP设计模式之单例模式

    单例模式需要满足的条件:1、private的构造函数2、一个静态成员变量保存类的实例3、一个访问这个实例的静态方法...

网友评论

      本文标题:静态类 ,静态构造函数,单例设计模式

      本文链接:https://www.haomeiwen.com/subject/vqibmttx.html