лр1-8. Н и я классов
Скачать 5.95 Mb.
|
Индивидуальные задания (возможные варианты классов): «Вектор в пространстве», «Матрица», «Сотрудник», «Компьютер», «Товар», «Объект недвижимости», «Комплексное число», «Куб», «Автомобиль», «Студент», «Книга», «Дисциплина (предмет)». Возможно предложение своего класса или доработка класса из лабораторной работы №1. 7. Содержание отчета и его форма Отчет по лабораторной работе должен содержать: 1. Номер и название лабораторной работы. 2. Цели лабораторной работы. 3. Ответы на контрольные вопросы. 4. Экранные формы и листинг программного кода, показывающие порядок выполнения лабораторной работы, и результаты, полученные в ходе её выполнения. Отчет о выполнении лабораторной работы в письменном виде сдается преподавателю. 92 8. Контрольные вопросы 1. Что такое конструктор? 2. Что такое перегрузка операторов? Когда применяется данный механизм? 3. Допустим, что для класса создана перегруженная операция сложения. Может ли быть создана еще одна операция сложения для данного класса? 4. Какие операции нельзя перегрузить? 5. Какие операции необходимо перегружать попарно? 93 ЛАБОРАТОРНАЯ РАБОТА 5. ПОСТРОЕНИЕ ИЕРАРХИИ КЛАССОВ 1. Цель и содержание Цель лабораторной работы: изучить механизм организации наследования классов. Задачи лабораторной работы: – научиться объявлять производные классы; – научиться создавать иерархии классов; – научиться использовать механизм полиморфизма. 2. Формируемые компетенции Лабораторная работа направлена на формирование следующих компетенций: – способность к проектированию базовых и прикладных информационных технологий (ПК-11); – способность разрабатывать средства реализации информационных технологий (методические, информационные, математические, алгоритмические, технические и программные) (ПК-12). 3. Теоретическая часть 2.1 Наследование реализации. Наследование реализации (implementation inheritance) означает, что тип происходит от базового типа, получая от него все поля-члены и функции-члены. Синтаксис наследования реализации: 94 class ПроизводныйКласс: БазовыйКласс { // Данныечленыи функциичлены } Если при определении класса не указан базовый класс, то C# предполагает, что базовым классом является System.Object. 2.2 Создание иерархии классов. При наследовании реализации производный класс наследует реализацию каждой функции базового типа, если только в его определении не указано, что реализация функции должна быть переопределена. Определим следующую иерархию классов (рис. 17.1) и продемонстрируем, как наследуетсяреализация и как переопределяются свойств и методов. Рисунок 17.1 – Иерархия классов. Создадим код, описывающий данную иерархию. Определим базовый класс: 95 Обратите внимание на наличие двух конструкторов, механизм хранения возраста человека и ключевое слово virtual у свойства «ФИО». Ключевое слово virtual указывает, что данное свойство будет переопределено в производном классе. Определим производный класс «Учитель»: 96 Следует обратить внимание на использование ключевого слова override у свойства «ФИО», которое указывает на то, что данное свойство имеет новую реализацию, отличающуюся от реализации базового класса. Определим второй производный класс «Студент»: В обоих производных классах следует обратить внимание на реализацию конструкторов производных классов, использование ключевого слова base в коде свойства «ФИО» и при объявлении конструкторов. 97 Также интерес представляют типы данных, используемые для членов-данных: «Специальности», «УченыеЗвания», «УченыеСтепени». Вот определения данных типов-перечислений: Наконец, продемонстрируем использование объявленной иерархии классов. В программе объявим массив объектов типа «Человек». Следует понимать, что при объявлении такого массива, его элементам можно присваивать объекты любого производного класса, причем каждый объект будет вести себя по-своему (за счет переопределения свойств и методов). 98 В результате работы программы будет осуществлен следующий вывод: 99 Полная диаграмма типов в полученном приложении показана на рис. 17.2. Рисунок 17.2 – Диаграмма типов приложения (создана средствами VS). Структуры всегда наследуются от System.ValueType. Они могут также наследовать любое количество интерфейсов. Классы всегда наследуются от 100 одного класса по вашему выбору. Они также могут наследовать любое количество интерфейсов. 4. Оборудование и материалы Для выполнения лабораторной работы рекомендуется использовать персональный компьютер со следующими характеристиками: 64-разрядный (x64) процессор с тактовой частотой 1 ГГц и выше, оперативная память – 1 Гб и выше, свободное дисковое пространство – не менее 1 Гб, графическое устройство DirectX 9. Программное обеспечение: операционная система WINDOWS 7 и выше, Microsoft Visual Studio 2012 и выше. 5. Указания по технике безопасности Техника безопасности при выполнении лабораторной работы определяется общепринятой для пользователей персональных компьютеров. Самостоятельно не производить ремонт персонального компьютера, установку и удаление программного обеспечения; в случае неисправности персонального компьютера сообщить об этом обслуживающему персоналу лаборатории; не касаться электрических розеток металлическими предметами; рабочее место пользователя персонального компьютера должно содержаться в чистоте; не разрешается возле персонального компьютера принимать пищу, напитки. 6. Методика и порядок выполнения работы 1. Создайте консольное приложение в соответствии с алгоритмом, представленным в лабораторной работе №1. 2. Изучите пример создания иерархии классов, представленный в разделе «Теоретическое обоснование» данной лабораторной работы. 101 3. Постройте свою иерархию классов в соответствии с индивидуальным заданием. В результате выполнения лабораторной работы должны быть реализованы следующие механизмы: – использование типа-перечисления (хотя бы одного); – использование переопределенного свойства (хотя бы одного); – использование переопределенного метода (хотя бы одного); – использование вызова базового конструктора; – использование вызова любого базового метода (отличного от конструктора). 4. Продемонстрируйте использование классов, созданной иерархии (легче всего это сделать с использованием массивов). При защите работы укажите признаки присутствия полиморфного поведения в программе (реализация полиморфизма). |