C#学习系列之构造函数

92 阅读2分钟

C#学习系列之构造函数


啰嗦

基础学习


构造函数

在创建给定类型的对象时执行的类方法。 构造函数与类具有相同的名称,初始化新对象的数据成员。

class pet
{
    public pet(string name)//与类pet同名
    {
        _name = name;//使用新对象的数据成员
    }
    protected string _name;//数据成员
}

构造函数的作用

  • 实例化后手动给属性赋值
class pet
{
    protected string _name;//数据成员
}
pet p=new p();
p._name="xx";
  • 实例化时直接自动给属性赋值
class pet
{
    public pet(string name)//与类pet同名
    {
        _name = name;//使用新对象的数据成员
    }
    protected string _name;//数据成员
}
pet p=new p("xx");

派生类及构造函数

在基类的基础上使用构造函数,派生类的调用顺序与调用方式。

  • 调用顺序:实例成员初始化->基类构造函数->派生类构造函数。
  • 隐式调用和显式调用:一般在后加:xxx(),通过这种方式可以调用基类的构造函数的使用,减少派生类的定义。
  • 调用当前类的其他构造函数:(相当于重载)
pet(int age,string name):this(name){}
pet(string name){}

使用

    class pet
    {
        public pet(string name)
        {
            _name = name;
        }
        protected string _name;
	    virtual public void speak();
    }
    class dog:pet
    {
        public dog(string name):base(name)//基类的定义,然后派生类来使用
        {

        }
	    override public void speak();//重写基类的虚方法
    }
    class cat
    {
	    override public void speak();//重写基类的虚方法
    }

构造函数的种类

  • 实例构造函数:可有参数,因参数类型、个数、顺序不同而存在多个构造函数。
class pet
{
    public pet(string name)//与类pet同名
    {
        _name = name;
    }
    public pet()//与类pet同名
    {
    }
}
  • 静态构造函数:没有参数、不适用访问修饰符。不可直接调用。
  • 私有构造函数:特殊的实例构造函数,无法在其他类中进行实例化。

总结

学习记录

www.imooc.com/video/14227