- •1. Краткие теоретические сведения
- •1.1. Объектно-ориентированный подход-Бузюков
- •1.2. Этапы разработки ооп систем
- •1.3. Декомпозиция
- •1.5. Концепции ооп
- •1.6. Синтаксис объявления класса
- •1.7. Методы класса
- •1.8. Объявление объектов
- •1.9. Конструктор
- •1.10. Деструктор
- •1.11. Инкапсуляция
- •1.12. Полиморфизм
- •1.13. Указатель this
- •1.14. Статические члены класса
- •1.15. Дружественные функции и классы
- •1.16. Вложенные классы
- •1.17. Элементы класса
- •1.17.1. Данные-элементы
- •1.17.2. Элементы-функции
- •1.17.3. Доступ к данным-элементам
- •1.17.4. Вызов функций-элементов
- •1.17.5. Указатели на компоненты-функции.
- •2. Задание
- •2.4.1.2. Пример для варианта 30
- •2.4.1.2.1. Разработка алгоритма решения.
- •2.4.1.2.2. Описание структуры класса.
- •2.4.1.2.2.1. Описание полей класса.
- •2.4.1.2.2.2. Функции-аксессоры.
- •2.4.1.3. Программа
- •2.4.1.4. Тестирование
- •2.4.2. Задание 2. Простейшие классы и объекты
- •2.4.2.1. Условие задания
- •2.4.2.2. Пример
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.4.3. Задание 3. Простейший класс. Объединение данных и методов
- •2.4.3.1. Условие задания
- •2.4.3.2. Пример
- •2.4.3.3. Программы
- •2.4.3.3.1. Первый принцип инкапсуляции: объединение данных и методов
- •2.4.3.3.2. Второй принцип инкапсуляции: защита от внешнего вмешательства
- •2.4.3.3.3. Независимость интерфейса от реализации
- •2.4.3.3.4. Конструктор, деструктор
- •2.4.3.3.5. Определение методов вне класса
- •2.4.3.3.6. Конcтантные поля, методы и объекты
- •2.4.3.4. Тестирование
- •2.4.4. Задание 4. Пользовательский класс
- •2.4.4.1. Условие задания
- •2.4.4.2. Методические указания.
- •1. Пример определения класса.
- •2. Пример реализации конструктора с выдачей сообщения.
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Объектно-ориентированный подход-Бузюков 2
1.2. Этапы разработки ооп систем
Объектно-ориентированный анализ: исследование задачи с точки зрения объектов реального мира и определение требований к программной системе
Объектно-ориентированное проектирование: разработка программных классов и логики их функционирования и взаимодействия
Объектно-ориентированное программирование: реализация классов проектирования на выбранном языке программирования.
1.3. Декомпозиция
При проектировании сложной программной системы необходимо разделять ее на подсистемы, каждую из которых можно совершенствовать независимо. Построив модели ограниченного числа подсистем, можно, комбинируя их различным образом строить множество гораздо более сложных систем.
Алгоритмическая декомпозиция
Основана на разделении алгоритмов по модулям системы.
Каждый модуль выполняет один из этапов общего процесса.
Реализуется средствами структурного программирования
Объектно-ориентированная декомпозиция
Мир представляется совокупностью автономно действующих объектов, моделирующих объекты реального мира.
Каждый объект обладает своим собственным поведением.
Послав объекту сообщение, можно попросить его выполнить присущее ему действие.
Объекты взаимодействуют друг с другом, моделируя поведение системы, соответствующее более высокому уровню.
Реализуется средствами объектно-ориентированного программирования.
1.4. ООП
Объектно-ориентированное программирование (ООП) – методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.
Объект характеризуется:
совокупностью своих элементов и их текущих значений
совокупностью допустимых для объекта действий
Класс – определенный пользователем проблемно-ориентированный тип данных, описывающий внутреннюю структуру объектов, которые являются его экземплярами.
Классами в С++ являются также структуры (struct) и объединения (union). В отличие от класса члены структуры по умолчанию являются открытыми, а не закрытыми. Кроме того, объединения не могут наследоваться и наследовать.
Объект (экземпляр класса) находится в таком же отношении к своему классу, в каком переменная находится по отношению к своему типу.
Данные и функции внутри класса называются членами класса.
Данные, входящие в класс, называются данными-членами или полями.
Функции, принадлежащие классу, называют функциями-членами или методами.
Объекты можно применять так же как и переменные встроенных типов, например, передавать в качестве параметра в функцию, получать в качестве результата, объединять в массивы, включать в структуры и другие классы.
Использование объекта одного класса в качестве поля другого класса называется композицией.
Каждый объект некоторого класса занимает определенное количество байтов памяти, где хранятся значения полей данных для этого объекта. Методы не занимают места в памяти объекта и хранятся в единственном экземпляре.