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

Страницы работы

Фрагмент текста работы

ЛЕКЦИЯ  25

Отношения классов и объектов

Отношения классов и объектов. 1

Отношения между объектами. 3

Отношения между классами. 5

Унифицированный язык моделирования UML. 9

Диаграмма вариантов использования программы.. 10

Диаграммы действий. 11

Диаграммы классов. 12

Ассоциация. 14

Наследование. 14

Агрегация. 15

Объединение. 15

Включение. 15

Композиция. 15

Зависимость. 15

Диаграмма состояний и переходов. 16

Диаграмма взаимодействия. 16

Пример реализации композиции классов. 18

Вложенные  классы.. 20

Друзья классов как возможность расширения интерфейса класса. 23

Дружественные функции. 24

1. Пример функции, дружественной классу. 24

2. Пример функции, дружественной более чем  одному классу. 25

3. Пример функции-члена класса, дружественной другому классу. 26

4. Пример дружественной функции, которой передается указатель на объект. 27

5. Пример дружественной функции двух классов («точка на плоскости» и «прямая на плоскости») 28

6. Пример использования дружественной функции для вычисления  произведения  вектора   на  матрицу. 29

Дружественные классы.. 29

В ходе этой лекции необходимо усвоить:

·  Отношения между объектами

·  Отношения между классами

·  Композицию классов и вложенные классы

·  Друзья классов как возможность расширения интерфейса класса

Объектно-ориентированное проектирование (object-oriented design, OOD) – это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления моделей (логической и физической, статической и динамической) проектируемой системы.

Объектно-ориентированное программирование (object-oriented programming, OOP) – это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.

Программирование, не основанное на иерархических отношениях, не относится к ООP, а называется программированием на основе абстрактных типов данных.

Язык программирования будет объектно-ориентированным тогда и только тогда, когда выполняются условия:

·  поддерживаются абстракции данных (объекты), имеющие интерфейс в виде именованных операций и собственные данные, с ограничением доступа к ним;

·  объекты относятся к соответствующим типам (классам);

·  типы (классы) могут наследовать атрибуты супертипов (суперклассов);

Объект обладает состоянием, поведением и идентичностью; структура и поведение схожих объектов определяют общий для них класс.

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

Поведение объекта – это то, как объект действует и реагирует; поведение выражается в терминах состояния объекта и передачи сообщений.

Событие – что-то, что может изменить состояние объекта.

Состояние – совокупный результат поведения объекта; одно из стабильных условий, в которых объект может существовать, охарактеризованных количественно; в любой конкретный момент времени состояние объекта включает в себя перечень (обычно, статический) свойств объекта и текущие значения (обычно, динамические) этих свойств.

Сообщение – операция, которую один объект может выполнить над другим (сообщение, в основном, =метод=операция).

Операция – это услуга, которую класс может представить своим клиентам.

Наиболее распространенные операции типичного клиента над объектами:

•  модификатор – операция, изменяющая состояние объекта;

•  селектор – операция, считывающая состояние объекта, но не меняющая состояние (со спецификаторами const);

•  итератор – операция, позволяющая организовать доступ ко всем частям объекта в строго определенной последовательности;

•  конструктор (создающая объект и/или инициализирующая его состояние);

•  деструктор (освобождающая состояние объекта и/или уничтожающая сам объект).

Абстракции – вещь полезная, но в системе их (объектов) может быть очень много и в этом сложность разработки большой системы.

Инкапсуляция помогает тем, что убирает из поля зрения внутреннее содержание абстракций.

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

Значительное упрощение в понимании сложных задач достигается за счет образования из абстракций иерархической структуры. Иерархия – это расположение абстракций по уровням.

Основные виды иерархических структур (применительно к сложным системам

Похожие материалы

Информация о работе

Тип:
Конспекты лекций
Размер файла:
337 Kb
Скачали:
0