Интерфейс
Класс
Классы и объекты
Пример графический редактор
Пример разработки диаграммы классов
Графический редактор
Понятия-кандидаты на роль классов: фигура, меню, круг, квадрат, цвет, размер, координаты центра.
Фигура
Центр
Размер
Координаты
Круг квадрат
Пример адресная книга
Варианты использования:
ü Добавление записей
ü Поиск записей
Понятия-кандидаты: шаблон записей, шаблон поиска, шаблон имени файла, запись, файл, имя файла и тд.
Меню
Вызывает Вызывает Вызывает
Шаблон ввода имени файла шаблон добавления шаблон голоса
Добавляет запись
Запись
Файл
Имя файла
Сообщение
Текст
Пример калькулятор
Пример разработки диаграммы классов
Калькулятор:
· Составить варианты использования
· Выделить кандидатов на роль классов
· Определить какие из кандидатов действительно являются классами
· Описать взаимосвязи классов
· Установить атрибуты классов
(ДЗ!!!)
· Объект обладает состоянием и поведением
· Структура и поведение схожих объектов определяет общий для них класс
· Термины объект и экземпляр класса идентичны
· Объектно-ориентированная программа состоит из программ объектов, которые взаимодействуют через передачу сообщений
· Объект, получая сообщение, должен на него реагировать
· Реакция на сообщение зависит от состояния объекта.
· Состояние объекта характеризуется перечнем всех его свойств и текущими значениями каждого из этих свойств.
· Поведение объекта – это то, как объект действует и реагирует
· Поведение описывается в терминах состояния объекта и передачи сообщений.
· Операции над объектами:
ü Создание объекта
ü Уничтожение объекта
ü Модификация
ü Селекция
ü Итерация
Модификация – обращение к объекту с целью изменить его состояние.
Селекция – получение информации о состоянии объекта
Итерация – получение доступа к нескольким однотипных атрибутам объекта.
· Класс – тип данных, который включает описание полей данных и процедур – метод, работающий с этими данными.
· Класс – способ программной реализации абстракций
· Объект – переменная типа класс.
Пример: Класс квадрат .
Square |
X,Y,R, COLOR |
Initialize (x0, y0,color) Paint () |
· Объект включает все поля, объявленные в классе
· Конкретные значения полей характеризуют текущее состояние объекта
· Обращение к полям и методам: имя объекта.имя_поля
Имя_объекта.имя_метода()
Ограничение доступа:
· Все методы объекта имеют доступ к полям объекта
· Это реализуется за счет неявной передачи в метод параметра-указателя на объектах: Паскаль: self; C++, C#:this.
· Для обеспечения инкапсуляции в описании класса выделяют интерфейс(interface) и реализацию.
Класс <имя_класса>
Поля и методы, доступные извне