Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шевчук - конспект лекций №2.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
12.75 Mб
Скачать
  1. Объекты

Объект – это конкретные сущности, существующие во времени и пространстве; конкретное представление абстракции или экземпляр класса. Объект обладает индивидуальностью, состоянием и поведением.

Индивидуальность – отличительная особенность объектов от других объектов.

Состояние – перечень всех свойств объекта и их текущие значения.

П оведение – характеризует то, как объект воздействует на другие объекты в терминах изменения его состояний и передаче сообщений, поскольку объекты не существуют изолировано друг от друга.

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

Возможны 5 видов операций:

1) модификатор (изменяет состояние объекта);

2) селектор (дает доступ к состоянию, но не изменяет его);

3) итератор (доступ к содержанию объекта по частям, в строго определенном порядке);

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

5) деструктор (разрушает объект и освобождает занимаемую им память).

Вид операции

Пример операции

Модификатор

Пополнеть (кг)

Селектор

КакойВес ( ) : integer

Итератор

ПоказатьАссортиментТоваров ( ) : string

Конструктор

СоздатьРобот (параметры)

Деструктор

УничтожитьРобот ( )

В чистых объектно-ориентрованных языках программирования операции могут объявляться как методы. А в гибридных языках, например, C++, они являются свободными подпрограммами.

В общем случае, все методы из свободной подпрограммы объекта образуют его протокол, который определяет оболочку допустимого поведения объекта и поэтому заключает в себе его цельное представление. Протокол разбивается на логические группировки поведения – роли, которые может играть объект.

Выделяют активные и пассивные объекты: активный объект – автономен, может проявлять свое поведение без воздействия на него других объектов, а пассивный объект изменяет свое поведение только под воздействием других объектов.

Виды отношений между объектами:

Связь – физическое или понятийное соединение между объектами. Как участник связи, объект может играть одну из 3 ролей:

- актер (объект, который воздействует на других, на него – не могут);

- сервер(объект, используемый другими объектами,но он не воздействующий на них никогда);

- агент (объект воздействующий на другие и используемый ими).

Агрегация – отношение между объектами в иерархии «целое – часть». Она бывает 2 видов: по величине и по ссылке (СЛАЙД 19).

Агрегация может обозначать, а может и не обозначать физическое включение части в целое

Физическое включение Нефизическое включение

  1. КЛАССЫ

Класс – описание множества объектов, разделяющих одинаковые свойства, операции, отношения и семантику. Различают внутреннее и внешнее представление классов:

внешнее представление – интерфейс – возможности или услуги класса со скрытой структурой и поведением;

внутреннее представление – реализация – описывает секреты поведения класса, включает реализацию всех операций, определенных в интерфейсе класса.

Интерфейс может быть разделен на 3 части:

1 ) публичную (public), объявления которой доступны всем клиентам;

2) защищенную (protected), объявления которой доступны только самому классу, его подклассам и друзьям;

3) приватную (private), объявления которой доступны только самому классу и его друзьям.

Друг класса – это класс, который имеет доступ ко всем его частям.

Виды отношений между классами:

  1. Ассоциация – обеспечивает взаимодействие объектов, принадлежащих разным классам, она является клеем, соединяющим воедино все элементы системы.

  2. Наследование – отношение, при котором один класс разделяет структуру и поведение, определенное в другом классе.

  3. Агрегация – обеспечивает отношение «целое – часть», нефизическое включение части в целое, т.е. по ссылке.

  4. Композиция – обеспечивает отношение «целое – часть», физическое включение части в целое, т.е. по величине.

  5. Зависимость – отношение, которое показывает, что изменение в одном классе (независимом) может влиять на другой класс (зависимый), который его использует.

  6. Конкретизация – процесс наполнения шаблона или родового класса.

Родовой класс – это заготовка, шаблон, параметры которого могут наполняться другими классами, типами, объектами, операциями.

  1. Метакласс – это класс классов, понятие, позволяющее обращаться с классами как с объектами.

  2. Реализация – отношение, при котором класс приемник обеспечивает свою собственную реализацию интерфейса другого класса источника.

Примеры отношений между классами

Иерархия простого наследования

Агрегация классов

Формы представления композиции

Отношение зависимости

Отношения конкретизации родового класса

Лекция 4. СТАТИСТИЧЕСКИЕ МОДЕЛИ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ ПРОГРАММНЫХ СИСТЕМ

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

  2. Отношения в диаграммах классов

  3. Деревья наследования

  1. ДИАГРАММЫ КЛАССОВ

Статические модели обеспечивают представление структуры системы в терминах базисных строительных блоков и отношений между ними, кроме того данные модели несут в себе не только структурное описание, но и описание операций, реализующих заданное поведение системы.

Основным средством для представления статических моделей являются диаграммы классов, которые используются:

- в ходе анализа – для указания ролей и обязанностей сущностей, которые обеспечивают поведение системы

- в ходе проектирования – для фиксации структуры классов, которые формируют системную архитектуру

Вершинами диаграмм класса являются классы, а дуги - отношения между классами.

И

Обозначение класса

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

Область действия

О

Класс – описание множества объектов, разделяющих одинаковые свойства, операции, отношения и смысл. Он реализует один или несколько интерфейсов.

Общий синтаксис представления свойства имеет вид:

Видимость Имя [Множественность]: Тип = НачЗначение {Характеристики}

Уровни видимости

public

Любой клиент класса может использовать свойство

(операцию), обозначается символом +

protected

Любой наследник класса может использовать свойство

(операцию), обозначается символом #

private

Свойство (операция) может использоваться только самим классом, обозначается символом -

Характеристики свойств

changeable

Нет ограничений на модификацию значения свойства

addOnly

Для свойств с множественностью, большей единицы;

дополнительные значения могут быть добавлены, но после

создания значение не может удаляться или изменяться

frozen

После инициализации объекта значение свойства не изменяется

Примеры объявления свойств

начало

Только имя

+ начало

Видимость и имя

начало : Координаты

Имя и тип

имяфамилия [0..1] : String

Имя, множественность, тип

левыйУгол : Координаты=(0, 10)

Имя, тип, начальное значение

сумма : Integer {frozen}

Имя и характеристика

О рганизация свойств и операций.

Пиктограмма класса состоит из трех секций, пустота класса не означает, что у него нет свойства и операции, просто в данный момент они не показываются. Можно явно определить наличие у класса большого количества свойств или атрибутов, для этого в конце списка ставится троеточие, кроме того можно группировать свойства и операции с помощью стереотипов.

Множественность:

Иногда бывает необходимо ограничить количество экземпляров класса, которые называются множественностью. Множественность экземпляров классов, а также их свойств .