- •1. Объектно-ориентированное программирование (oop). Объектно-ориентированная технология (oot) программирования.
- •2. Свойства оор.
- •3. Объектно-ориентированный подход (ооп). Определение составляющих объектного подхода: ооа, ood, оор.
- •4. Компоненты оор.
- •5. Объект. Основные понятия: определение объекта, его состояние, поведение, индивидуальность. Взаимодействие объектов. Отношения между объектами.
- •6. Класс. Отношения между классами. Классификация. Методы классификации.
- •7. Вопросы качества абстракция и выбора операций при создании классов и объектов.
- •9. Ссылки и параметры-ссылки. Объявления переменных.
- •10. Встраиваемые функции. Операции new и delete.
- •11. Функции-члены и данные-члены.
- •12. Интерфейсы и реализация.
- •13. Конструкторы и инициализация. Конструктор без параметров (по умолчанию). Конструктор копирования.
- •14. Деструкторы и очистка.
- •Статические члены: функции и данные.
- •16. Структуры и объединения.
- •17. Константные члены-функции и константные объекты.
- •18. Дружественные функции и перегрузка операций.
- •19. Перегрузка new, delete.
- •Void *operator new (size_f size);
- •Void operator delete (void *); //void * - указатель на область памяти, //выделяемую под объект
- •20. Преобразование типов, определяемых пользователем с помощью конструкторов и операций преобразования.
- •22. Друзья-функции и друзья-классы
- •24. Производные классы. Базы прямые, непрямые
- •25. Конструкторы, деструкторы и наследование
- •26. Множественное наследование
- •27. Виртуальные базовые классы. Иерархия классов. Виртуальные функции
- •Virtual void draw();
- •Void draw();
- •28. Полиморфизм
- •29. Абстрактные классы и чистые виртуальные функции.
- •30. Заголовочные файлы. Предопределенные объекты и потоки.
- •31. Операции помещения и извлечения. Манипуляторы
- •Int main()
- •33. Конструкторы файловых потоков. Ввод-вывод в файлы.
- •34 Параметризированные типы и функции
- •35 Шаблоны функций. Параметры шаблонов. Шаблоны классов
- •36. Контейнеры. Итераторы
- •37. Использование assert, кодов возврата, сигналов, setjmp и longjmp.
- •38. Объектно-ориентированная обработка исключений. Применение try, catch, throw.
4. Компоненты оор.
Компоненты объектного подхода:
Абстрагирование;
Ограничение доступа;
Модульность;
Иерархия;
Типизация;
Параллелизм;
Устойчивость.
Компоненты 1 – 4 являются главными, а 5 – 7 – дополнительными.
Все абстракции обладают двумя видами свойств: динамическими и статическими. Например, объект «файл» требует определенного объема памяти, имени, содержания – статические атрибуты, а конкретные значения этих параметров – динамика.
Ограничение доступа – взаимодополняющая операция абстрагированию, закрывающая пользователям доступ к различию внутренних устройств объекта.
Модульность (реализована не во всех ОО языках) – это разделение программ на раздельно компилируемые объекты, имеющие между собой средства сообщений. Требование к модулю: простое восприятие, независимость от других модулей.
Иерархия – упорядоченная система абстракций, выражается в свойстве наследования.
Типизация – ограничение, накладываемое на класс объектов и препятствующая взаимозамене различных классов.
Кроме строгой типизации существует статическая и динамическая типизация. На стыке принципов наследования и динамических связей возникает полиморфизм. Таким обратным принципом полиморфизма является мономорфизм, свойственный всем языкам во всей типизацией и статическими связями (язык Ada).
Параллелизм связан с абстрагированием процессов и их синхронизацией. Параллелизм характеризует возможность одновременного функционирования объектов.
Устойчивость означает, что объекты в программе занимают определенное место и существуют определенное время. Традиционные языки программирования реализуют только некоторые уровни устойчивости (промежуточные результаты вычислений, локальные переменные, собственные переменные).
5. Объект. Основные понятия: определение объекта, его состояние, поведение, индивидуальность. Взаимодействие объектов. Отношения между объектами.
Объект – модель реального физического предмета. В программировании конкретные переменные типа “класс” называются экземплярами класса, или объектами. Состояние объекта – текущее значение его атрибутов. Атрибутами могут быть простые, сложные величины или другие объекты.
Объекты описываются не индивидуально, а с помощью классов. Класс - своеобразный шаблон объекта. Объект, созданный на основе некоторого класса, называется экземпляром класса. Все объекты определенных пользователем классов являются экземплярами класса. Тем не менее, объекты даже с одним и тем же состоянием могут быть разными объектами. Говорят, что они имеют разную индивидуальность.
Взаимодействие объектов - влияние объектов друг на друга, при котором один объект взаимодействует с другими посредством обмена сообщениями, т.е. запросами на выполнение каких-либо действий.
Цель системы в общем случае – описание взаимодействия объектов. Отношение двух объектов основывается на том, что каждый объект имеет информацию о другом объекте, о тех операциях, которые можно над объектом выполнять, а также об ожидании поведения.
В OOD представляют интерес два типа отношений: отношение использования и отношение включения. В отношении включения некоторый объект может состоять из других объектов, а в отношении использования объекты выполняют следующие роли: воздействие, исполнение, посредничество.