Лекции.Орг


Поиск:




Инкапсуляция. Реализация механизма инкапсуляции через свойства. Функции-аксессоры (set, get). Отсутствие или ограничение области видимости одного из аксессоров. Почти ничего




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

 

8. Наследование: понятие, назначение, примеры применения. Поведение различных членов класса при наследовании. Совпадения сигнатур методов при наследовании. Неполный.

Классы могут наследоваться друг от друга. Класс-наследник (потомок) — класс, включающий поля и методы своих родителей (некоторые или все). Класс-родитель (базовый / суперкласс) — класс, на основе которого создаются другие классы.

Класс-потомок получает все поля и методы класса-родителя, но может дополнять их собственными, либо переопределять уже имеющиеся.

Большинство языков программирования поддерживает только единичное наследование (класс может иметь только один класс-родитель), лишь в некоторых допускается множественное наследование — порождение класса от двух или более классов-родителей.

Множественное наследование создаёт целый ряд проблем, как логических, так и чисто реализационных, поэтому в полном объёме его поддержка не распространена. Вместо этого в 1990-е годы появилось и стало активно вводиться в объектно-ориентированные языки понятие интерфейса.

Интерфейс — это класс без полей и без реализации, включающий только заголовки методов. Если некий класс наследует (или, как говорят, реализует) интерфейс, он должен реализовать все входящие в него методы. Использование интерфейсов предоставляет относительно дешёвую альтернативу множественному наследованию.

Взаимодействие объектов в большинстве случаев обеспечивается вызовом ими методов друг друга.

Если у класса нет родителей, он по умолчанию наследуется классом “Object”. Если у класса без родителей не определен конструктор, он автоматически наследует конструктор класса “Object”.

“Object” — исходный базовый класс всех классов.

9. Агрегация: понятие, назначение, примеры применения. Отличия от наследования. Жизненный цикл агрегируемых объектов. Полный (?).

Агрегация — технология, позволяющая использовать объект в качестве поля другого объекта.

Объектом-агрегатором (составным объектом) называется объект, объединяющий в себе несколько объектов. Агрегируемыми объектами называются объекты, которые объединяются в других объектах.

При этом, если удалить объект-агрегатор, удалятся и все включенные в него объекты.

Различия между агрегацией и наследованием:

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

· При наследовании создается отдельный класс, при агрегации нет.

Методы класса. Сигнатура метода. Абстрактные (abstract), виртуальные (virtual) и перезаписанные (override) методы. Статические (static) методы классов и особенности их применения. Полный.

Метод — процедура или функция, принадлежащая какому-либо классу (объекту).

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

Сигнатура метода — это набор всей информации, необходимой для описания его вызова: имя, параметры и их типы.

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

Различают простые и статические методы (методы класса):

· простые методы имеют доступ к данным объекта (конкретного экземпляра класса),

· статические методы не имеют доступа к данным объекта и для их использования не нужно создавать экземпляры (данного класса).

Модификатор abstract указывает, что реализация изменяемого объекта является неполной или отсутствует. Модификатор abstract может использоваться с классами, методами, свойствами, индексаторами и событиями. Модификатор abstract в объявлении класса указывает, что класс предназначен только для использования в качестве базового класса для других классов. Члены, помеченные как абстрактные или включенные в абстрактный класс, должны быть реализованы с помощью классов, производных от абстрактных классов.

Ключевое слово virtual используется для изменения объявлений методов, свойств, индексаторов и событий и разрешения их переопределения в любом производном классе.

Модификатор override требуется для расширения или изменения абстрактной или виртуальной реализации унаследованного метода, свойства, индексатора или события.

11. Перегрузка операций: понятие, назначение, примеры применения. Перегрузка арифметических и логических операций. Особенности перегрузки операции равенства (==).

 

12. Полиморфизм: понятие, назначение, примеры применения. Суть принципа «один интерфейс – множество методов».

 

 

13. Исключительные ситуации: понятие, назначение, примеры применения. Иерархия исключений. Создание (throw) и перехват (try-catch-finally) объектов-исключений. Способы реагирования на исключительные ситуации. Исключения, которые нельзя перехватить.

 

14. Интерфейсы: понятие, назначение, примеры применения. Реализация интерфейсов. Приведение к интерфейсу. Коллизия имен при реализации двух и более интерфейсов. Назначение интерфейсов IComparable, IClonable, ISerializeable.

 

15. Функциональный тип – делегаты: понятие, назначение, примеры применения. Функция, как экземпляр делегата. Делегат, как свойство класса. Неполный.

Делегат — шаблон, определяющий синтаксис оператора, который описывает метод.

Делегаты являются ссылками на методы, инкапсулирующими настоящие указатели и предоставляющими удобные сервисы для работы с ними. Ссылки представляют собой объекты соответствующего типа. Все делегаты являются объектами типа System.Delegate (или System.MulticastDelegate, который является производным от первого).

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

 

1. Программный проект: консольный, оконный. Файлы, составляющие проект. Исполняемые файлы (*.ЕХЕ). Понятие «сборки» в.NET. Ничего.

Сборка — код программы после компиляции.

2. Система типов языка C#. Размерные (value-type) и ссылочные (reference-type) типы. Семантика присваивания. Преобразования между ссылочными и размерными типами. «Упаковка-распаковка» типов (boxing, unboxing).

3. Соглашение о совместимости и преобразование типов. Явные и неявные преобразования. Класс Convert.





Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 1657 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Человек, которым вам суждено стать – это только тот человек, которым вы сами решите стать. © Ральф Уолдо Эмерсон
==> читать все изречения...

820 - | 780 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.