Если разворачиваются несколько объектов одного класса, то каждый объект получает уникальный набор полей и общий набор методов и свойств.
Type
TmyCl=class(Tobject)
Fint:integer;
Fstr:string;
procedure proc1(var m:integer);
End;
Var O1,O2: TmyCl; n:integer;
procedure TmyCl.proc1(var m:integer);
Begin m:= Fint +5; End;
Begin
O1:= TmyCl.create;
O2:= TmyCl .create;
O1.Fint:=10; O2.Fint:=20;
O1.proc1(n); write(n);
O2.proc1(n); write(n);
End.
· СВОЙСТВА
Как мы помним:
Свойства – это механизм доступа к данным.
Возможно прямое обращение к полям, но фундаментальный принцип инкапсуляции требует обращаться к полям посредством свойств и методов (во избежание ошибок, для обеспечения корректности изменения данных).
Type
TМan=class(Tobject)
FVozrast:integer;
End;
Var
мan: Tмan;
Begin
мan:= Tмan.create;
мan.Fvozrast:=188;
Man.Free;
End.
В описании свойства используются два метода, один для чтения, другой для записи значения свойства (через эти методы реализуется контроль корректности вводимых данных и др. действия).
Function GetVozr:integer; //верни значение возраста.
Procedure SetVozr(r:integer); //установи возраст, но без глупостей не 1000 лет
Синтаксис описания свойства выглядит так:
Property Vozrast:integer read GetVozr write SetVozr;
Property Vozrast:integer read GetVozr ;
Property Vozrast:integer write SetVozr;
Property Vozrast:integer;
Type
TMan=class(Tobject)