码迷,mamicode.com
首页 > 其他好文 > 详细

静态成员

时间:2019-05-27 13:18:13      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:line   protect   cte   级别   内存   public   抽象方法   prot   声音   

关键字: static

用在: 字段、方法、属性、构造函数、事件

作用 :可以被类的所有实例共享,都访问的同一个内存位置。

    想到这个 同一个内存位置,我脑海里突然浮现一种声音,“你见,或者不见我     我就在那里   不悲 不喜”

     静态成员和实例成员不同的保存方式,静态成员存储在堆中。实例成员要通过new 一个对象来访问。静态成员直接通过“class XXX.”来访问。

     静态成员在访问之前就已经初始化好了。 

  class Program
    {
        static void Main(string[] args)
        {
           
            Pet[] pets = new Pet[] { new Dog("DD"), new Cat("CC") };//new Dog的时候执行了一次++Num
          
         
            Dog D = new Dog("DD1");//此对象的创建通过其类的构造函数执行了一次++Num
            Dog.ShowNum();//调用静态方法
            D.Lost();//
            Dog.ShowNum();
            Dog d0 = (Dog)pets[0];
            d0.Lost();
            Dog.ShowNum();

        }

    }
    abstract public class Pet//当包含抽象方法时,必须用abstract声明
    {
        protected string Name;//protected 保护级别,派生类可访问
        public Pet(string name)//基类的构造函数
        {
            Name = name;
        }
        public void PrintName()
        {
            Console.WriteLine("Print" + Name);
        }

      
        abstract public void Speak();
    }
    public class Dog : Pet
    {
        static int Num;
        static Dog()// 静态构造函数// 静态字段初始化
        {
            Num = 0;
        }
        public Dog(string name) : base(name)//构造函数//用关键字base调用了基类的构造函数
        {
            ++Num;
        }
        new public void PrintName()
        {
            Console.WriteLine("子打印" + base.Name);
        }
       
        sealed override public void Speak()
        {
            Console.WriteLine("子说" + Name);
        }
        static public void ShowNum()
        {
            Console.WriteLine("Dog‘s number = "+ Num);
        }
         public void Lost()
        {
            --Num;
            Console.WriteLine( Name+" is Lost!");
        }
    }

 

静态成员

标签:line   protect   cte   级别   内存   public   抽象方法   prot   声音   

原文地址:https://www.cnblogs.com/cicily/p/10930072.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!