- •О.Н. Ванеев, д.Е. Турчин
- •Лабораторный практикум
- •Кемерово 2013
- •Описание лабораторного практикума
- •1.2.2. Множества и операции над ними
- •1.2.3. Декартово произведение множеств. Соответствия и отношения на множествах
- •1.2.4. Основные понятия теории графов
- •1.2.5. Анализ модели системы
- •1. Определение цели системы.
- •2. Выделение подсистем.
- •3. Выделение внешних систем.
- •4. Выделение входов, ресурсов и затрат.
- •5. Выделение выходов, результатов и прибыли.
- •1. Определение цели системы.
- •2. Выделение подсистем.
- •3. Выделение внешних систем.
- •4. Выделение входов, ресурсов и затрат.
- •5. Выделение выходов, результатов и прибыли.
- •1.3. Порядок выполнения работы
- •2.3. Порядок выполнения работы
- •3.3. Порядок выполнения работы
- •4.3. Порядок выполнения работы
- •5.2.2. Метод ранжирования вариантов
- •2.2.3. Метод парных сравнений
- •5.3. Порядок выполнения работы
- •Основные положения объектной модели.
- •6.2.2. Общая характеристика объектов и классов. Отношения между объектами и классами Общая характеристика объектов.
- •Общая характеристика классов.
- •6.2.2. Понятие о языке uml. Диаграммы классов Понятие о языке uml.
- •Диаграммы классов uml.
- •6.2.3. Реализация класса и его элементов на языке программирования c# Состав класса. Описание класса.
- •Поля и константы. Методы.
- •Свойства.
- •6.3. Порядок выполнения работы
- •6.4. Контрольные вопросы
- •Диаграммы последовательностей.
- •7.2.2. Отношения между классами. Моделирование наследования Отношение между классами. Ассоциация, агрегация и зависимость.
- •7.2.3. Реализация отношений между классами на языке c#
- •7.3. Порядок выполнения работы
- •8.4. Контрольные вопросы
- •Рекомендуемая литература
- •Приложение п.1. Значения статистических критериев
6.2.3. Реализация класса и его элементов на языке программирования c# Состав класса. Описание класса.
Класс определяет характеристики и поведение некоторого множества конкретных объектов этого класса, называемых экземплярами класса.
Рис. 6.1. Основные элементы класса в языке C#
В классе могут присутствовать статические элементы, которые существуют в единственном числе для всех экземпляров класса.
К основным элементам класса относятся:
• поля, которые хранят данные класса; поля аналогичны переменным;
• константы, которые хранят неизменяемые значения, связанные с классом;
• методы, которые реализуют действия, выполняемые классом или экземплярами;
• свойства, которые определяют характеристики класса в совокупности с методами их записи и чтения; свойства предоставляют способ доступа к полям класса или объекта и по сути являются методами для работы с полями;
• события, определяющие уведомления, которые может генерировать класс; применение событий позволяет объектам реагировать на определенные ситуации и выполнять необходимые ответные действия, которые реализуются в обработчиках событий.
Кроме перечисленных элементов к элементам класса также относятся индексаторы, локальные типы и др.
По умолчанию элементы класса считаются закрытыми (private).
Общий синтаксис объявления класса в языке C# выглядит следующим образом:
[атрибуты] [специф] class имя_класса [: баз_класс] {тело_класса} |
Тело класса – это список описаний его элементов (членов). Этот список может быть пустым, если класс не содержит ни одного элемента.
Кроме того, для класса можно задать:
- атрибуты, которые задают дополнительную информацию о классе;
- спецификаторы, определяющие различные характеристики класса (например, доступность класса для других элементов);
- предки класса (его базовые классы).
Поля и константы. Методы.
Имя метода вместе с количеством и типами его аргументов представляют собой сигнатуру метода – то, чем один метод отличается от других. В классе не должно быть методов с одинаковыми сигнатурами.
Конструктором называется специальный метод, предназначенный для инициализации объекта. Данный метод вызывается автоматически при создании объекта с помощью операции New.
Свойства.
❒ Пример 6.2. Программная реализация класса «Автомобиль» на языке C#.
Требуется разработать программную реализацию класса «Автомобиль», атрибуты и операции которого были выделены в примере 6.1.
Для создания программной реализации класса Avto добавим в проект нового приложения Windows.Forms модуль класса с именем Avto.cs.
При создании экземпляров класса Avto будем указывать только характеристики автомобиля (название, скорость, объем топливного бака, грузоподьемность). Значения остальных атрибутов будут задаваться случайным образом.
Рис. 6.Х. Исходный код констант, полей и конструкторов класса Avto
Рис. 6.Х. Исходный код некоторых свойств класса Avto
. ❒
Рис. 6.Х. Исходный код некоторых методов класса Avto
Создание и уничтожение объектов.
❒ Пример 6.3. Разработка приложения Windows.Forms «Работа с объектами класса Автомобиль».
Требуется разработать приложение Windows.Forms, которое позволяет создавать и удалять экземпляры класса Avto (пример 6.2), а также обеспечивает работу с основными свойствами и методами этих экземпляров.
Дополнительно создадим графическое представление созданных объектов (автомобили) на плоскости в соответствии с их координатами X и Y. Кроме того, для каждого автомобиля отобразим место его назначения.
Интерфейс пользователя приложения в виде экранной формы (Form1) с размещенными на ней элементами управления показан на рис. 6.Х.
Рис. 6.Х. Размещение основных элементов управления на форме
Для обращения к произвольному созданному объекту объявим массив avto[], элементами которого являются экземпляры класса Avto.
Поля и константы класса Form1 показаны на рис. 6.Х.
Рис. 6.Х. Поля, константы и конструктор класса Form1
Название созданного объекта «автомобиль» в разрабатываемом приложении должно отображаться в виде элемента списка listBox1. Выделение любого элемента списка должно позволять получить информацию о характеристиках объекта.
Удаление объекта производится как удаление соответствующего элемента списка при нажатии кнопки butUdal. Дальнейшие действия по очистке памяти от объекта при отсутствии ссылки на него будут автоматически выполнены сборщиком мусора.
Исходный код методов-обработчиков событий, связанных с нажатием кнопок butSozd и butUdal, а также с выбором элемента списка listBox1, показан на рис. 6.Х.
Рис. 6.Х. (Form1)
Исходный код методов-обработчиков событий, связанных с получением значений некоторых свойств объектов, показан на рис. 6.Х. Обработчики событий, связанные с использованием отдельных методов объекта, приведены на рис. 6.Х.
Рис. 6.Х. Методы-обработчики событий для получения значений некоторых свойств объекта (Form1)
Рис. 6.Х. Методы-обработчики событий нажатия на кнопку «Заправить (20 л)» (butZaprav) и «Увеличить скорость (25 км/ч)» (butUvelSkor) (Form1)
Рис. 6.Х. Методы-обработчики событий нажатия на кнопку «Задать координаты места назначения» (butZadach) и кнопку «Двигать объекты (0,05 ч)» (butDvigen) (Form1)
Отображение объектов на экране приложения осуществляется с помощью классов, описанных в пространстве имен System.Drawing: Graphics – поверхность рисования, Pen – перо, Brush – кисть, Font – шрифт.
В качестве поверхности рисования в приложении используется элемент управления графическое поле (pictureBox) с именем pB_Ekran (рис. 6.Х).
Рис. 6.Х. Метод построения координатной сетки и осей системы координат в графическом поле pB_Ekran (Form1)
Рис. 6.Х. Метод построения обозначений автомобиля и его места назначения в графическом поле pB_Ekran (Form1)
Очистка содержимого экрана (pB_Ekran) осуществляется путем нажатия на кнопку «Очистить экран» (butOchistEkr), которая запускает метод-обработчик, использующий метод Clear() экземпляра класса Graphics (рис. 6.Х).
Результат работы созданного приложения при заданном наборе объектов показан на рис. 6.Х.
При работе приложения производится вывод окон сообщений, содержащих информацию о состоянии выбранного объекта и ошибочных действиях пользователя. Некоторые окна сообщений показаны на рис. 6.Х. ❒
Рис. 6.Х. Отображение формы при работе приложения
Рис. 6.Х. Некоторые окна сообщений, выводимые при работе приложения
Рис. 6.Х. Диаграмма классов приложения, созданная средствами Visual Studio
