Классами в Object Pascal называются специальные типы, которые содержат поля, методы и свойства. Как и любой другой тип, класс служит лишь образцом для создания конкретных экземпляров реализации, которые называются объектами. Сразу же уточню, что в предшественнике Object Pascal - Turbo Pascal объектами называются типы, имеющие много общего с классами Object Pascal. Однако существенные усовершенствования, внесенные в объектную модель Object Pascal, заставили разработчиков языка ввести для обозначения объектов специальный термин - класс, заимствованный, кстати, из Си++. Для совместимости с ранее разработанными программами системы Turbo Pascal with Objects 7.0 в Object Pascal сохранен тип-объект object, поддерживающий "старую" объектную модель. Поскольку все возможности этой модели доступны классам, я не буду рассматривать ее в этой книге, а "освободившийся" термин объект буду употреблять исключительно для обозначения конкретного экземпляра реализации класса.
Важным отличием классов от других типов является то, что объекты класса всегда распределяются в куче, поэтому объект-переменная фактически представляет собой лишь указатель на динамическую область памяти. Однако в отличие от других указателей при ссылке на содержимое объекта запрещается использовать символ " л " за именем объекта:
type TMyClass = class(TObject) Field: Integer; end;
var MyClass: TMyClass; begin MyClass ^ .Field := 0; // Ошибка! Следует писать так: MyClass.Field := 0; end;
В этом разделе :
8 Основные понятия Классы - это особое `изобретение` программистов для упрощения разработки сложных программ и улучшения их качества. В основе классов лежат три фундаментальных принципа, которые называются инкапсуляция, наследование и полиморфизм.
8 Составляющие класса Полями называются инкапсулированные в классе данные. Поля могут быть любого типа, в том числе - классами.
8 Объявление класса Любой вновь создаваемый класс может содержать секции (разделы), определяемые зарезервированными словами published (опубликованные), private (закрытые), protected (защищенные), public (доступные) и automated (автоматизированные). Внутри каждой секции вначале определяются поля, а затем - методы и свойства.
8 Интерфейсы
| |