Здравствуйте! Записался на ваш курс, но не понимаю как произвести оплату. Надо ли писать заявление и, если да, то куда отправлять? как я получу диплом о профессиональной переподготовке? |
Опубликован: 02.12.2009 | Уровень: специалист | Доступ: свободно | ВУЗ: Тверской государственный университет
Лекция 5:
Отношения между классами. Клиенты и наследники
Классы без потомков
Экзотическим, но иногда полезным видом классов являются классы, для которых запрещается строить классы потомки путем наследования. При создании такого класса нет необходимости в выполнении над классом каких-либо болезненных операций. Вполне достаточно приписать классу модификатор sealed, он и запрещает построение потомков.
Задачи
- Постройте семейство классов Person, Car, OwnerOfCar, связанных отношениями наследования и вложенности, моделируя предметную область "Люди и машины". Предусмотрите виртуальные методы в проектируемых классах. Постройте DLL и Windows- проект для работы с объектами классов.
- Постройте семейство классов Person, Employee, Firm, связанных отношениями наследования и вложенности, моделируя предметную область "Люди на службе". Предусмотрите виртуальные методы в проектируемых классах. Постройте DLL и Windows- проект для работы с объектами классов.
- Постройте семейство классов Person, Library, Book, Author, Reader, связанных отношениями наследования и вложенности, моделируя предметную область "Люди, книги и библиотеки". Предусмотрите виртуальные методы в проектируемых классах. Постройте DLL и Windows-проект для работы с объектами классов.
- Постройте семейство классов Person, Student, Teacher, Faculty, связанных отношениями наследования и вложенности, моделируя предметную область "Студенты и преподаватели". Предусмотрите виртуальные методы в проектируемых классах. Постройте DLL и Windows-проект для работы с объектами классов.
- Постройте классы Home, Car, Carriage моделирующие дом, автомобиль и вагон поезда, а также классы HomeAndCar, HomeAndCarriage (дом в автомобиле, дом в вагоне), обладающие свойствами дома и транспортного средства. Установите правильные отношения между классами. Предусмотрите виртуальные методы в проектируемых классах. Постройте DLL и Windows-проект для работы с объектами классов.
- Постройте классы Home, Sputnik, моделирующие дом и космический корабль, а также класс HomeSpace (космический дом), предназначенный для космических путешествий. Установите правильные отношения между классами. Предусмотрите виртуальные методы в проектируемых классах. Постройте DLL и Windows-проект для работы с объектами классов.
- По аналогии с классом System.Collections.Queue из библиотеки FCL напишите собственную реализацию класса MyQueue, задающего динамическую структуру данных - очередь. Постройте семейство классов, начиная с абстрактного класса и кончая разными классами потомками. Постройте реализации, основанные на массивах и на списковой структуре данных. Постройте классы потомки, хранящие в очереди элементы фиксированного типа. Постройте Windows-проект, демонстрирующий полиморфизм построенного семейства классов.
- Напишите реализацию класса DEQ (Double Ended Queue), задающего динамическую структуру данных - двустороннюю очередь, где добавление и удаление элементов выполняется на обоих концах очереди. Постройте семейство классов, начиная с абстрактного класса и кончая разными классами потомками. Постройте реализации, основанные на массивах и на списковой структуре данных. Постройте классы потомки, хранящие в очереди элементы фиксированного типа. Постройте Windows-проект, демонстрирующий полиморфизм построенного семейства классов.
- По аналогии с классом System.Collections.ArrayList из библиотеки FCL напишите собственную реализацию класса MyArrayList, задающего динамическую структуру данных - список. Постройте семейство классов, начиная с абстрактного класса и кончая разными классами потомками. Постройте реализации, основанные на массивах и на списковой структуре данных. Постройте классы потомки, хранящие в списке элементы фиксированного типа. Постройте Windows-проект, демонстрирующий полиморфизм построенного семейства классов.
- Напишите реализацию класса OneWayList, задающего динамическую структуру данных - односвязный список. Постройте семейство классов, начиная с абстрактного класса и кончая разными классами потомками. Постройте реализации, основанные на массивах и на списковой структуре данных. Постройте классы потомки, хранящие в списке элементы фиксированного типа. Постройте Windows-проект, демонстрирующий полиморфизм построенного семейства классов.
- Напишите реализацию класса TwoWayList, задающего динамическую структуру данных - двусвязный список. Постройте семейство классов, начиная с абстрактного класса и кончая разными классами потомками. Постройте реализации, основанные на массивах и на списковой структуре данных. Постройте классы потомки, хранящие в списке элементы фиксированного типа. Постройте Windows-проект, демонстрирующий полиморфизм построенного семейства классов.
- Напишите реализацию класса ListWithCursor, задающего динамическую структуру данных - список с курсором. Курсор в этой структуре данных задает текущий элемент списка. В списке должны быть определены операции по перемещению курсора. Операция поиска элемента списка устанавливает курсор на найденном элементе списка. Операции добавления и удаления элементов списка выполняются по отношению элемента, на который указывает курсор. Постройте семейство классов, начиная с абстрактного класса и кончая разными классами потомками. Постройте реализации, основанные на массивах и на списковой структуре данных. Постройте классы потомки, хранящие в списке элементы фиксированного типа. Постройте Windows-проект, демонстрирующий полиморфизм построенного семейства классов.
- Постройте семейство классов, начиная с абстрактного класса, задающего динамическую структуру данных, потомками которого будут стеки и очереди.
- Постройте семейство классов, начиная с абстрактного класса, задающего динамическую структуру данных, потомками которого будут списки - односвязные, двусвязные, списки с курсором.