Лекция 6
Var
Type
Uses
Interface
N Пример.
Begin
N Пример.
Begin
N Пример.
Var
N Пример.
Public
Private
Type
N Пример.
Объявление простого класса:
TPerson = class
fname: string[15];
faddress: string[50];
procedureShow;
end;
Объекты как представители класса объявляются в программе в разделе var.
student: Tperson;
Переменная-объект содержит не данные, а ссылку на данные объекта. Необходимо позаботиться о выделении памяти для этих данных.
Выделение памяти осуществляется с помощью специального метода класса – конструктора.
Объявление конструктора:
constructorИмя_конструктора (<параметры>);
Обычно конструктору присваивается имя Create
После выполнения инструкции
student :=TPerson.Create;
будет выделена необходимая память для данных объекта student.
Кроме выделения памяти конструктор часто осуществляет инициализацию объекта – присваивание полям объекта начальных значений.
Реализация конструктора для объекта класса TPerson:
constructorTPerson.Create;
fname := ‘’;
faddress := ‘’;
end;
Если объект больше не используется в программе, то можно освободить память, занимаемую полями данного объекта.
Для этого используется метод-деструктор Free.
Освобождение памяти, занимаемой полями объекта student:
student.Free;
Методы класса определяются в программе так же, как обычные процедуры и функции,
за исключением того, что имя процедуры или функции, являющейся методом, состоит из двух частей:
имени класса, которому принадлежит метод, и имени метода:
Имя_класса.имя_метода
В инструкциях метода доступ к полям объекта осуществляется без указания имени объекта
Определение метода Show класса TPerson:
ProcedureTPerson.Show;
ShowMessage(‘Имя ‘ + fname + #13 + ‘Адрес ‘ + faddress);
end;
Инструкция
student.Show;
вызовет применение метода Show
к объекту student.
При добавлении компонентов на форму Delphi автоматически формирует описание класса формы и объявление необходимых объектов;
При создании процедуры-обработчика события в описание класса формы добавляется объявление соответствующего метода.
Описание класса формы, сгенерированное Delphi:
unit Unit1;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StdCtrls;
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedureFormCreate(Sender: TObject);
end;
Объявление объекта – формы приложения (объект класса TForm1):
Form1: TForm1;
Тема: Основные принципы ООП: инкапсуляция, наследование, полиморфизм.
Вопросы:
1. Инкапсуляция
2. Наследование
3. Полиморфизм