构造函数

1、私有构造函数,防止Singleton实例化

public class Singleton {  
    private static Singleton instance;  
    private Singleton (){}  
  
    public static Singleton getInstance() {  
    if (instance == null) {  
        instance = new Singleton();  
    }  
    return instance;  
    }  
} 

 2、构造函数base,this

 

class BaseClass
    {
        private int numA;
        public BaseClass()
        {
            Console.WriteLine("基类的无参数构造函数.value:{0}",numA);
        }
        public BaseClass(int i)
        {
            this.numA = i;
            Console.WriteLine("基类带一个参数的构造函数.value:{0}",numA);
        }
    }
    class ChildClassB : BaseClass
    {
        private int numB;
        public ChildClassB()
        {
            Console.WriteLine("子类无参数构造函数.value:{0}",numB);
        }
        public ChildClassB(int i):base()
        {
            this.numB = i;
            Console.WriteLine("子类带有一个参数的构造.value:{0}",numB);
        }
        public ChildClassB(int i,int j) : base(i)
        {
            this.numB = j;
            Console.WriteLine("子类带有两个参数的构造函数.value:{0}",numB);
        }
    }
    class ChildClassC : BaseClass
    {
        private int numC;
        public ChildClassC()
        {
            Console.WriteLine("子类无参数构造函数.value:{0}",numC);
        }
        public ChildClassC(int i)//:this()
        {
            this.numC = i;
            Console.WriteLine("子类带有一个参数的构造函数.value:{0}",numC);
        }
        public ChildClassC(int i,int j) : this(i)
        {
            this.numC = j;
            Console.WriteLine("子类带有两个参数的构造函数.value:{0}",numC);
        }
    }
Console.WriteLine("使用base\n");
            ChildClassB b1 = new ChildClassB(3);
            ChildClassB b2 = new ChildClassB(2,4);
            Console.WriteLine("---------------");
            Console.WriteLine("使用this\n");
            ChildClassC c = new ChildClassC(2,4);
            Console.ReadKey();

 

this只是调用本身,但是这样是需要调用一次基类没有参数的构造函数

base是调用基类的构造函数

posted @ 2016-12-06 16:39  wjl910  阅读(108)  评论(0)    收藏  举报