Часть II. Объектно-ориентированное программирование
// Объявляется обычный массив animalArray
// из двух элементов.
// Так как любой массив — потомок базового
// Array, то можно пользоваться инструментами
// этого класса
Animal [] animalArray = new Animal [2];
Cow myCowl = new Cow("Чернушка"); // Из класса
// формируется объект
// Инициализация массива:
animalArray [0] = myCowl; // В нулевой элемент
// массива засылается объект (корова Чернушка)
animalArray [1] = new Chicken("Ряба"); // В первый
// элемент массива засылается объект
//(Курочка Ряба)
// Цикл по элементам массива и вывод сведений
// об элементах.
// myAnimal — рабочая переменная, по которой идет
// цикл: ей последовательно присваиваются элементы
// из массива, поэтому тип этой переменной и тип
// массива должны быть совместимы
foreach (Animal myAnimal in animalArray)
{
Console.WriteLine("В коллекцию Array добавлен "+
"новый объект, кличка = {0}",
myAnimal.Name);
}
// Вывод количества элементов массива
Console. WriteLine("Коллекция Array содержит "+
"объектов {0}",
animalArray.Length);
animalArray[0].Feed(); // Вывод сведения о корме
// первого объекта
((Chicken)animalArray[1]).LayEgg(); // Вывод о
// снесенных яйцах второго объекта
// animalArray — объект абстрактного класса,
// поэтому нужно приведение его к типу Chicken,
// чтобы добраться до метода LayEgg().
// Это были операции с простым массивом.
Глава 12. Коллекции. Обобщения
227
// Далее пойдут операции с новым типом массива:
Console.WriteLine();
Console.WriteLine("Создание коллекции типа " +
"ArrayList из объектов Animal " +
"и ее использование:");
ArrayList animalArrayList = new ArrayList();
Cow myCow2 = new Cow("Пятнашка");
animalArrayList.Add(myCow2); // Вот такая здесь
// инициализация: добавление объекта,
// а не присвоение. Сразу видна динамика:
// добавлять можно, сколько потребуется
// Так как Array — прародитель массивов, то можем
// пользоваться его инструментами (Add() и т. д.)
animalArrayList.Add(new Chicken("Хохлатка"));
// Здесь нет ничего нового:
foreach (Animal myAnimal in animalArrayList)
{
Console. WriteLine("Новый объект добавлен к " +
"коллекции ArrayList," +
" Имя = {0}", myAnimal.Name);
}
Console.WriteLine("Коллекция ArrayList содержит "+
"объектов {0} ",
animalArrayList.Count); // Здесь вместо длины
// для подсчета применяется элемент Count
((Animal)animalArrayList[0]).Feed(); // Чтобы
// добраться до Feed(), надо выполнить
// приведение к типу Animal, где находится
// Feed()
((Chicken)animalArrayList[1]).LayEgg();
Console.WriteLine();
Console. WriteLine("Дополнительные действия " +
"с ArrayList:");
// Новый метод из класса: удаление элемента.
// Остальные сдвигаются на его место.
// Видна динамика
animalArrayList.RemoveAt(0);
228
Do'stlaringiz bilan baham: |