На данном лабораторном занятии мы познакомимся с заданием параметров операций классов: аргументов, а так же возвращаемых значений.
Используя логическое представление (Logical View) — создадим Диаграмму классов - вспоминаем второе и третье лабораторные занятия.
В простейшем графическом редакторе будем использовать следующие основные классы:
1 Фигура;
2 Елемент фигуры;
3 Точка;
4 Линия.
Создадим все описанные выше классы (Рис.1.1).
Рис. 1.1 Создание класса и Браузер проектов – отображает все зозданные классы
Получим:
Рис. 1.2 Окно диаграммы классов – отображает все созданные классы
Давайте озаглавим нашу диаграмму - “Display”
Для этого воспользуемся инструментом TextBox (Рис.1.2) на специальной панели инструментов. Чтобы изменить стиль форматирования надписи воспользуемся
пунктом всплывающего меню Format...-> Font... (Рис.2.1)
Рис.2.1 Всплывающее меню объекта TextBox
Рис.2.2 Сделаем текст жирным, подчеркнутым и 12м шрифтом
Теперь в каждом классе добавим операции, пользуясь навыками, полученными на третьем лабораторном занятии (Рис.3.1).Начнем с класса Figure (Рис.3.2)
Рис.3.1 Добавление операции класса Figure
Рис.3.2 Операции класса Figure
Для класса FirureElement добавим следующие операции:
- moveBy(int, int);
Здесь мы сталкиваемся с аргументами операции – оба целочисленного типа. (Рис.3.3)
Для операций классов можно задать: аргументы и их тип, тип возвращаемого результата, стереотип операции, а также определить протокол и размер, задать исключительные ситуации, специфицировать предусловия и постусловия и целый ряд других свойств. Для отдельной операции эти дополнительные свойства доступны для редактирования на вкладке Detail (Подробно) диалогового окна спецификации свойств выбранной операции (Рис. 3.4).
Рис.3.3 Задание дополнительных свойств (спецификаций) операции moveBy
На вкладке Detail в многостраничном поле Arguments (Аргументы) можно определить аргументы редактируемой операции. Для этого следует выполнить операцию контекстного меню Insert (Вставить – Рис.3.4). После этого в этом поле появится аргумент данной операции с именем по умолчанию argname. Для редактирования свойств аргумента предназначено специальное окно свойств аргумента.
Рис.3.4 Задание аргументов операции moveBy
Операция moveBy – перемещает объект в точку экрана с координатами (X:integer;Y:integer) – так зададим же их параметры – Рис.3.5
Рис.3.5 Задание типа аргумента операции moveBy
Теперь, если мы посмотрим на диаграмму классов – то у операции класса FigureElement не увидим созданных аргументов. Они “покажутся”, если “кликнуть” один раз на самой операции класса (Рис.3.6)
Рис.3.6 Отображение аргументов операции moveBy класса FigureElement
Теперь зададим аргументы для всех операций имеющихся классов.
Для класса Point (“Точка”) следующие операции (Рис.3.7):
- get X();
- get Y();
- set X (int);
- set Y(int);
- move By(int;int).
Для класса Line (“Линия”) следующие операции (Рис.3.7):
- get P1();
- get P2();
- set P1 (Point);
- set P2 (Point);
- move By(int;int).
Рис.3.7 Операции классов Point и Line
Получим следующий вид диаграммы классов – Рис.4.1
Рис.4.1 Диалоговое окно диаграммы классов
Осталось только установить взаимосвязи между имеющимися классами.
(Вспоминаем первое и второе лабораторные занятия – Рис.5.1 и 5.2 и 5.3).
В этой лабораторной работе мы будем использовать два типа отношений (взаимосвязей):
- ассоциацию;
- обобщение.
Рис.5.1 Диалоговое окно диаграммы классов – связь “Ассоциация”
Рис.5.2 Диалоговое окно диаграммы классов – связь “ко многим” (“много” или *)
Рис.5.3 Диалоговое окно диаграммы классов – связь “Обобщение”
Рис.5.3 Диалоговое окно диаграммы классов – связь “Обобщение”
Итоговый вид диаграммы классов простейшего графического редактора:
Рис.5.4 Диаграмма классов простейшего графического редактора