Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЯП / lec_10.ppt
Скачиваний:
21
Добавлен:
19.04.2015
Размер:
548.35 Кб
Скачать

Структуракласса

Структура объявления класса :

type имя класса =

class (имя родительского класса)

список элементов класса;

end;

1

Имя родительского класса, если новый класс должен унаследовать все его характеристики.

Если имя родительского класса опущено, то новый класс по умолчанию наследует только характеристики базового класса TObject.

(Для общности представления рекомендуется всегда указывать этот базовый класс)

2

type TMyClass = class(TObject)

……….

end;

type TMyClass = class

……….

end;

3

Присваивание объектов

Так как класс - это тип данных, то переменным этого типа

можно присваивать значения соответствующих объектов

Допускается присваивание как в точности данных своего типа, так и всех классов-потомков.

4

Например:

type T1 = class(TObject);

T2 = class(T1);

var X: T1;

……….

Х можно присваивать

как объект типа Т1, так и как объект типа Т2.

(присваиваются указатели)

5

Уровни инкапсуляции

Доступность любых элементов класса определяется принадлежностью к

определенному уровню видимости, обозначаемому специальным зарезервированным словом,

с которого начинается раздел в объявлении класса.

public – элементы класса доступны в любом месте программы.

6

published – элементы класса доступны в любом месте программы,

В среде Delphi информация о них размещается в

инспекторе объектов, и, соответственно,

доступна для изменения на этапе проектирования программы.

private - элементы класса доступны только в том модуле, где описан данный класс.

Как правило, поля класса помещаются именно в эту секцию

7

type TMyClass = class

private

Count: integer;

Name: string;

public

procedure SetName(s: string); procedure SetCount(k: integer); function GetName: string;

function GetCount: integer;

end;

8

По умолчанию считается, что все поля класса расположены в разделе private.

Можно убрать слово private из описания.

protected – отличается от private - элементы из этого раздела доступны также внутри

методов классов -наследников данного класса, описанных в других модулях.

9

Поля

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

Значение поля процедурного типа –

указатель на метод.

При обращении к полю внутри самого класса

записывается только его имя.

Если обращение происходит извне, перед именем поля указывается имя конкретного объекта, которому принадлежит это поле.

10

Соседние файлы в папке ЯП