private , доступные только в пределах модуля> protected , доступные только в классах потомках> public , доступные из других модулей> published , видимые в инспекторе объектов>
Пример был взят из учебника Free Pascal и Lazarus (Е.Р. Алексеев, О.В. Чеснокова, Т.В. Кучер), где он описан для среды Lazarus и с графическим интерфейсом.
Здесь приводится для IDE Free Pascal.
{$mode objfpc} uses Classes; type TPolygon = class(TObject) private k: integer; p: array of real; public constructor Create; function Perimeter(): real; { function Show(): string; } protected procedure Set_Input(m: integer); published Property n: integer read K write Set_Input; end; constructor TPolygon.Create; var i: integer; begin k := 50; setLength(p,k); for i := 0 to k-1 do p[i] := 0; inherited Create; end; function TPolygon.Perimeter(): real; var sum: real; i: integer; begin sum := 0; for i:=1 to k-1 do sum := sum + p[i]; Perimeter := sum; end; procedure TPolygon.Set_Input(m: integer); begin if m > 1 then K:=m else K:=50; end; var figure: TPolygon; m: integer; begin figure := TPolygon.Create; write('Number of sides: '); readln(m); figure.Set_Input(m); writeln('Number of sides: ', figure.n); writeln('Number of sides: ', figure.k); for m:=0 to figure.k-1 do figure.p[m] := random(50); writeln('Perimeter: ',figure.Perimeter():15:2); readln; end.
Также в основной ветке программы без труда можно записать непосредственно в k без использования метода Set_Input():
figure.k := 3;
Последние комментарии
1 день 14 часов назад
1 день 21 час назад
2 дня 3 часа назад
3 дня 10 часов назад
6 дней 5 часов назад
6 дней 7 часов назад
1 неделя 5 часов назад
1 неделя 1 день назад
1 неделя 1 день назад
1 неделя 1 день назад