Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 110

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 104 105 106 107 108 109 < 110 > 111 112 113 114 115 116 .. 404 >> Следующая

Дополнительные сведения о классах

229

Практикум: сравнение массивов и более сложных семейств

1. Создайте новое консольное приложение с именем chiiExOi в директории C:\BegCSharp\Chapterll.

2. Добавьте новый класс Animal (животное) к проекту

в файле Animal,cs, воспользовавшись мастером Add Class.

3. Внесите следующие изменения в Animal.cs:

namespace ChllExOl

public abstract class Animal

protected string name; public string Нале

public Animal(string newName) .

паше “ newName;

public void Feed!)

Console.WriteLiret'fOJ has been fed.', name);

pub (

pub t

ic class Cow': Animal public void KilkO

Console.HriteLine('CO) has been milked.', name);

public Cowfstring newName) ; baae(newNarae)

ic class Chicken : Animal public void Lay&ggO

Console.WriteLine('(0) has laid on egg.', name))

public Chicken (string newName) : base (newName)

. get
(
return паше;
) '
set ¦
{
name “ value j
) > • .
public Animal() <
name = 'The animal with no name';

)
230 Глава 11

4. Внесите следующие изменения a classl.се:
usina System;
. using System.Collections;
namespace ChllExOl { III <sun*nary> III Sumaary description for Classl. Ill </suinmary> class Classl { static void Main(string[] args) I
. Console. WriteLine {'Create an Array type collection of Animal ' + *objeota and uee it**)i
Animal [1 animalArray = new Animal [2]; Cow myCowl » new Cow('Deirdre') t animal Array 10] * myCovtl; - animal Array (1] » new Chicken {'Ken*) ;
foreach {Animal щу Animal in animalArray) ¦ (, * ¦ Coneole.WriteLine('New (0} object added to Array collection, * + •Marne .*• (1) ¦, щу Animal. ToStringO , myAnimal .Name); i

Щ Console.WriteLine('Array collection contains (0) objects.'. animalArray.Length)I ¦ animal Array (01. FeedO i ¦ ((CJiicken) animalArray[1]) .LayEgg () ; -console.writeLin [)i
Console.WriteLinet 'Create an ArrayList type collection of Animal ' + ' 'object» and use it: *); ArrayList animal Array Li at = new ArrayLiBt(); Cow щуСо*2 ¦ new Cowl *Hayley*) i animalArrayList.Add(nyCow2)> animalArrayList. Add (new Chicken ('Roy*))
foreach (Animal щуAnimal in animalArrayList) ( Console, WriteLine {'New {0} object added to ArrayList collection,* + * Home = (1)', ну Animal .ToStringO , myAnimal.Name)i )

Console.WriteLine('ArrayLiat collection contains (0} objects.*, . ' animalArrayList.Count)j ((Animal)animalArrayList (0]) .FeedO i ((Chicken) animal Array List [1]) .LayEggO ; Console.WriteLine!);
Console. WriteLine {'Additional manipulation of ArrayListtM i animalArrayList.RemoveAt(0); ((Animal)animalArrayList 10)).Feed(>; animalArrayList.AddRange(animalArray)i ((Chicken)onimalArrayList(2]) .LayEggO j Console.WriteLine('The animal called (0) is at ind t (1).', щуО >1. Name, animalArrayLi st. indexOf (rayCowl)) » ayCowl.Haute ¦ 'Janice*; Console. WriteLine ("the animal is now called (0).*, . {(Animal)animalArrayLiatCl]).Name);

)

)

>
Дополнительные сведения о классах

231

5. Запустите приложение:

*1

0

zl

Как это работает

В этом примере создается два семейства объектов, причем первое — с использованием класса System.Array (т. е, обыкновенный массив), а второе — с использованием класса System.ArrayList. Оба они являются семействами объектов класса Animal, который определен в файле Animal.cs. Класс Animal является абстрактным классом, следовательно, создание экземпляров этого класса является недопустимым; однако за счет использования полиморфизма имеется возможность включить в состав семейства экземпляры класса cow и класса chicken, которые являются производными от класса Animal.

Эти массивы создаются в методе Main о в файле ciassi.es, после чего над ними производятся различные манипуляции, показывающие их характеристики и возможности. Некоторые из продемонстрированных операций применимы как к семейству Array, так и к семейству ArrayList, хотя и имеются незначительные отличия в синтаксисе. Однако есть и такие операции, выполнение которых оказывается ВОЗМОЖНЫМ ТОЛЬКО С более СЛОЖНЫМ ТИПОМ ArrayList.

Мы начнем с рассмотрения простых операций, сравнивая код и полученные результаты для обоих типов семейств.

Итак, первое — создание семейства. Для того чтобы использовать обычный массив, необходимо инициализировать его с фиксированными размерами. Мы выполняем эти действия над массивом с именем animalAtrray, применяя стандартный синтаксис из главы 5:

Animal(] anijnalArray = new Animal [2];

С другой стороны, для семейств ArrayList при инициализацин задание размера не требуется, поэтому список (с именем animaiArrayList) может быть создан следующим образом:

ArrayList animaiArrayList = new ArrayListOj

Существует два других конструктора, которые могут быть нспользованы для данного класса. Первый осуществляет копирование содержимого уже существующего семейства в новый экземпляр, при этом семейство передается ему з качестве параметра; второй конструктор позволяет задать емкость семейства н тоже посредством параметра. Эта емкость, задаваемая значением типа int, устанавливает начальное количество элементов, которые могут содержаться о данном семействе.
Предыдущая << 1 .. 104 105 106 107 108 109 < 110 > 111 112 113 114 115 116 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.