Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Порядок выполнения работы;



1. Открыть ранее созданный проект и сохранить его в новом каталоге для внесения необходимых изменений.

2. Добавить новый класс для примитивов-точек, содержащий:

· два свойства для хранения координат точки;

· конструктор для инициализации свойств-координат и вывода сообщения о создании объекта (это будет использоваться в дальнейшем при проверке правильности вложенных вызовов конструкторов взаимодействующих классов);

· Set/Get-методы для доступа к координатам точки.

3. Внести следующие изменения в ранее созданный класс Окружность:

· заменить свойства-координаты одним свойством-точкой;

· реализовать два конструктора, которые, кроме стандартных операций, выполняют дополнительно:

– проверку значения радиуса и при необходимости - изменение его так, чтобы окружность не выходила за пределы области рисования;

– вывод сообщения о создании объекта-окружности;

· в методе прорисовки окружности вместо прямого использования координат центра применить вызовы соответствующих методов класса точек;

· в методе перемещения окружности заменить прямую установку новых значений координат вызовом соответствующего метода класса точек.

4. Проверить работу приложения, обратив внимание на порядок создания взаимодействующих объектов.

5. Создать новый класс Кольцо, содержащий два свойства-окружности, два конструктора с выводом сообщения, а также методы прорисовки и перемещения.

6. Проверить работоспособность всех методов созданных классов.

7. Внести аналогичные изменения в классы Отрезок и Прямоугольник.

8. Самостоятельно придумать и реализовать 1-2 класса для манипуляций со сложными объектами, включающими более простые объекты Точка, Отрезок, Прямоугольник, Окружность; проверить работоспособность этих классов.

Задание 2. Создание и использование библиотеки классов для графических примитивов на основе принципа наследования.

Постановка задачи:

Требуется создать небольшую иерархию классов, описывающих основные графические примитивы (окружность, треугольник, отрезок, прямоугольник и т.д.). Корнем всей иерархии является класс TFigure, определяющий общие свойства и поведение всех объектов-примитивов: координаты базовой точки примитива, конструктор, методы доступа, абстрактные методы прорисовки Show и перемещения MoveTo. В каждом классе необходимо реализовать свой конструктор и методы прорисовки и перемещения. Кроме того, классы могут содержать методы, уникальные только для соответствующего поддерева, например – изменение радиуса окружности, изменение линейных размеров прямоугольника, поворот треугольника и т.д.

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

Порядок выполнения работы:

1. Открыть один из ранее созданных проектов и сохранить его в собственном каталоге.

2. В интерфейсный раздел модуля-библиотеки ввести описание класса TFigure, используя для задания абстрактных методов директиву abstract в заголовке метода.

3. Привести программную реализацию всех неабстрактных методов класса ТFigure (в конструкторе предусмотреть вывод сообщения об инициализации свойств-координат).

4. Создать класс окружностей TCircle как потомка класса TFigure с добавлением нового свойства – радиуса окружности, собственным конструктором, методом Show, методом MoveTo и новым методом изменения радиуса.

5. Дать программную реализацию конструктора дочернего класса окружностей, ОБЯЗАТЕЛЬНО начинающуюся с вызова конструктора родителя:

· inherited Create (параметры);

· в конце предусмотреть вывод сообщения о создании объекта

6. Дать программную реализацию остальных методов класса окружностей

7. В основном (демонстрационном) модуле предусмотреть создание объектов-окружностей, их перемещение и изменение радиуса.

8. Проверить работоспособность созданных классов.

9. На базе класса TCircle создать дочерний подкласс эллипсов добавлением свойства-полуоси. Реализовать свой конструктор и методы прорисовки и перемещения. Для поворота на 90 градусов ввести новый метод.

10. Проверить работоспособность созданных классов.

11. Аналогично создать класс четырехугольников и подклассы для ромбов, трапеций, прямоугольников и проверить их работоспособность.

Контрольные вопросы

1. Какие способы взаимодействия классов являются основными?

2. В каких случаях между классами можно установить отношение агрегации?

3. Какие возможности дает использование механизма агрегации классов?

4. Приведите примеры агрегации и композиции объектов.

5. Какие шаги надо выполнить для программной реализации отношения агрегации?

6. Как необходимо строить конструкторы классов, взаимодействующих на основе агрегации?

7. Приведите примеры программной реализации композиции объектов.

8. Как графически задается отношение агрегации между классами?

9. В чем состоит отличие отношений агрегации и композиции?

10. В каких случаях между классами можно установить отношение наследования?

11. В чем состоит суть механизма наследования?

12. В чем состоят отличия агрегации и наследования?

13. Чем дочерние подклассы отличаются от своих родителей?

14. Что такое иерархия классов?

15. Чем множественное наследование отличается от простого?

16. В чем преимущества и недостатки множественного наследования?

17. Какие преимущества дает использование механизма наследования?

18. Как задается отношение наследования в разных языках?

19. Что происходит при отсутствии родительского класса в заголовке нового класса?

20. Приведите примеры иерархий классов.

21. Как изменяется механизм ограничения доступа к элементам класса при использовании наследования?

22. Какие правила надо соблюдать при реализации конструкторов дочерних классов?

23. Как вызываются родительские конструкторы в разных языках?





Дата публикования: 2014-11-02; Прочитано: 544 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...