Конструкторы и деструкторы

Конструкторы ‑ специальные методы, создающие объекты. Они объ­­яв­ляются подобно процедурам, но в начале указывается слово Constructor. Обычно именем конструктора является слово Create. В качест­ве параметра (Owner) может использоваться владелец объекта. В реализа­ции конструктора вначале обычно идет вызов наследуемого конструктора с помощью слова Inherited. В результате инициируются все наследуемые поля, а затем инициируются новые поля данного класса.

В базовом классе TObject имеется готовый конструктор Create, который и обычно используется для создания объектов.

Деструкторы ‑ методы, уничтожающие объекты. Они объявляются подобно процедурам, но в начале указывается слово Destructor. Обычно именем конструктора является слово Destroy. Реализация деструктора обычно завершается вызовом наследуемого деструктора с помощью слова Inherited. В базовом классе TObject имеется готовый деструктор Desrtoy.

Пример: Destructor Destroy; Override;

События

Событие ‑ это специальное свойство ‑ указатель функции типа TNotifyEventс одним параметром (обычно Self- данный объект) типа TObject. Подобный тип используется для всех событий с одним параметром Sender:TObject(например, OnClick -щелчок мышки).

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

Private FMyEvent:TNotifyEvent; //объявление поля для свойства

Published Property MyEvent:TNotifyEvent Read FMyEvent Write FMyEvent;

Для вызова обработчика нужно указать в нашем примере:

If Assigned(FmyEvent) Then //проверка наличия обработчика пользователя

OnMyEvent(Self) //вызов обработчика MyEvent

Если в обработчик передаются другие параметры, кроме Self, то объявляется собственный тип:

Type TMyEvent=Procedure(Sender:TObject,Var DEvent: Boolean) Of Object;

T=Class(TObject);

Private FMyEvent:TmyEvent;

Published Property MyEvent:TMyEvent Read FMyEvent Write FMyEvent;

End;

Вопросы для самопроверки и контроля

Вопросы для самопроверки

1. Каковы свойства объектно‑ориентированного программирования?

2. Назначение метода‑конструктора объекта.

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

1. Каково назначение метода‑деструктора объекта?

2. Допускает ли Delphi традиционное и объектно‑ориентированное програм­мирование?

3. Заменяет ли одноименный статический метод в потомке родитель­ский?

 

Обработка исключительных ситуаций

Исключения

При работе программы могут возникать исключительные ситуации, связанные с различными ошибками в программе (деление на нуль, пе­ре­пол­нения,...) или сбоями в работе устройств (ошибки при чтении или записи в файл, ...). В таких ситуациях генерируется временный специаль­ный объект - исключение, который определяет и детализирует возникшую исключительную ситуацию. Если исключение в программе не перех­ва­ты­вает­ся, то метод Tapplication.HandleException выдает в окне сообщения крат­кую информацию, и обычно программа заканчивает свою работу ава­рий­но (системный обработчик). Исключения сгруппированы в иерархию клас­­сов различных уровней. Исключение родительского класса пе­рехва­тывает исключения потомков (непосред­ственно ниже­стоящих классов).








Дата добавления: 2016-03-22; просмотров: 520;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.