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

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

 } 

 }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,614评论 4 12
  • Unsupported major.minor version 51.0解决办法 具体步骤 解决:项目------...
    晨星资源阅读 616评论 0 1
  • 1. [C#语言基础]请简述拆箱和装箱。 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何...
    胤醚貔貅阅读 4,897评论 1 29
  • 2016年是彻底过去了,悄无声息。可我一想,这一年我到底干了什么呀。才发现,并没有什么特别值得记住的事。 好像每年...
    那是说着玩的阅读 360评论 0 0