Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методички итоговые.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.85 Mб
Скачать

5.22.4. Задание начальных значений атрибута

Атрибуты могут иметь значения по умолчанию. Для генерации кода, как и в случае стереотипов, задавать начальные значения необязательно. Тем не менее, при их наличии генерируемый код будет соответствующим образом инициализировать ат­рибут. Для задания начального значения атрибута щелкните правой кнопкой мыши на атрибуте в браузере. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию). В поле Initial Value (Начальное значение) введите значение атрибута по умолчанию. Или выделите атрибут на диаграмме классов. После типа данных атрибута введите знак равенства, а затем значение по умолчанию.

5.22.5. Задание видимости атрибута

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

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

Public (Общий, открытый). Атрибут виден всем остальным классам. Любой класс может про­смотреть или изменить значение атрибута. В соответствии с нотацией UML общему атрибуту предшествует знак "+".

Private (Закрытый). Атрибут не виден другим классам. В соответствии с нотацией UML закрытый атрибут обозначает­ся знаком "-".

Protected (Защищенный). Атрибут доступен только самому классу и его потомкам. Нотация UML для защищенного атрибута предполагает использование знака "#".

Package or Implementation (Пакетный). Атрибут является общим, но только в пределах своего пакета. Данный тип види­мости не обозначается никаким специальным значком.

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

В среде Rational Rose поддерживаются два набора нотаций видимости, приведенные в таблице 5.2. Первый включает в себя четыре значка Rational Rose. Второй - нотация UML (+,-,#), для общих, закрытых и защищенных атрибутов соответственно.

Таблица 5.2.

Нотация

Rational Rose

Нотация UML

Описание

+

Public – доступен всем

“-“

Private – доступен только классу, в котором определен

#”

Protected – доступен только классу, в котором определен и его потомкам

Нет

обозначения

Package or Implementation - доступен для классов в одном пакете

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

Рисунок 5.12. Пример класса, видимость атрибутов которого выполнена в нотации UML.

На рис. 5.13. показан тот же класс, но уже в соответствии с |нотацией Rational Rose.

Рисунок 5.13. Пример класса, видимость атрибутов которого выполнена в нотации Rational Rose.

Для задания значения видимости атрибута щелкните правой кнопкой мыши на атрибуте в браузере. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию). Появится окно спецификации атрибута класса. В поле Export Control (Контроль экспорта) выберите видимость атрибута: Public, Protected, Private или Implementation. По умолчанию видимость всех атрибутов установлена в Private. Или выделите атрибут на диаграмме классов. Если для обозначения видимости вы используете нотацию UML, щелкните мышью на значке "+", "-" или "#" рядом с атрибутом. В появившемся списке выберите значение видимости. Если для обозначения видимости используется нотация Rational Rose, щелкните мышью на значке види­мости слева от имени атрибута. В появившемся списке значков выберите требуемую видимость.

Изменить нотацию для обозначения видимости можно следующим образом. В меню модели выберите пункт Tools > Options (Инструменты > Параметры). Перейдите на вкладку Notation (Нотация). Установите флажок Visibility as icons (Отображать пиктограммы) для использования нотации Rational Rose или сбросьте его для применения нотации UML.

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