C#面向对象基础(五) 农场中的动物

原来的农场,只有俩动物,这是非常地不科学地!

农场中的动物应该是变化地,今天生几个,明天生几个... 还可能采购,也可能出售.

怎么办?使用集合,来保存农场中的动物.你首先想到的是ArrayList.下面这样改代码:

Farm类中加入引用

using System.Collections;

Farm类中类似这样的写法

 public  class Farm
    {

        
public ArrayList animals;
        
/// <summary>
        
/// 构造方法  开始建农场了  初始化
        
/// </summary>
        public Farm()
        {       
           animals 
= new ArrayList();         

        }

        
public void AddAnimal(Animal someAnimal)
        {
            animals.Add(someAnimal); 
        }

        
public void ShowAnimals()
        {
            Console.WriteLine(
"农场里有{0}只动物",animals.Count) ;
            
foreach(Animal a in animals)
            {
                a.ShowInfo();
            }

        }
    }

好了,我们可以使用AddAnimal ,往农场中加动物.使用ShowAnimals显示农场的动物信息.

    class Program
    {       
        
static void Main(string[] args)
        {
            Animal  cock 
= new Animal("cock"1);
            Animal goat 
= new Animal("xiyangyang"3); 
            Farm myFarm 
= new Farm();
            myFarm.AddAnimal(cock);
            myFarm.AddAnimal(goat);
            myFarm.AddAnimal(
new Animal("dog"2));
            myFarm.ShowAnimals();
        }       
    }

 -----------------------------------------------------------------------

ArrayList已经过时了 ,泛型List<T>

确认名称空间引入

using System.Collections.Generic; //泛型

代码如下:

public  class Farm
    {
        
public List<Animal> animals;
        
/// <summary>
        
/// 构造方法  开始建农场了  初始化
        
/// </summary>
        public Farm()
        {       
           animals 
= new List<Animal>();
        }

        
public void AddAnimal(Animal someAnimal)
        {
            animals.Add(someAnimal); 
        }

        
public void ShowAnimals()
        {
            Console.WriteLine(
"农场里有{0}只动物",animals.Count) ;
            
foreach(Animal a in animals)
            {
                a.ShowInfo();
            }
        }
    }
原文地址:https://www.cnblogs.com/imxh/p/2171426.html