Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В языке Object Pascal классы являются специальными типами данных и используются для описания объектов. Соответственно объект, имеющий тип какого либо класса, является экземпляром этого класса или переменной этого типа. Класс представляет собой особый тип записи, имеющий в своем составе такие элементы (члены), как поля, свойства и методы. Поля класса аналогичны полям записи и служат для хранения информации об объекте. Методами называются процедуры и функции, предназначенные для обработки полей.
Свойства занимают промежуточное положение между полями и методами.
С одной стороны, свойства можно использовать как поля, например, присваивая им значения с помощью оператора присваивания; с другой стороны, внутри класса доступ к значениям свойств выполняется методами класса.
Описание класса имеет следующую структуру:
Туре <Имя класса> = class (<Имя класса-родителя>)
private
<Частные описания>;
protected
Оащищенные описания>;
public
<Общедоступные описания>;
published
≪Опубликованные описания>;
end;
В приведенной структуре описаниями являются объявления свойств, методов и событий.
Пример. Описание класса.
type
TColorCircle = class(TCircle);
FLeft,
FTop,
FRight,
FBottom: Integer;
Color: TColor;
end;
Здесь класс TColorCircle создается на основе родительского класса TCircle. По сравнению с родительским, новый класс дополнительно содержит четыре поля типа integer и одно поле типа TColor.
Если в качестве родительского используется класс Tobject, который является базовым классом для всех классов, то его имя после слова class можно не указывать. Тогда первая строка описания будет выглядеть так:
type TNewClass = class
Для различных элементов класса можно устанавливать разные права доступа (видимости), для чего в описании класса используются отдельные разделы, обозначенные специальными спецификаторами видимости.
Разделы private и protected содержат защищенные описания, которые доступны внутри модуля, в котором они находятся. Описания из раздела protected, кроме того, доступны для порожденных классов за пределами названного модуля.
Раздел public содержит общедоступные описания, которые видимы в любом месте программы, где доступен сам класс. Раздел published содержит опубликованные описания, которые в дополнение к общедоступным описаниям порождают динамическую (т. е. во время выполнения программы) информацию о типе (Run-Time Type Information, RTTI). По этой информации при выполнении приложения производится проверка на принадлежность элементов объекта тому или иному классу.
Одним из назначений раздела published является обеспечение доступа к свойствам объектов при конструировании приложений. В Инспекторе объектов видны те свойства, которые являются опубликованными. Если спецификатор published не указан, то он подразумевается по умолчанию, поэтому любые описания, расположенные за строкой с указанием имени класса, считаются опубликованными.
Объекты как экземпляры класса объявляются в программе в разделе var как обычные переменные. Например,
var
CCirclel: TColorCircle;
CircleA: TCircle;
Как и в случае записей, для обращения к конкретному элементу объекта (полю, свойству или методу) указывается имя объекта и имя элемента, разделенные точкой, т. е. имя элемента является составным.
Пример. Обращение к полям объекта.
var
CCirclel: TColorCircle;
begin
CCirclel.FLeft:=5;
CCirclel.FTop:=l;
end;
Здесь приведено непосредственное обращение к полям объекта, обычно это делается с помощью методов и свойств класса.
Дата публикования: 2015-02-18; Прочитано: 576 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!