写程序的时候发现,别人定义的类的构造函数是私有的,并且能够很好的使用,因为自己比较浅薄就比较纳闷,下午查了一些资料,心里有些概念了,记下作为笔记。
理解:在类中封装了唯一一个类的实例,构造函数为私有的,不允许类外创建实例。
代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public class Student
2 {
3 private static Student stu;
4 private static object _obj= new object();
5 private Student(){};
6 public static Instance()
7 {
8 if(stu==null)
9 {
10 lock(_obj) //锁定代码区
11 {
12 if(stu==null)
13 {
14 stu = new Student();
15 }
16 }
17 }
18 return stu;
19 }
20 }
21
22 public class Test
23 {
24 void Main(string[] args)
25 {
26 Student stu1 = Student.Instance();
27 Student stu2 = Student.Instance();
28 if (stu1.Equals(stu2))
29 {
30 Console.WriteLine("是同一个对象的引用");
31 }
32 else
33 {
34 Console.WriteLine("是两个不同的对象的引用");
35 }
36 }
37 }