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

С# - Ватсон К.

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


? Интерфейсы

? Наследование

? Полиморфизм

? Взаимоотношения между объектами

? Перегрузка операторов

? События

Интерфейсы

Интерфейсом называется семейство явно описанных как public методов и свойств, которые сгруппированы в единое целое и инкапсулируют какую-либо определенную функциональную возможность. После того как интерфейс определен, его можно реализовать в некотором классе. Это означает, что класс будет поддерживать все свойства и члены, определяемые данным интерфейсом,

Обратите внимание, что интерфейсы не могут существовать сами по себе. Мы не можем "создать экземпляр интерфейса" таким же образом, как мы создаем экземпляр класса. Кроме того, интерфейс не может содержать в себе никакого кода, который бы реализовал его члены; он просто описывает эти члены. Их реализация должна находиться в классах, в которых реализован данный интерфейс.

MyClmu

+lrurtanceProp«rty: int +StattcPfODeitv: Ini

+lnstanceMethod{) -. void
168

Глава 8

<<lnt»rf»c*»

IHotDrink

^Instant: bool +Шк: bool +Sugar: byte ^Description: suing

+AddSugai{ln amount: byte): byte

GupOfCoff»

+ВеалТуро: siring

IHotDrink

СирОГГм

+LeafType: string

IHotDrink

В предыдущем примере, касающемся кофе, мы могли бы сгруппировать в интерфейс несколько свойств и методов наиболее общего назначения, например, AddSugar(), Milk, (молоко), Sugar (сахар) и instant (растворимый). Такой интерфейс можно назвать как-нибудь вроде IHotDrink (горячий напиток) (имена интерфейсов обычно предваряются заглавной буквой i), Этот интерфейс допустимо использовать и для каких-нибудь других объектов, возможно, принадлежащих к классу cupofTea (чашка чая). Другими словами, мы получаем возможность обращаться с этими объектами одинаковым образом, а они при этом по-прежнему могут обладать своими собственными индивидуальными свойствами (напрнмер, веапТуре (сорт кофейных бобов) для CupOECoffee и LeafType (сорт чайного листа) ДЛЯ CupOfTea).

Интерфейсы, реализованные на объектах UML, изображаются с помощью “леденцового” (lollipop) синтаксиса. На диаграмме, приведенной на рисунке слева, члены IHotDrink выделены в отдельный прямоугольник с помощью синтаксиса, напоминающего используемый для описания классов (к сожалению, существующая версия Visio не позволяет интерфейсам иметь поля или свойства).

У класса может быть несколько интерфейсов, и несколько классов могут поддерживать один и тот же интерфейс. Понятие интерфейса позволяет, таким образом, облегчить жизнь другим разработчикам и пользователям, Допустим, что у вас имеется некий код, в котором задействован объект, обладающий определенным интерфейсом. Если предположить, что вы не используете другие свойства и методы данного объекта, то появляется возможность заменять один объект на другой (код, в котором используется интерфейс ihotDrink, может работать как с экземпляром класса CupOfCoffee, так и с экземпляром класса CupofTea). Кроме того, разработчик самого объекта имеет возможность снабжать вас усовершенствованными версиями этого объекта — если он поддерживает использовавшийся ранее интерфейс, то не составит никакого труда применить новую версию объекта в вашей программе.

Удаляемые объекты

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

В C# имеется возможность применять специальную конструкцию, которая замечательно использует этот метод. Ключевое слово using позволяет нам инициализировать некий объект, использующий критические ресурсы, внутри некоторого блока кода, в конце которого автоматически вызывается метод Disposed . Вот каким образом можно реализовать такую конструкцию:
Введение а объектно-ориентированное программирование

169

using (<ИняКлассл> <ИыяПеремвиыой> = new <ИыяКласса> ())

(

>

В этой конструкции переменную <иыяПереиенной> можно использовать по всему блоку, но в конце блока она будет автоматически удалена (посредством вызова метода Dispose ()).

Наследование

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

Наследование позволяет расширять или создавать более специфические классы на основе одного базового класса. Например, представьте себе класс, описывающий скотный двор (такой класс использовался асом-разработчиком восьмидесятилетним Стариной Макдональдом в его приложении для работы с домашними . животными). Этот класс можно назвать Animal (животное) и включить в него такие методы, как EatFaodo (принимать пищу) и Breedo (размножаться). После этого мы можем создать производный класс с именем cow (корова), который будет поддерживать все эти методы, но при этом может обладать и своими собственными, например, моо() (мычать) и suppiyHiiko (давать молоко). Мы можем создавать и другие производные классы, например, класс chicken (курица) с методами cluck() (кудахтать) и LayEsjgO (нести яйца).
Предыдущая << 1 .. 78 79 80 81 82 83 < 84 > 85 86 87 88 89 90 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

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

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

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

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