Для поддержки ООП в язык Delphi введены объектные типы данных, с помощью которых одновременно описываются данные и операции над ними. Объектные типы данных называют классами, а их экземпляры – объектами.
Объект – это предметы живой и неживой природы, которые представляются как единое целое. Например, яблоко, форточка Иванов, банковский счет и т.п.
Объекты объединяются в классы. Объединений объектов в классы определяется семантикой. Например, все яблоки можно отнести к одному классу объектов, поскольку каждое яблоко характеризуется цветом, формой, весом и т.п. – это атрибуты яблока, а совокупность атрибутов и их значений характеризует объект. Или, например, объекты «системный блок» и «винчестер» могут иметь одинаковый атрибут – стоимость. При этом они могут относиться к одному классу, если рассматриваются в задаче как товар, либо к разным классам.
Класс – это особая структура (или тип записи), которая имеет в своем составе поля, методы и свойства. Класс выступает в качестве объектного типа данных, а объект – это конкретный существующий в памяти компьютера экземпляр класса.
Класс имеет следующую структуру:
Type <имя класса> = class (<имя класса-родителя>)
Private
<частные описания>;
Protected
<защищенные описания>;
Public
<общедоступные описания>;
Published
<опубликованные описания>;
End;
Описания – это объявление свойств, методов и событий.
Для различных элементов класса можно устанавливать права доступа (видимости), для чего в описании класса используются отдельные разделы, начинающиеся со спецификатора видимости.
Разделы Private и Protected содержат защищенные описания, которые доступны внутри модуля, в котором они находятся. Описания из раздела Protected, кроме того, доступны для порожденных классов за пределами названного модуля.
Раздел Public содержит общедоступные описания, которые видимы в любом месте программы, где доступен сам класс.
Раздел Published содержит опубликованные описания, которые в дополнении к общедоступным описаниям порождают динамическую (т.е. во время выполнения программы) информацию о типе.
Объекты как экземпляры класса объявляются в программе в разделе var как обычные переменные. Для обращения к конкретному элементу объекта (полю, свойству, методы) указывается имя объекта и имя элемента через точку.
Таким образом, программы – это совокупность взаимодействующих объектов. Каждый объект отвечает за конкретную задачу. Вычисление осуществляется посредством взаимодействия объектов. Объект получается в результате инкапсуляции состояния (данных) и поведения (операций). Поведение объекта диктуется классом. Данные и поведение представлены в виде классов, экземпляры которых – объекты.