Delphi. Pascal
Урок 22. Классы
Описание типа объекта (класс) | Пример |
имя класса = object (класс-родитель) | type donkey = object (animals) |
свойство-1: тип-1; | x:integer; |
свойство-2: тип-2; | y:integer; |
свойство-N: тип-N; | t:string; |
метод-1(параметры); | function run(m:string):boolean; |
метод-2(параметры); | procedure show; |
метод-N(параметры); | procedure hide; |
end; | end; |
var a1, a2, a3: donkey; |
Классы можно рассматриваить как пользовательский тип данных. Такие определенные пользователем типы, как правило, лучше подходят для описания объектов реального мира. Например, вы можете создать класс автомобиля и задать в нем переменные, которые будут харакризовать все автомобили - например, скорость, число дверей или число посадочных мест. Написание такого класса еще не означает, что у вас в программе есть автомобиль, так как класс - это просто новый тип данных и вам для использования автомобиля в вашей программе надо объявить еще переменную, имеющую тип автомобиля.
Вот пример класса:
type
TCar = class
private
FSpeed: Integer;
public
function GetSpeed(): Integer;
procedure SetSpeed(Speed: Integer);
end;
function TCar.GetSpeed(): Integer;
begin
Result := FSpeed;
end;
procedure TCar.SetSpeed(Speed: Integer);
begin
FSpeed := Speed;
end;
var
c: TCar;
s: Integer;
begin
c := TCar.Create;
c.SetSpeed(40);
s := c.GetSpeed;
end.
Сначала мы объявляем сам класс:
type
TCar = class
private
FSpeed: Integer;
public
function GetSpeed(): Integer;
procedure SetSpeed(Speed: Integer);
end;
Синтаксис тут такой: пишем сначала имя класса, после чего знак равно и ключеное слово class. Заканчиваем определение класса ключевым словом end. Внутри класса мы объявили одну переменную FSpeed типа Integer, одну функцию GetSpeed и одну процедуру SetSpeed с параметром целого типа. Объявление класса мы помещаем в секцию type нашего модуля.
Сразу за объявлением класса мы пишем реализацию наших функции и процедуры:
function TCar.GetSpeed(): Integer;
begin
Result := FSpeed;
end;
procedure TCar.SetSpeed(Speed: Integer);
begin
FSpeed := Speed;
end;
Синтаксис тут почти такой же, как при задании обячной функции (процедуры) модуля. Обратите только внимание на то, что перед именем функции (процедуры) мы пишем имя класса (TCar).
Далее в основной части нашей программы мы создаем экземпляр нашего класса и вызываем методы для него:
begin
c := TCar.Create;
c.SetSpeed(40);
s := c.GetSpeed;
end.
С этим уроком все.