
- •4.Вычислить значения выражений:
- •7.Вычислить значения выражений:
- •8.Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:
- •9. Вычислить значения выражений:
- •10. Вычислить значения выражений: ,
- •Задание: Создать собственный объект и использовать его в программе.
- •Задание: Создать собственный объект с помощью конструкторов и деструкторов и использовать его в программе.
- •Как создать объект с помощью конструктора?
- •Как удалить объект с помощью деструктора?
- •Выполнение индивидуального задания
- •Задания:
- •Вариант №1
- •Какие свойства компонента Memo вы знаете?
- •1.Дано двузначное число. Определить: а) входит ли в него цифра 3;
Задание: Создать собственный объект и использовать его в программе.
Вариант№1
Объект – точка
Свойства - координаты точки, цвет точки;
Методы – нарисовать, переместить, удалить
Вариант№2
Объект – 2 линии. ( − | )
Свойства - координаты начала и конца, цвет линии;
Методы – нарисовать, переместить, удалить
Вариант№3
Объект – треугольник.
Свойства - координаты точек, цвет линии;
Методы – нарисовать, переместить, удалить
Вариант№4
Объект – прямоугольный треугольник.
Свойства - координаты точек, цвет линии;
Методы – нарисовать, переместить, удалить
Вариант№5
Объект – квадрат.
Свойства - координаты точек, цвет линии;
Методы – нарисовать, переместить, удалить
Вариант№6
Объект – вертикальный прямоугольник.
Свойства - координаты точек, цвет линии;
Методы – нарисовать, переместить, удалить
Вариант№7
Объект – горизонтальный прямоугольник.
Свойства - координаты точек, цвет линии;
Методы – нарисовать, переместить, удалить
Вариант№8
Объект – круг.
Свойства - координаты центра, радиус, цвет линии;
Методы – нарисовать, переместить, удалить
Контрольные вопросы:
Как создать объект?
Как использовать методы объекта?
Что такое 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.