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

/*用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; 

 } 

 }

你可能感兴趣的:(静态类 ,静态构造函数,单例设计模式)