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

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 83 84 85 86 87 88 < 89 > 90 91 92 93 94 95 .. 404 >> Следующая


{(Button)sender).Text * 'ClickedI'j

Затем мы создаем новый объект Button с помощью ключевого слова new (обратите внимание, что в этом примере пространства нмен заданы так, что позволяют использовать простой синтаксис, в противном случае иам бы пришлось вводить полностью квалифицированное имя объекта — System.windows.Forms .Button):

Button newButton ¦ new Button() ;

newButton.Text = 'New Button!';

Затем в произвольное место программы добавляется обработчик событий, который будет использоваться для того, чтобы отреагировать на событие click, генерируемое новой кнопкой:

private void newButton_Click<object sender. System.EventArgs e)

(

((Button)sender).Text = 'ClickedI!*;

}

Затем мы регистрируем данный обработчик событий как ожидающий наступления события click с помощью некоторого синтаксиса перегрузки оператора. Одновременно мы создаем новый объект EventHandler, используя для этого конструктор не по умолчанию, с именем новой функции обработчика событий:

newButton.Click += new EventHandler(newButton_Click) i

В заключение мы используем объект из семейства controls данной формы для того, чтобы добавить в форму новую кнопку с помощью метода Add():

Controls.Add(newButton);

Этот простой пример включает в себя почти все методы, рассмотренные в данной главе. Как вы можете заметить, в ООП нет ничего сложного, просто оно требует несколько иного угла зрения.
178 Глава 8

Итоги

В настоящей главе вы познакомились с полным описанием объектно-ориентированных методов. Мы изучали их в контексте программирования на С#, но это делалось в основном с иллюстративными целями. Подавляющее большинство понятий относится к ООП на любом языке программирования.

Мы начали с рассмотрения основ: например, какой смысл вкладывается в термин “объект” и каким образом объект может являться экземпляром класса. Затем вы познакомились с тем, что объекты могут иметь различные члены, такие как поля, свойства и методы. Доступ к этим членам может быть некоторым образом ограничен; в данном случае анализировалось, какой смысл вкладывается в понятия общих н частных членов. Далее говорилось о том, что члены могут быть защищенными, а также что их можно отнести к одной из двух категорий — виртуальной или абстрактной (причем абстрактные методы допустимы лишь для абстрактных классов). Также были рассмотрены различия между статическими (общего доступа) членами и членами экземпляра объекта.

После этого мы уделили некоторое внимание жизненному циклу объекта, включая использование конструкторов для создания объекта и деструкторов для его уничтожения. Далее, познакомившись с объединением членов в группы с целью создания интерфейсов, мы рассмотрели более совершенную процедуру уничтожения объектов — с помощью удаляемых объектов, поддерживающих интерфейс IDisposable.

Остальная часть главы была посвящена преимущественно рассмотрению возможностей ООП, многие из которых будут более подробно изучаться в последующих главах. Вы познакомились с наследованием, прн котором классы наследуются от базовых классов, а также с двумя видами полиморфизма — через базовые классы и через интерфейсы; кроме того, вы узнали, каким образом можно использовать объекты для хранения одного илн нескольких других объектов (посредством содержания нлн семейств). Наконец, было рассказано, как применять перегрузку операторов для упрощения синтаксиса при использовании объектов, а также каким образом объекты могут генерировать события.

Наконец, большая часть теории, изложенной в начале главы, была проиллюстрирована с помощью Windows-приложения.

В следующей главе мы познакомимся с тем, как определять классы в С#.

Упражнения

1. Какие нз следующих слов являются ключевыми прн описании уровней доступности в ООП?

? Friend
? Public
? Secure
? Private
а Protected
? Loose
? Wildcard
Введение в объектно-ориентированное программирование

179

2. Справедливо илн нет следующее утверждение:

“Мы должны вызывать деструкторы объектов вручную, иначе это приведет к ненужным тратам памяти".

3. Нужно ли создавать объект для того, чтобы использовать

¦ статический метод его класса?

4. Нарисуйте UML-диаграммы, аналогичные приведенным

в настоящей главе, для следующих классов н интерфейса:

? Абстрактный класс с именем HotDrink, у которого имеются методы Drink () (выпить), AddMilkO (добавить молоко)

н AddSugar О, а также свойства Milk н Sugar.

? Интерфейс с именем icup, у которого имеются методы Refill () (наполнить повторно) и wash о (вымыть), а также свойства color (цвет) и volume (емкость).

? Класс с именем cupofcoffee, который является производным от класса HotDrink, поддерживает интерфейс icup и обладает дополнительным свойством веаптуре.

? Класс с именем cupofTea, который является производным

от класса HotDrink, поддерживает интерфейс icup и обладает дополнительным СВОЙСТВОМ LeafType.

5. Напишите программу для функции, которая будет получать в качестве параметра объект одного нз классов cupofcoffee

или cupofTea. Далее функция должна вызывать методы AddMilkO, Drink о н wash о для любого объекта, переданного ей в качестве параметра.
Предыдущая << 1 .. 83 84 85 86 87 88 < 89 > 90 91 92 93 94 95 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

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

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

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

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