Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Тема 4.3 Классы объектно-ориентированного языка программирования



В языке 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...