- •2 Выделение объектов проблемной области: объектно-ориентированная модель задачи, информационная и математическая модели объектов Пример. Представление доски в аудитории в виде объекта
- •Выводы:
- •3 Концептуальная модель класса объектов
- •4 Инкапсуляция атрибутов и методов в классе объектов Понятие инкапсуляции
- •Инкапсуляция в концептуальной модели ооп
- •Реализация членов-функций
- •Указатель this: назначение и использование
- •Проблема защиты членов-данных класса
- •Защита на уровне уровня доступа
- •Защита на уровне значений
- •10 Защита членов-данных, заданных указателями и ссылками
- •11 Защита членов-данных объекта, передаваемого в качестве параметра функции или возвращаемого функцией
- •Реализация и семантика (смысл) чдодвоКов
- •2.11.2 Инициализация чдодвоКов
- •14 ??? Использование членов класса, общих для всех объектов класса, для учета и идентификации объектов класса.
- •15 ??? Использование членов класса, общих для всех объектов класса, для обеспечения тестирования и отладки оо программ
- •2.12.1 Свойства ctorов, предназначенные для реализации модели ооп
- •Автоматический вызов ctorа
- •18 ??? Создание объектов прямым заданием значений членов-данных
- •19 ??? Создание объектов копированием и преобразованием
- •20 ??? Создание объектов класса, использующего объекты других классов в качестве членов-данных
- •22 Проектирование класса по контракту
- •23 Отношение наследования в концептуальной модели ооп.
- •25 Управление доступом в производном классе к членам базового класса
- •27,28 Создание объектов производного класса и задание их начальных состояний
- •29 Назначение виртуальных функций
- •Назначение вф
- •30 Задание виртуальных функций
- •31 Вызов виртуальных функций.
- •32 Виртуальные деструкторы
- •33 Организация вычислений в концептуальной модели ооп
- •Преимущества и недостатки множественного наследования
- •38 Понятие "полиморфизм" в модели ооп. Виды полиморфизма
- •Виды полиморфизма
Выводы:
-
Выделение объектов в некоторой предметной области требует знания предметной области.
-
При формировании объектов, выделении их свойств приходится рассматривать достаточно много вариантов и выбирать те, которые наилучшим образом соответствуют решаемой задаче.
-
Для придания точного смысла выделяемым объектам необходимо использовать математические модели.
-
Выделение объектов и их свойств требует наличия опыта, т.к. на каждом шаге требуется формировать варианты и выбирать их, предвидя последствия принимаемых решений.
-
Выделение и описание объектов требует:
-
творческого подхода при построении набора вариантов;
-
критического мышления при отборе допустимых вариантов;
-
умения принимать решения, предвидеть и оценивать последствия;
-
самостоятельности.
-
3 Концептуальная модель класса объектов
1) В ООП одной из основных моделей является класс.
2) Есть 2 подхода к определению класса в ООП:
а) перечисление совокупности объектов
б) описание набора атрибутов и методов
3) Перечисление совокупности объектов
Определение 2
Классом объектов является совокупность объектов, обладающих одинаковым на-бором атрибутов и методов.
4) Описание набора атрибутов и методов
Определение 3
Классом объектов является модель (описание) набора атрибутов и методов, ко-торыми должен обладать каждый объект класса.
5) Определение 2 всегда порождает набор объектов, а определение 3 не подразумевает существования объектов. Вывод: среди методов должны быть методы создания и уничтожения объектов.
6) Основные свойства класса:
а) идентифицируется именем;
б) для класса и объекта определено отношение «быть объектом класса»;
в) класс является моделью для создания объектов класса;
г) класс содержит методы для создания объектов класса. Как правило, класс имеет несколько методов для создания объектов с разными свойствами (значениями атрибутов) и в разных условиях их появления.
7) Класс обязательно содержит метод для разрушения объектов класса. Как правило, существует только один такой метод.
8) Определение 3 всегда позволяет построить объекты с заданными атрибутами и методами, т.е., получить класс в смысле определения 2.
4 Инкапсуляция атрибутов и методов в классе объектов Понятие инкапсуляции
1) Инкапсуляцией в ООП называется сосредоточение и сокрытие информации (атрибу-тов) и методов в классе объектов [если использовать определение 3] или в объекте [если использовать определение 2].
2) Существует 3 группы языков программирования:
а) инкапсуляция в классе;
б) инкапсуляция в объекте;
в) инкапсуляция и там, и там.
3) Инкапсуляция означает, что внутренняя реализация объекта или класса скрыта от пользователя. При этом пользователь знает об атрибутах и методах только то, что предоставил ему объект или класс.
4) Совокупность атрибутов и методов объекта или класса, предназначенные для приме-нения пользователем, называются интерфейсом [Термин интерфейс в контексте ООП имеет несколько значений. Второе значение см. в разделе «Виртуаль-ные функции»] класса.
5) Целью инкапсуляции является защита данных: ограничение доступа к атрибутам и ме-тодам объекта или класса со стороны пользователя. Ограничение направлено на пре-дотвращение внесения изменений, не разрешенных объектом или классом.
6) Предметом (уровнем) инкапсуляции может быть как объект, так и класс.
7) Прагматика (выгода) от инкапсуляции состоит в следующем.
а) Инкапсуляция позволяет вносить изменения в скрытые части объекта или класса без изменения интерфейса, т.е. без последствий для пользователя [Имеется в виду не пользователь ОО-программы, а пользователь класса — скорее всего, программист].
б) Обеспечивает защиту от использования программистом действий с атрибутами или вызова методов, не разрешенных объектом класса.
8) Инкапсуляция является развитием принципов модульного программирования, которое сосредотачивало модули (части) программы, необходимые для ее функционирования.
9) Инкапсуляция является развитием способов защиты переменных и процедур в строго типизированных языках программирования.