Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
laboratornye_Delphi.doc
Скачиваний:
16
Добавлен:
17.05.2015
Размер:
2.78 Mб
Скачать

Контрольные вопросы

  1. Компонент TStringGrid (таблица строк). Особенности его использования для вывода матрицы.

  2. Основные свойства таблицы строк.

  3. Особенности создания форм многооконных приложений.

  4. Доступ к элементам дочерних форм.

  5. Особенности закрытия дочерних форм.

Лабораторная работа № 17Работа с объектами. Инкапсуляция. Наследование. Полиморфизм. Создание заставки

Цель работы: получение навыков по созданию собственных классов.

Теоретические сведения Понятие класса и объекта

Класс — это структура, включаю­щая в себя описание данных, процедур и функций, которые могут быть выполнены применительно к представителю класса — объекту.

Пример объявления простого класса:

TPerson = class

private

fname: string[15];

faddress: string[35];

public

procedure Show;

end;

Данные класса называют полями, процедуры и функции — методами. В приведенном примере TPerson — это имя класса, fname и faddress — име­на полей, show — имя метода.

В программе помещают описание класса в раздел описания типов (type).

Объекты в программе как представители класса объявляются в разделе var, например:

var

student: TPerson;

professor: TPerson;

Объект — это динамическая структура. Переменная-объект содержит не данные, а ссылку на данные объекта. Поэтому необходимо выделить память для этих данных.

Выделение памяти осуществляется с помощью специального метода клас­са — конструктора, которому обычно присваивают имя Create (создать). Для того, чтобы подчеркнуть особую роль и поведение конструктора, в опи­сании класса вместо слова procedure используется слово constructor.

Например, описание класса TPerson, в состав которого введен конст­руктор, имеет вид

TPerson =class

private

fname: string [15];

faddress: string [ 35 ];

constructor Create; // конструктор

public

procedure show; // метод

end;

Помимо выделения памяти конструктор, как правило, решает задачу при­сваивания полям объекта начальных значений, т. е. осуществляет инициали­зацию объекта. Ниже приведен пример реализации конструктора объек­та TPerson:

constructor TPerson.Create;

begin

fname := '' ;

faddress := ' ' ;

end;

Выделение памяти для данных объекта происходит путем присваивания зна­чения результата применения метода-конструктора к типу (классу) объекта. Например, после выполнения инструкции

professor := TPerson.Create;

выделяется необходимая память для данных объекта professor.

После объявления и инициализации объект можно использовать, например, установив значение поля объекта. Доступ к полю объекта осуществляется указанием имени объекта и имени поля, которые отделяются друг от друга точкой. Например, для доступа к полю fname объекта professor имеет вид

professor.fname

Для ос­вобождения памяти, занимаемую объектом, используют специальный метод Free, который вызывает деструктор. Например, осво­бождение памяти, занимаемую полями объекта professor, имеет вид:

professor.Free;

Метод

Методы класса – это процедуры и функции, объявление которых включено в описание класса. Они выполняют действия с полями класса, для чего указывают имя объекта и имя метода, от­делив одно имя от другого точкой. Например, инструкция professor.Show; вызывает применение метода show к объекту professor. Фактически инст­рукция применения метода к объекту — это специфический способ записи вызова процедуры.

Методы класса определяются в программе аналогично обычным процедурам и функциям, за исключением того, что имя процедуры или функ­ции, являющейся методом, состоит из двух частей: имени класса, к которо­му принадлежит метод, и имени метода. Имя класса от имени метода отде­ляется точкой.

Например, определение метода show класса TPerson имеет вид:

procedure TPerson.Show;

begin

writeln('Имя:' + fname + #13 + 'Адрес:' + faddress);

end;

В операторах метода доступ к полям объекта осуществляется без указания имени объекта.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]