- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Протокол согласования учебной программы по изучаемой учебной дисциплине с другими дисциплинами специальности
- •Пояснительная записка
- •Содержание дисциплины
- •1. Лабораторные занятия, их характеристика
- •2. Контрольные работы, их характеристика
- •3. Курсовые работы (проекты), их характеристика
- •4. Литература
- •4.1.Основная
- •4.2.Дополнительная
- •5. Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •Тема 2. Классы. Объекты. Конструкторы и деструкторы. Методы.
- •Тема 3. Свойства. Методы получения и установки значений свойств. Свойства-массивы. Свойство-массив как основное свойство объекта. Методы, обслуживающие несколько свойств.
- •Тема 4. Наследование. Прародитель всех классов. Перекрытие атрибутов в наследниках. Совместимость объектов различных классов. Контроль и преобразование типов.
- •Тема 5. Виртуальные методы. Механизм вызова виртуальных методов. Абстрактные виртуальные методы. Динамические методы. Методы обработки сообщений.
- •Тема 6. Классы в программных модулях. Разграничение доступа к атрибутам объектов. Указатели на методы объектов
- •Тема 7. Метаклассы. Ссылки на классы. Методы классов. Виртуальные конструкторы. Информация о типе времени выполнения программы - rtti.
- •Тема 9. Защита от утечки ресурсов. Приемы надежного программирования
- •Тема 10. Интерфейс. Описание интерфейса. Расширение интерфейса. Глобально-уникальный идентификатор интерфейса.
- •Тема 12. Совместимость интерфейсов. Совместимость класса и интерфейса. Получение интерфейса через другой интерфейс
- •Тема 13. Подсчет ссылок. Механизм подсчета ссылок. Представление интерфейса в памяти. Применение интерфейса для доступа к объекту dll-библиотеки.
- •Тема 15. Перегрузка идентификаторов. Предопределенные аргументы в подпрограммах.
- •Тема 18. Множественное наследование. Проблема повторяющихся базовых классов. Типовой пример применения множественного наследования - observer.
- •Тема 19. Виртуальные методы. Абстрактые методы и классы. Подстановочные функции
- •Тема 21. Ссылки. Рекомендации по работе со ссылками. Типичные ошибки при работе со ссылками.
- •Тема 23. Перегрузка операторов. Перегрузка бинарных операторов. Перегрузка унарных операторов. Перегрузка операторов преобразования типа.
- •Тема 24. Шаблоны функций. Перегрузка шаблонов функций. Шаблоны классов. Специализации шаблонов. Создание новых типов данных на базе шаблонов
- •Тема 26. Перспективные технологии ооп.
- •Практический раздел Контрольные работы
- •Контрольная работа №1 Указания по выбору варианта
- •Теоретическая часть (вопросы)
- •Практическая часть Контрольное задание №1. Пример использования объектно-ориентированного программирования в языке Delphi
- •Исходные данные к контрольному заданию №1
- •Контрольная работа №2 Указания по выбору варианта
- •Теоретическая часть (вопросы)
- •Практическая часть
Теоретическая часть (вопросы)
1. Парадигмы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. Формула объекта. Природа объекта.
2. Классы. Объекты. Конструкторы и деструкторы. Методы.
3. Свойства. Понятие свойства. Методы получения и установки значений свойств. Свойства-массивы. Свойство-массив как основное свойство объекта. Методы, обслуживающие несколько свойств.
4. Наследование. Понятие наследования. Прародитель всех классов. Перекрытие атрибутов в наследниках. Совместимость объектов различных классов. Контроль и преобразование типов.
5. Виртуальные методы. Понятие виртуального метода. Механизм вызова виртуальных методов. Абстрактные виртуальные методы. Динамические методы. Методы обработки сообщений.
6. Классы в программных модулях. Разграничение доступа к атрибутам объектов. Указатели на методы объектов.
7. Метаклассы. Ссылки на классы. Методы классов. Виртуальные конструкторы. Информация о типе времени выполнения программы — RTTI.
8. Ошибки и исключительные ситуации. Классы исключительных ситуаций. Обработка исключительных ситуаций. Создание исключительной ситуации. Распознавание класса исключительной ситуации. Возобновление исключительной ситуации. Доступ к объекту, описывающему исключительную ситуацию.
9. Защита от утечки ресурсов. Приемы надежного программирования.
10. Понятие интерфейса. Описание интерфейса. Расширение интерфейса. Глобально-уникальный идентификатор интерфейса.
11. Реализация интерфейса. Использование интерфейса. Реализация нескольких интерфейсов. Реализация интерфейса несколькими классами. Связывание методов интерфейса с методами класса. Реализация интерфейса вложенным объектом.
12. Совместимость интерфейсов. Совместимость класса и интерфейса. Получение интерфейса через другой интерфейс.
13. Механизм подсчета ссылок. Представление интерфейса в памяти. Применение интерфейса для доступа к объекту DLL-библиотеки.
Практическая часть Контрольное задание №1. Пример использования объектно-ориентированного программирования в языке Delphi
Спроектировать и реализовать программное средство на языке Delphi. В данном программном средстве должен быть реализован механизм (концепция) из таблицы 2.
Таблица 2
Исходные данные к контрольному заданию №1
Значение показателей по вариантам |
||||
1 |
2 |
3 |
4 |
5 |
Создание классов, реализующих интерфейсы. |
Создание иерархии классов с реализацией инкапсуляциии, полиморфизма, наследования. |
Полиморфизм в иерархии классов |
Множественное наследование. |
Приемы проектирования: фабрики классов.
|
Методические указания
Цель данной работы состоит в знакомстве с основными концепциями ООП: инкапсуляцией, полиморфизмом, наследованием. Создание классов, реализующих интерфейсы. Реализация системы со сложно спроектированными функциональными зависимостями. Использование сложного полиморфизма, агрегации классов и интерфейсов, а так же других механизмов межклассового взаимодействия. Изучение приемов проектирования на примере фабрики классов.
Для выполнения работы использовать язык программирования Delphi.
При работе использовать материал представленный в теоретической части данного ЭУМКД.
