C#基础-051 静态类

namespace 静态类
{
    //静态类就是用static 修饰的类
    //静态方法就是用static修饰的方法
    //静态类是无法被继承的
    //实例类中可以包含静态成员和实例成员
    static class StaticClass
    {
        //静态类中不能出现实例字段
        //private string name;
        //静态类中能包含静态的字段

        private static string name;
        //静态类中不能出现实例方法
        //public int Add(int num1,int num2)
        //{
        //    return num1 + num2;
        //}

        public static int number;

        public static string Name
        {
            get
            {
                return name;
            }

            set
            {
                name = value;
            }
        }

        //静态类中不能有实例构造方法
        //public StaticClass()
        //{

        //}

        //静态类中不能出现访问修饰符
        //静态类虽然不能被实例化 但是静态构造方法也能被调用
        //静态构造函数无访问修饰符、无参数,只有一个 static 标志。
        //静态构造函数不可被直接调用,当创建类实例或引用任何静态成员之前,静态构造函数被自动执行,并且在某次运行期间只执行一次。
        //静态构造函数最多只运行一次。
        //静态构造函数不可以被继承。  所有的构造函数都不可以被继承
        static StaticClass()
        {
            Console.WriteLine("***");
        }

        //静态类中只能包含静态的方法 
        public static int Add(int num1,int num2)
        {
            return num1 + num2;
        }

        public static void NumberCreate()
        {
            number++;
        }

    }
}
  class StaticClass01
    {

        //属于实例  调用的时候人为调用
        public StaticClass01()
        {
            Console.WriteLine("实例构造方法");
        }
        //属于类  因为调用时候是被系统调用
        static StaticClass01()
        {
            Console.WriteLine("静态构造方法");
        }

        public static void Test()
        {
            Console.WriteLine("++++++++++++++");
        }
    }
 class Program
    {
        //如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在调用 Main 方法之前执行。
        //如果类中的静态字段带有初始化,则静态字段的初始化语句将在静态构造函数之前运行。
        //一个类只能有一个静态构造函数。
        static int num = 200;
        static Program()
        {
            num = 12000;
        }
        static void Main(string[] args)
        {
            //静态类不能作为一种自定义的类型
            //静态类不能被实例化
            //StaticClass.Add(1,1);
            //Console.WriteLine(num);
            //Test01();
            //Test02();

            //通过类名.方法名调用静态方法的时候会默认的调用一次静态构造方法
            StaticClass01.Test();
            //一个类中既含有静态构造方法 也含有实例构造方法 在创建实例的时候 会首先调用一次静态构造方法再调用一次实例构造方法    
            StaticClass01 sc = new StaticClass01();

        }

        static void Test01()
        {
            StaticClass.NumberCreate();
            Console.WriteLine(StaticClass.number);

        }
        static void Test02()
        {
            StaticClass.NumberCreate();
            Console.WriteLine(StaticClass.number);
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值