zoukankan      html  css  js  c++  java
  • 静态成员

    关键字: 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!");
            }
        }
  • 相关阅读:
    web复制到剪切板js
    thinkphp 级联菜单实现
    一次$.getJSON不执行的记录
    php实现ppt转图片,php调用com组件问题
    模拟生成一天温度数据,精确到秒
    ffmpeg推rtmp流到crtmpserver直播
    博客新窝CSDN站
    Android开源框架Afinal第二篇——庖丁解牛,深入调查
    Android开源框架Afinal第一篇——揭开圣女的面纱
    AndroidのListView之加载说
  • 原文地址:https://www.cnblogs.com/cicily/p/10930072.html
Copyright © 2011-2022 走看看