首页 > 其他 > 详细

第五章 5.3类的静态成员,析造函数与析构函数(猫类)

时间:2019-05-19 21:22:51      阅读:193      评论:0      收藏:0      [点我收藏+]

【案例】定义猫类,在Cat类中定义字段,属性和方法,定义表示数量的静态字段与相应的静态属性,静态方法,再往Cat类中添加实例构造函数,静态构造函数和析构函数。在Progrom类中的Main()方法里声明两个Cat类对象,并使用不同的实例构造函数初始化对象。

代码

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            //声明并实例化对象,并自动调用匹配的实例构造函数初始化对象
            Cat cat1 = new Cat("波斯猫","白色",2.3F);
            cat1.Display();
            cat1.Miaow();
            Console.WriteLine("目前有{0}只猫", Cat.Count);
            Console.WriteLine();
            //声明并实例化对象,并自动调用匹配的实例构造函数初始化对象
            Cat cat2 = new Cat("埃及猫",  "银色黑斑",3.1F);
            cat1.Display();
            cat1.CatchMice();
            Console.WriteLine("目前有{0}只猫", Cat.GetCount());
            Console.WriteLine();
            cat1.Weight = 2.7F;
            Console.WriteLine("波斯猫cat1的体重变成了{0}千克了!", cat1.Weight);
            cat2.HairColor = "黑色";
            Console.WriteLine("埃及猫cat2的毛染成了{0}了", cat2.HairColor);
            Console.WriteLine("埃及猫cat2的生日为:{0},今年{1}岁了", cat2.Birthday.ToShortDateString(), cat2.Age);
            Console.ReadLine();
        }        
    }
    //定义一个猫类,描述猫的信息
    //添加静态字段count和相应的静态属性,静态方法
    //猫类中添加实例构造函数,静态构造函数和析构函数。
    class Cat
    {
        string variety;//品种
        string haircolor;//发色
        float weight;//重量
        DateTime birthday;//生日
        public static int count;//表示数量的静态字段        

        public string Variety//定义属性
        {
            set { variety = value; }//写入数据
            get { return variety; }//读取数据
        }
        public string HairColor
        {
            set { haircolor = value; }
            get { return haircolor; }
        }
        public float Weight
        {
            set { weight = value; }
            get { return weight; }
        }
        public DateTime Birthday
        {
            get { return birthday; }
        }
        public int Age
        {
            get { return (DateTime.Today.Year - birthday.Year + 1); }
        }

        //读取数量的静态属性
        public static int Count
        {
            set { count = value; }
            get { return count; }
        }

        //无参实例构造函数
        public Cat()
        {
            count++;
        }

        //带参实例构造函数
        public Cat(string myVatiety,string myColor,float myWeight)
        {
            variety = myVatiety;
            haircolor = myColor;
            weight = myWeight;
            birthday = DateTime.Today;
            count++;
        }
        public void CatchMice()
        {
            Console.WriteLine("我会抓老鼠!"); 
        }
        public void Miaow()
        {
            Console.WriteLine("喵喵~~!");
        }

        //读取Cat类对象数量的静态方法
        public static int GetCount()
        {
            return count;
        }

        //设置猫各字段值的方法
        public void SetInfo(string myVatiety, string myColor, float myWeight)
        {
            variety = myVatiety;
            haircolor = myColor;
            weight = myWeight;
            birthday = DateTime.Today;
        }

        //显示猫的信息
        public void Display()
        {
            Console.WriteLine("我是一只{0}\n 毛色:{1},重量:{2}千克,生日:{3}", variety, haircolor, weight, birthday.ToShortDateString());
        }

        //析构函数
        ~Cat()
        {
            Console.WriteLine("执行了析构函数!");
            count--;
            Console.WriteLine("目前有{0}只猫", count);           
        }
    }
}

 

第五章 5.3类的静态成员,析造函数与析构函数(猫类)

原文:https://www.cnblogs.com/programme-maker/p/10890368.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!