UNIT uLampe;
(*
********************************************************************
*)
(* K L A S S E : TLampe
*)
(*
--------------------------------------------------------------------
*)
(* Version : 1.1
*)
(* Autor :
*)
(* Beschreibung: Die Klasse abstrahiert und modelliert eine
*)
(*
Lampe mit zufälliger Lebensdauer, die durch die
*)
(*
angefallenen Leuchtzyklen erreicht wird
*)
(* Compiler : Delphi 6.0
*)
(* Aenderungen : -
*)
(*
********************************************************************
*)
INTERFACE
//
=======================================================================
type
TLampe = class(TObject)
private
Licht : boolean; //
leuchtet oder nicht
Lebensdauer : integer;
Leuchtzyklen: integer; // wie oft gebrannt hat
public
constructor Create;
procedure Init;
procedure Leuchten;
function IsDefekt : boolean;
function GetLicht : boolean;
end;
(* -------------------- B e s c h r e i b u n g
-------------------------
Oberklasse : -
Bezugsklassen : - import:
Methoden
--------
Create
Auftrag: erzeugen und initialisieren
vorher : -
nachher: done
Init
Auftrag: zufällige Lebensdauer bestimmen
vorher : -
nachher: kein Licht; Lebensdauer zwischen 0 und 5, Leuchtzyklen sind 0
Leuchten;
Auftrag: Lampe gibt Licht, Leuchtzyklen hochzaehlen
vorher : ist nicht defekt
nachher: L. leuchtet
IsDefekt
Anfrage: ob Lampe defekt ist
vorher : L. ist init.
nachher: true, wenn Leuchtzyklen > Lebensdauer
GetLicht
Anfrage: ob Licht da ist (true)
vorher : Lampe ist init.
nachher: -
---------------------------------------------------------------------
*)
IMPLEMENTATION
//
====================================================================
constructor TLampe.Create;
//
--------------------------------------------------------------------
begin
inherited Create;
Init;
end;
procedure TLampe.Init;
//
--------------------------------------------------------------------
begin
Randomize;
Licht := false;
Lebensdauer := Random (5); // man weiss nicht, wie lange sie
hält
Leuchtzyklen := 0;
// showmessage('init' +' ' +inttostr(lebensdauer) + ' ' +
inttostr(Leuchtzyklen));
end;
procedure TLampe.Leuchten;
//
--------------------------------------------------------------------
begin
if NOT IsDefekt
then
begin
Licht := true;
inc(Leuchtzyklen);
end
else Licht := false;
end;
function TLampe.IsDefekt;
//
--------------------------------------------------------------------
begin
Result := false;
if Leuchtzyklen >= Lebensdauer
then result := true;
end;
function TLampe.GetLicht : boolean;
//
--------------------------------------------------------------------
begin
Result := Licht;
end;
END. // -------- UNIT ------------- |