Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа П2Б,Г.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.09 Mб
Скачать

Задание: Создать собственный объект и использовать его в программе.

Вариант№1

Объект – точка

  1. Свойства - координаты точки, цвет точки;

  2. Методы – нарисовать, переместить, удалить

Вариант№2

Объект – 2 линии. ( − | )

  1. Свойства - координаты начала и конца, цвет линии;

  2. Методы – нарисовать, переместить, удалить

Вариант№3

Объект – треугольник.

  1. Свойства - координаты точек, цвет линии;

  2. Методы – нарисовать, переместить, удалить

Вариант№4

Объект – прямоугольный треугольник.

  1. Свойства - координаты точек, цвет линии;

  2. Методы – нарисовать, переместить, удалить

Вариант№5

Объект – квадрат.

  1. Свойства - координаты точек, цвет линии;

  2. Методы – нарисовать, переместить, удалить

Вариант№6

Объект – вертикальный прямоугольник.

  1. Свойства - координаты точек, цвет линии;

  2. Методы – нарисовать, переместить, удалить

Вариант№7

Объект – горизонтальный прямоугольник.

  1. Свойства - координаты точек, цвет линии;

  2. Методы – нарисовать, переместить, удалить

Вариант№8

Объект – круг.

  1. Свойства - координаты центра, радиус, цвет линии;

  2. Методы – нарисовать, переместить, удалить

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

  1. Как создать объект?

  2. Как использовать методы объекта?

  3. Что такое Private и Public?

Лабораторная работа №9 Решение задачи на создание и уничтожение объектов с помощью конструкторов и деструкторов.

Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с принципами создания и уничтожения объектов с помощью конструкторов и деструкторов. Закрепить полученные на лекции знания. Написать и отладить программу.

Теория:

Объект создается конструктором и уничтожается деструктором. aMyObject := tMyClass.Create; // // действия с созданным объектом // aMyObject.Destroy;

Следует обратить внимание на то, что для создания объекта aMyObject вызывается метод класса tMyClass.Create. Конструктор класса успешно работает и до создания объекта. Однако большинство обычных методов (в частности все виртуальные и динамические методы). Вызывать до инициализации объекта не следует.

В Delphi конструкторов у класса может быть несколько. Общепринято называть конструктор Create, а название деструктора - Destroy. type tMyClass=class(tObject) fMyFiled: integer; Constructor Create; Destructor Destroy; function MyMethod: integer; end;

Для уничтожения объекта в Delphi рекомендуется использовать не деструктор, а метод Free, который первоначально проверяет указатель, и только затем вызывает деструктор Destroy: procedure tObject.Free;

До передачи управления телу конструктора происходит собственно создание объекта: под него отводится память, значения всех полей обнуляются. Далее выполняется код конструктора, написанный программистом для инициализации объектов данного класса. Таким образом, несмотря на то, что синтаксис конструктора схож с вызовом процедуры (отсутствует возвращаемое значение), на самом деле конструктор - это функция, возвращающая созданный и проинициализированный объект.

Примечание. Конструктор создает новый объект только в том случае, если перед его именем указано имя класса. Если указать имя уже существующего объекта, он поведет себя по-другому: не создаст новый объект, а только выполнит код, содержащийся в теле конструктора.

Чтобы правильно проинициализировать в создаваемом объекте поля, относящиеся к классу - предку, нужно сразу же при входе в конструктор вызвать конструктор предка при помощи зарезервированного слова inherited:

constructor tMyClass.Create; Begin inherited Create; // Код инициализации tMyClass End;

Как правило, в коде программ, написанных на Delphi, практически не встречается вызовов конструкторов и деструкторов. Дело в том, что любой компонент, попавший при визуальном проектировании в приложение из палитры компонентов, включается в определенную иерархию. Эта иерархия замыкается на форме (класс tForm): для всех ее составных частей конструкторы и деструкторы вызываются автоматически, незримо для программиста. Кто создает и уничтожает формы? Это делает приложение (объект с именем Application). В файле проекта (с расширением DPR) вы можете увидеть вызовы метода Application.CreateForm, предназначенного для этой цели. Что касается объектов, создаваемых динамически (во время выполнения программы), то здесь нужен явный вызов конструктора и метода Free.