五.构造函数(实例构造,静态构造,私有构造)

一.构造函数

1.实例化的时候执行;

2.构造函数的名称与类的名称完全相同,它没有任何返回类型;

3.可以分为无参构造(默认构造)和有参构造;

4.倘若在类的声明中没有显式的提供构造函数,这种情况编译器会提供一个隐士的默认构造函数:不带参数,方法体为空;

 Program program = new Program();
            Program program1 = new Program(10);
            Program program2 = new Program(20,"菲菲");
        }
        string name;
        int age;
        public  Program()
        {
            Console.WriteLine("这是默认构造函数");
        }
        public Program(int age)
        {
            this.age = age;
            Console.WriteLine($"年龄:{age}");
        }
        public Program(int age,string name)
        {
            this.age=age;
            this.name = name;
            Console.WriteLine($"年龄{age},姓名:{name}");
        }

二.静态构造函数 

1.静态构造函数用于初始化类中的静态数据 或 执行仅需一次的特定操作,静态构造函数将在创建第一个实例或引用类中的静态成员之前自动调用。

2.静态构造函数不使用访问权限修饰符修饰或不具有参数;

3..类或结构体中只能具有一个静态构造函数

4.静态构造函数不能继承或重载

5.静态构造函数不能直接调用,仅可以由公共语言运行时调用;

6.用户无法控制程序中静态构造函数的执行时间;

7.在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数以初始类化;

8..静态构造函数会在实例构造函数之前运行;

实例如下:

 static Program()
        {
            Console.WriteLine("我是静态构造函数");
        }
//结果:
我是静态构造函数
这是默认构造函数
年龄:10
年龄20,姓名:菲菲

3. 私有构造函数

私有构造函数是一种特殊的实例构造函数,通常只包含静态成员的类中。如果类中只有一个或多个私有构造函数而没有公共构造函数的话,那么其他类无法创建该类的实例,下面通过一个实例来展示私有构造函数的使用

注意:当一个类只有一个私有构造函数,或多个私有构造函数而没有公共构造函数的话,此时,需要用类本身来调用属性,方法;

代码如下:

class Student
    {
        public static int age;
        public static string name;

        private Student()
        {
        }
        public void Test()
        {
            Console.WriteLine($"姓名{name},年龄{age}");
        }

    }

public static void Main(string[] args)
        {
  //不能实例化 Student student = new Student();
            Student.age = 10;
            Student.name = "阿婆";

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薄荷撞~可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值