Читаем Технологии программирования полностью

Само свойство AProperty описано как общедоступное по интерфейсу (public), т. е. внешне свойство выглядит в точности, как доступ к обычному полю, но за всяким обращением к свойству могут стоять нужные программисту действия. Например, если у нас есть объект, представляющий собой квадрат на экране, и мы его свойству "цвет" присваиваем значение "белый", то произойдет немедленная перерисовка, приводящая реальный цвет на экране в соответствие значению свойства.

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

Рассмотрим следующую конструкцию:

type

TPropObject = class(TObject)

FValue: TSomeType;

procedure DoSomething;

procedure Correct(AValue: Integer);

procedure SetValue(NewValue: Integer);

procedure AValue: Integer read Fvalue

write SetValue;

end;

procedure TPropObject.SetValue(NewValue: Integer);

begin

if (NewValue <> FValue) and Correct (NewValue)

then

FValue:= NewValue; {Засылка значения в поле}

DoSomething;

end;

В этом примере чтение значения свойства AValue означает просто чтение поля FValue. Зато при присвоении ему значения внутри метода SetValue вызывается сразу два метода.

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

type

TAnObject = class(TObject)

property AProperty: TSomeType read GetValue;

end;

В этом примере вне объекта значение свойства можно лишь прочитать. Попытка присвоить значение Aproperty вызовет ошибку компиляции.

5. ОБЪЕКТЫ И ИХ ЖИЗНЕННЫЙ ЦИКЛ

Как создаются и уничтожаются объекты? В Object Pascal экземпляры объектов могут быть только динамическими! Это означает, что в приведенном в начале раздела фрагменте переменная AMyObject хотя и выглядит как статическая переменная языка Pascal, на самом деле является указателем, содержащим адрес объекта. Любая переменная объектного типа и есть указатель (указатель — переменная, содержащая значение адреса оперативной памяти).

Память под конкретные объекты (динамические экземпляры классов) выделяется диспетчером памяти в периоде выполнения программы в особой heap-области, где должно еще быть свободное место для размещения новых объектов. Heap — "куча мусора". Диспетчер памяти может как размещать в heap-области новые объекты, так и удалять уже ненужные, освобождая память под все новые объекты. Как раз при размещении объекта в памяти инициализируется значение переменной объектного типа адресом объекта. При удалении объекта переменная объектного типа инициализируется значением nil (пустой указатель) — нет объекта в памяти. При размещении нового объекта в памяти может оказаться, что общая свободная память имеет большой объем, но любой из освободившихся участков памяти, занимаемых уже удаленными объектами, оказывается меньше объема нового большого объекта. Для избежания такой ситуации при использовании объектных программ устанавливают в ЭВМ оперативную память заведомо большого объема. Новый экземпляр объекта создается особым методом — конструктором, а уничтожается специальным методом — деструктором:

AMyObject:= TMyObject.Create; {действия с созданным объектом}

AMyObject.Destroy; {уничтожение объекта}

В Object Pascal конструкторов у класса может быть несколько. Общепринято называть конструктор Create. Типичное название деструктора — Destroy. Рекомендуется использовать для уничтожения экземпляра объекта метод Free, который первоначально проверяет указатель (не равен ли он nil) и затем уж вызывают Destroy.

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

constructor TmyObject.Create;

begin

inherited Create;

end;

Метод Create объекта MyObject типа TMyObject унаследован от класса предка TObject.

Взяв любой из примеров, поставляемых вместе с Delphi, мы обнаружим, что там почти нет вызовов конструкторов и деструкторов. Дело в том, что любой компонент, попавший при визуальном проектировании в приложение из Палитры компонентов, включается в определенную иерархию. Иерархия эта замыкается на форме (TForm): для всех ее составных частей конструкторы и деструкторы вызываются автоматически, незримо для программиста.

Перейти на страницу:

Похожие книги

Оптимизация BIOS. Полный справочник по всем параметрам BIOS и их настройкам
Оптимизация BIOS. Полный справочник по всем параметрам BIOS и их настройкам

Прочтя эту книгу, вы узнаете, что представляет собой BIOS, какие типы BIOS существуют, как получить доступ к BIOS и обновлять ее. Кроме того, в издании рассказано о неполадках в работе BIOS, которые приводят, например, к тому, что ваш компьютер не загружается, или к возникновению ошибок в BIOS. Что делать в этот случае? Как устранить проблему? В книге рассказывается об этом и даже приводится описание загрузки BIOS во флэш-память.Также вы научитесь использовать различные функции BIOS, узнаете, как оптимизировать их с целью улучшения производительности и надежности системы. Вы поймете, почему рекомендуемые установки являются оптимальными.После прочтения книги вы сможете оптимизировать BIOS не хуже профессионала!Книга предназначена для всех пользователей компьютера – как начинающих, которые хотят научиться правильно и грамотно настроить свою машину, используя возможности BIOS, так и профессионалов, для которых книга окажется полезным справочником по всему многообразию настроек BIOS. Перевод: А. Осипов

Адриан Вонг

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Книги по IT
Первые шаги с Windows 7. Руководство для начинающих
Первые шаги с Windows 7. Руководство для начинающих

Просто и понятно для начинающих пользователей описана операционная система Windows 7 и ее новые возможности. Рассказано, как установить Windows 7 (в том числе на нетбук), как полностью использовать новые возможности графического интерфейса, как работать с файлами и стандартными программами. Отдельное внимание уделено вопросам работы в Интернете: настройке доступа, описанию популярных программ для работы в Интернете, обеспечению безопасности. Подробно рассмотрены мультимедиапрограммы Windows Media, Windows Media Center, DVD-студия Windows, прожиг CD/DVD средствами операционной системы. Даны практические рекомендации использования системы восстановления Windows 7, позволяющей в большинстве случаев обойтись без переустановки операционной системы в случае ее сбоя.Прилагаемый компакт-диск содержит видеокурс по основам работы в Windows 7.

Денис Николаевич Колисниченко , Денис Н. Колисниченко

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
Искусство обмана
Искусство обмана

Книга The Art of Deception – «Искусство обмана» – доказывает, насколько мы все уязвимы. В современном мире, где безопасность подчас выходит на первый план, на защиту компьютерных сетей и информации тратятся огромные деньги. Деньги тратятся на технологии безопасности. Эта книга объясняет, как просто бывает перехитрить всех защитников и обойти технологическую оборону, как работают социоинженеры и как отразить нападение с их стороны Кевин Митник и его соавтор, Бил Саймон рассказывают множество историй, которые раскрывают секреты социальной инженерии. Авторы дают практические советы по защите от атак, по обеспечению корпоративной безопасности и снижению информационной угрозы «Искусство обмана» не только демонстрирует, насколько опасна и вредоносна социоинженерия, но поможет разработать собственную программу тренинга по безопасности для сотрудников компании.

Вильям Л Саймон , Кевин Митник

Зарубежная компьютерная, околокомпьютерная литература