Диаграмма классов
Диаграммы классов используются при моделировании ПС наиболее часто. Они являются одной из форм статического описания системы с точки зрения ее проектирования, показывая ее структуру. Диаграмма классов не отображает динамическое поведение объектов изображенных на ней классов. На диаграммах классов показываются классы, интерфейсы и отношения между ними.
Графически класс в нотации языка UML изображается в виде прямоугольника, который дополнительно может быть разделен горизонтальными линиями на разделы или секции. В этих секциях могут указываться имя класса, атрибуты и операции класса. На начальных этапах разработки диаграммы отдельные классы могут обозначаться простым прямоугольником, в котором должно быть указано имя соответствующего класса. По мере проработки отдельных компонентов диаграммы описание классов дополняется атрибутами и операциями. Четвертая секция не обязательна и служит для размещения дополнительной информации справочного характера, например, об исключениях или ограничениях класса, сведения о разработчике или языке реализации. Даже если секции атрибутов и операций пусты, в обозначении класса они должны быть выделены горизонтальной линией, с тем чтобы отличить класс от других элементов языка UML.
Имя класса должно быть уникальным в пределах пакета, который может содержать одну или несколько диаграмм классов. Имя указывается в самой верхней секции прямоугольника, поэтому она часто называется секцией имени класса. В дополнение к общему правилу именования элементов языка UML, имя класса записывается по центру секции имени полужирным шрифтом и должно начинаться с заглавной буквы.
Каждому атрибуту класса соответствует отдельная строка текста, которая состоит из модификатора доступности атрибута, имени атрибута, его кратности, типа значений атрибута и, возможно, его исходного значения. Общий формат записи отдельного атрибута класса следующий:
<модификатор доступности> <имя атрибута> : <тип атрибута> = <исходное значение>
" + " – public.
" # " –protected.
" - " – private.
" ~ " - internal.
Модификатор видимости может быть опущен. Его отсутствие означает, что видимость атрибута не указывается или определяется как атрибут по умолчанию. Вместо условных графических обозначений можно записывать соответствующее ключевое слово.
Тип атрибута представляет тип данных атрибута.
Исходное значение служит для задания начального значения соответствующего атрибута в момент создания отдельного экземпляра класса. Если исходное значение не указано, то значение соответствующего атрибута не определено на момент создания нового экземпляра класса.
При задании атрибутов могут быть использованы дополнительные синтаксические конструкции — это подчеркивание строки атрибута, пояснительный текст в фигурных скобках и косая черта перед именем атрибута.
Операции класса записываются в третьей сверху секции прямоугольника класса, которую часто называют секцией операций. При этом каждой операции класса соответствует отдельная строка, которая состоит из модификатора доступности операции, имени операции, выражения типа возвращаемого операцией значения. Общий формат записи отдельной операции класса следующий:
<квантор видимости> <имя операции>(список параметров): <выражение типа возвращаемого значения>
Квантор видимости для операции может быть опущен.
Имя операции - единственный обязательный элемент синтаксического обозначения операции, должно начинаться со строчной (малой) буквы, и, как правило, записываться без пробелов.
Список параметров является перечнем разделенных запятой формальных параметров, каждый из которых, в свою очередь, может быть представлен в следующем виде:
<направление параметра> <имя параметра>: <выражение типа> = <значение параметра по умолчанию>.
Параметр - спецификация переменной операции, которая может быть изменена, передана или возвращена.
Параметр может включать имя, тип, направление и значение по умолчанию. Направление параметра — есть одно из ключевых слов in, out или inout со значением in по умолчанию, в случае если вид параметра не указывается. Имя параметра есть идентификатор соответствующего параметра, при записи которого следуют правилам задания имен атрибутов. Выражение типа является спецификацией типа данных для допустимых значений соответствующего параметра. Наконец, значение по умолчанию в общем случае представляет собой некоторое конкретное значение для этого формального параметра.
Выражение типа возвращаемого значения также указывает на тип данных значения, которое возвращается объектом после выполнения соответствующей операции. Две точки и выражение типа возвращаемого значения могут быть опущены, если операция не возвращает никакого значения. Для указания нескольких возвращаемых значений данный элемент спецификации операции может быть записан в виде списка отдельных выражений.
Методы
Конструкторы
Конструкторы - это специальные функции, вызываемые автоматически при инициализации объекта. Их имена совпадают с именами классов, которым они принадлежат, и они не имеют типа возвращаемого значения. Конструкторы полезны для инициализации полей класса. Конструктор вызывается только один раз и отвечает за выделение памяти под объект и инициализацию его полей
Конструктор определяется следующим образом:
[<атрибуты>] [<модификаторы>] <идентификатор класса>([<формальные параметры>]) [: <прединициализатор>]
{
<тело конструктора>
}
Где
Идентификатор класса – имя класса, для которого создается конструктор.
Например:
class Student
{
string name;
string group;
int year;
public Student(string NewName, string NewGroup, int NewYear)
{
name = NewName;
group = NewGroup;
year = NewYear;
}
}
В приведенном примере описан конструктор выполняющий инициализацию полей объекта класса Student. Правилом хорошего тона считается создание конструктора без параметров, инициализирующего поля класса некоторыми константами.
- Основные понятия ооп
- Модификаторы доступа
- Uml, назначение, типы диаграм.
- Диаграмма классов
- Деструкторы
- Свойства
- Индексаторы
- Этапы проектирования класса.
- Отношения между классами
- Вложенные классы
- Наследование
- Отношения и их графическое изображение на диаграмме классов
- Полиморфизм
- Абстрактные классы
- Классы без потомков
- Интерфейсы
- Изображение интерфейсов и абстрактных классов на диаграмме классов
- Вложенные классы
- Статические классы
- Делегаты
- Криптография и .Net
- Сетевое программирование в c#
- Создание простого клиент-серверного приложения используя сокеты
- Многопоточность
- Разработка библиотек dll