Informatikmaterialien |
Startseite | Informatik | Physik | Mathematik | Sonstiges | | Inhalt | Vorherige Seite | Nächste Seite | |
Richard-Wossidlo-Gymnasium Ribnitz-Damgarten |
---|
Die Hat-Beziehung existiert streng genommen nur zwischen Objekten. Dennoch wird sie für Klassen benutzt.
In der eigentlichen HAT-Beziehung (Komposition, Zerlegung) besitzt ein Objekt A ein anderes Objekt B, d. h. es hat die vollständige Kontrolle über das Objekt B. B kann nicht ohne A existieren.
Beispiel:
Ein Golfplatz HAT 18 Löcher. Golfplatz und Loch werden als Objekte aufgefasst, da sie durch weitere Attribute beschrieben werden können. Die Löcher können ohne den Golfplatz nicht existieren!
Hinweise zur Implementierung in Delphi
Die Klasse Golfplatz erhält das Attribut hatLoch. In der Initialisierungsmethode der Klasse Golfplatz muss die Initialisierungsmethode der Klasse Loch aufgerufen werden. Damit steht der Klasse Golfplatz alle Methoden der Klasse Loch zur Verfügung. Wird die Klasse Golfplatz gelöscht, muss in der Freigabemethode auch die Zerstörung der Löcher übernommen werden. Die Klasse Golfplatz besitzt die alleinigen Verwaltungsrechte für die Löcher.
Soll "von außen" ebenfalls auf Methoden der Löcher zugegriffen werden können, so sind diese über eine entsprechende Methode in der Klasse Golfplatz "durchzureichen".
interface
uses mLoch
type Golfplatz = CLASS
private
hatLoch : array[1..18] of Loch;
Name : String;
...
public
constructor init;
destructor gibFrei;
...
end;
implementation
constructor Golfplatz.init;
var i:byte;
begin
for i:= 1 to 18 do hatLoch[i]:=Loch.init;
end;
...destructor Golfplatz.gibfrei;
var i:byte;
begin
for i:= 1 to 18 do hatLoch[i].gibfrei;
end;end.
Man kann die HAT-Beziehung auch etwas aufweichen (Aggregation). Dann ist die Existenz von B ohne das Objekt A möglich.
Beispiel:
Jedes Loch eines Golfplatzes hat eine Fahne. Die Fahnen können auch nach Stillegung des Golfplatzes weiter existieren und z. B. als Souvenirs verkauft werden.
Weitere Beispiele und Erläuterungen und Umsetzungshinweise in Delphi
Die KENNT-Beziehung verknüpft zwei voneinander unabhängige Klassen.
Beispiel:
Wird ein Fußballspiel auf dem PC simuliert, so muss der Ball das Spielfeld kennen. Ball und Spielfeld existieren unabhängig voneinander.
Hinweise zur Implementierung in Delphi
Damit die Klasse Ball das Spielfeld kennenlernt, muss sie ein Attribut z. B. kenntSpielfeld besitzen, das sich die Spielfeld-Eigenschaften merkt. Das Lernen wird initiiert, indem eine Methode merkeSpielfeld implementiert wird, die die Übergabe des Spielfeldes auf das lokale Attribut übernimmt.
Innerhalb der Klasse Ball kann dann über "kenntSpielfeld.Methode" auf alle "public"-Methoden der Klasse Spielfeld zugegriffen werden.Sollen bereits im Konstruktur der Klasse Methoden der Klasse Spielfeld genutzt werden, so muss die Übergabe der ebenfalls im Konstruktor erfolgen.
interface
uses mSpielfeld;
type Ball = CLASS
private
Farbe : byte;
Radius : byte;
kenntSpielfeld : Spielfeld;
...
public
constructor init;
procedure merkeSpielfeld(pSpielfeld:Spielfeld);
...
end;
implementation
procedure Ball.merkeSpielfeld;
begin
kenntSpielfeld:=pSpielfeld;
end;
...end.
zur Startseite |
© Tino Hempel 1997 - 2004 | Im Web
vertreten seit 1994. Eine Internet-Seite aus dem Angebot von Tino Hempel. Für alle Seiten gilt der Haftungsausschluss/Disclaimer. |