Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка DELPHI.DOC
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.73 Mб
Скачать

Инкапсуляция

Класс – основной элемент программирования в Delphi. Как тип, класс имеет ряд особенностей. Первая особенность типа класс заключается в том, что в одном типе объединены данные и код для обработки этих данных. Это свойство класса называется инкапсуляцией. Синтаксически класс подобен типу record, в котором можно выделить следующие элементы:

  • поля – служат для записи данных;

  • методы – процедуры и функции для обработки полей;

  • свойства – специальные методы, к которым можно обращаться как к полям.

Рассмотрим синтаксис объявления простейшего класса.

Type

TMyClass =class (TObject)

Public

AField: AType;

Procedure AMethod(Param: AType);

Function AFunc(Param: AType);AType;

Property AProperty: Atype read AField write AMethod;

End;

Объявленный выше класс включает одно поле AField какого-либо типа, два метода AMethod, AFunc и одно свойство AProperty.

Объявление элементов класса делится на секции. В данном случае показана одна секция Public. Кроме Public могут присутствовать секции Protected, Published, Private. Эти секции задают разную степень видимости при обращениях из других модулей. Внутри модуля, являющегося владельцем класса, доступны все элементы из различных секций.

Класс как объектный тип

Учитывая, что класс служит для построения моделей поведения программных элементов, переменные типа класc называют объектами. Поэтому тип класс называется объектным типом. Объект представляет собой реализацию класса. Один и тот же класс может порождать множество объектов. Однако не существует двух объектов с одинаковыми значениями.

Объявленные переменные объектных типов физически не представляют собой экземпляров класса. Они являются просто ссылками. Объекты создаются только в процессе выполнения программы. Под объекты необходимо не просто выделить память - их необходимо построить. Например, при построении формы используется файл ресурсов. Однако Delphi позволяет трактовать объект как обычную переменную.

В отличие от других типов class можно объявлять только глобально. Запрещено объявлять классы внутри процедур и функций.

Наследование

Правила объявления класса таковы, что любой класс обязательно должен быть связан с каким-либо другим классом (существует одно исключение – TObject, являющийся корнем иерархического дерева классов). Соответственно любой класс может использовать какие-либо свойства, поля, методы уже существующих классов. В объявлении класса выше после ключевого слова class указан сущесвующий класс TObject. Это означает, что тип TMyClass, кроме объявленных четырех элементов, содержит или наследует все элементы, содержащиеся в классе TObject. Класс TObject называется предком (родительским), а TMyClassпотомком (дочерним).

Наследование – вторая важная особенность объектных типов. Список наследников у данного класса может только возрастать. Каждый потомок может указать только одного предка. Однако неявно этот потомок содержит все поля, методы и свойства всех предков по линии наследования. Если предок не указан, то в Delphi считается, что предком является класс TObject.