I.
1. , .
, , . . , , .
2. , .
- , .
3. , , .
, .
II.
TYPE
<_>=OBJECT
<_>:<_>;
<>;
END;
, , . , , , , 2 :
<_>.<_>
III.
, , . , , OBJECT .
.
1. , ; .
2. , , , ; , , ; , , .
.
, , .
:
;
, , .
IV.
.
, . , , .
|
|
, , , , . . .
().
, VIRTUAL .
(), , . , . , , , . . , . ..
- , .
, . , , , . .
, PROCEDURE CONSTRUCTOR.
.
- .
.
. . PROCEDURE DESTRUCTOR . , .
V.
1. : .
2. : x, y v /.
3. :
type
POINT=object
X, Y: integer; {}
V: boolean; { : TRUE-; FALSE-}
function GET_X: integer; { }
function GET_Y: integer; { Y }
function GET_V: boolean; { }
procedure INIT(X0, Y0: integer); { }
procedure TURN_ON; { }
procedure TURN_OFF; { }
procedure MOVE(XN, YN: integer); { }
|
|
end;
4. POINT:
function POINT.GET_X; { }
begin
GET_X:=X;
end;
function POINT.GET_Y; { Y }
begin
GET_Y:=Y;
end;
function POINT.GET_V; { }
begin
GET_V:=V;
end;
procedure POINT.INIT; { }
begin
X:=X0;
Y:=Y0;
V:=false;
end;
procedure POINT.TURN_ON; { }
begin
if not V then
begin
PutPixel(X,Y,GetColor); { GetColor }
V:=true;
end;
end;
procedure POINT.TURN_OFF; { }
begin
if V then
begin
PutPixel(X,Y,GetBkColor); { GetBkColor }
V:=false;
end;
end;
procedure POINT.MOVE; { }
var
F: boolean;
begin
F:=V;
if F then
TURN_OFF;
X:=XN;
Y:=YN;
if F then
TURN_ON;
end;
.
, , , , , , , , , : ; ; ( ). , PLACE (), , , X Y:
type
PLACE=object
X, Y: integer;
procedure INIT(X0, Y0: integer);
function GET_X: integer;
function GET_Y: integer;
end;
{ }
, , . , OBJECT .
PLACE , POINT :
type
POINT=object(PLACE)
V: boolean;
procedure INIT(X0, Y0: integer);
function GET_V:boolean;
procedure TURN_ON;
procedure TURN_OFF;
procedure MOVE(XN, YN: integer);
end;
{ }
6. , , .
c POINT :
type
CIRCL=object(POINT)
R: integer;
procedure INIT(X0, Y0, R0: integer); { }
procedure TURN_ON; { }
procedure TURN_OFF; { }
procedure MOVE(XN, YN: integer); { }
function GET_R: integer; { }
end;
:
procedure CIRCL.INIT;
begin
X:=X0; Y:=Y0;
R:=R0;
V:=false;
end;
procedure CIRCL.TURN_ON;
begin
V:=true;
CIRCLE(X,Y,R);
end;
procedure CIRCL.TURN_OFF;
var
C: byte;
begin
C:=GetColor;
SetColor(GetBkColor); { }
Circle(X,Y,R);
V:=false;
SetColor(C);
end;
procedure CIRCL.MOVE;
var
F: boolean;
begin
F:=V;
if F then
TURN_OFF;
X:=XN;
Y:=YN;
if F then
TURN_ON;
end;
function CIRCL.GET_R;
begin
GET_R:=R;
end;
CIRCL.MOVE POINT.MOVE, ; CIRCL.MOVE CIRCL.TURN_ON CIRCL.TURN_OFF, POINT.MOVE POINT.TURN_ON POINT.TURN_OFF.
.
( ).
, , CIRCL MOVE POINT. TURN_ON TURN_OFF , .
|
|
, . MOVE TURN_ON, TURN_OFF, . . MOVE , . . .
- , .
PLACE, POINT CIRCL :
type
PLACE=object
X,Y: integer;
constructor INIT(X0, Y0: integer);
function GET_X: integer;
function GET_Y: integer;
end;
POINT=object(PLACE)
V: boolean;
constructor INIT(X0, Y0: integer);
function GET_V: boolean;
procedure TURN_ON; virtual;
procedure TURN_OFF;virtual;
procedure MOVE(XN, YN: integer);
end;
CIRCL=object(POINT)
R: integer;
constructor INIT(X0, Y0, R0: integer);
function GET_R: integer;
procedure TURN_ON; virtual;
procedure TURN_OFF; virtual;
end;
, , , .
, , DISPOSE:
DISPOSE (<_>, <_>);
:
DESTRUCTOR <>;
BEGIN
END;
DESTRUCTOR.