Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лекция 9. Коллекции – массив, с некоторыми дополнительными возможностями

Коллекции

Коллекции – массив, с некоторыми дополнительными возможностями. Коллекции реализуются в виде классов, их имена часто представляют собой множественное число имени хранимых объектов. Отличие от массивов состоит в том, что размеры коллекций заранее не устанавливаются; добавление, и удаление элементов в коллекцию происходит с помощью методов add и remove, имеют item, который отображает значение.

(В UML)Числа на концах связующих линий указывают, что один объект Animals может содержать 0 или больше объектов Animal.

Перегрузка операций

Класс в Animals можно добавить новое свойство Weight. Перегрузка операций позволяет предоставить логику неявного использования свойства Weight, чтобы можно было упростить пример (1) и получить (2):

1)if (cowA.Weight>cowB.Weight)

{

}

 

2)if (cowA>cowB)

{

}

 

В примере операция «больше» перегружена. Перегруженной так же называется операция, для которой написан выполняющий её код. Этот код добавляется в определение одного из классов, для экземпляров которого должна выполняться перегрузка операции. Аналогично можно добавлять перегрузку операций для работы с разными классами. Перегрузка возможна только для операций, существующих в языке C#; новые операции создавать нельзя.

 

События

Объекты при работе могут генерировать и обрабатывать события (event’ы).События важны тем, что позволяют выполнять определенные действия в других частях кода, например, при добавлении объекта Animal в коллекцию Animals, может понадобиться выполнить определенный код, не являющийся ни частью кода Animals, ни частью того кода, который вызывает метод Add. Для этого необходимо добавить в код обработчик события – особую функцию, которая вызывается при возникновении события. Нужно настроить этот обработчик, чтобы он ожидал возникновения этого события.

class A

{

selectEvent;

}

class B

{

SelectEvent

{

...

}

}

 

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

 

Ссылочные типы и типы значений

Данные в C# сохраняются в переменных одним из двух способов, которые зависят от типов самой переменной: ссылка или значение. Типы значений хранят себя и свое значение в одном месте в УЧ, ссылочные типы хранят ссылку в УЧ, в которой хранится их содержимое.

Ссылочные типы допускают NULL значения. Animal myAnimal; //myAnimal == NULL

Одно из главных отличий между типами значений и ссылочными типами, состоит в том, что типы значений всегда содержат значение, а ссылочные типы могут не содержать их. Можно создать тип значений, ведущий себя в этом отношении подобно ссылочному типу (с поддержкой NULL), путем использования типов, допускающих нулевые значения (nullable). Единственными простыми ссылочными типами являются string и object.

Понятие Основное
Объекты и классы: Классы – определение типов, которые используются для создания объектов. Объекты могут содержать данные и/или предоставлять операции для выполнения в других частях кода. Данные можно сделать доступными для внешнего кода с помощью свойств, а операции – с помощью методов. Свойства и методы класса называются членами класса. Члены класса могут иметь на чтение, и/или запись. Члены класса могут быть общедоступными или приватными.
Жизненный цикл объекта Объект создается с помощью вызова одного из конструкторов (специальный метод в классе). Когда объект становится ненужным он уничтожается с помощью деструктора.
Статические члены и члены экземпляров Члены экземпляров доступны только в объектах экземпляров класса. Статические члены доступны только непосредственно через определение класса, они не связаны ни с каким экземпляром класса.
Интерфейсы Интерфейс – коллекция общедоступных свойств и методов, в которой могут быть реализованы в классе. Переменные с типом экземпляр класса можно присвоить значение любого объекта, определение класса которого реализует этот интерфейс. Тогда через эту переменную доступны определенные в данном интерфейсе
Наследование Механизм порождения, определения одного класса на основе другого. Дочерний наследует члены родительского. Дочерний не может наследовать приватные члены родителя, но можно определить защищенные члены, доступные как внутри самого класса, так и внутри классов, порожденных от данного класса. Дочерние классы могут перекрывать члены, определенные в родительском классе как виртуальные. В C# на верхушке иерархии классов находится класс Object.
Полиморфизм Все объекты, созданные на основе порожденного класса можно считать экземплярами родительского класса
Отношение между объектами и дополнительные возможности Объекты могут содержать другие объекты, а также могут представлять собой коллекции других объектов. Для работы с объектами в выражениях можно определить способ их обработки операциями с помощью перегрузки операций. Объекты могут предоставлять события которые генерируются в каких то внутренних процессах а клиентский код может реагировать на события с помощью обработчиков событий
UML Широко распространенный язык схематичного представления внутренней структуры программ на ООП

 


<== предыдущая лекция | следующая лекция ==>
Лекция 8. Виртуальные члены могут быть приватными | Лекция 11. События – реакция программы на действия пользователя или другой программы или внешней среды
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 250; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.