Informatikmaterialien 
von Tino Hempel

Startseite | Informatik | Physik | Mathematik | Sonstiges |

| Inhalt | Vorherige Seite | Nächste Seite | 


Richard-Wossidlo-Gymnasium Ribnitz-Damgarten
Fachbereich Informatik


HAT-Beziehung 
und KENNT-Beziehung
(Konzept von Stifte und Mäuse)


HAT-Beziehung 

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

Assoziation (KENNT-Beziehung)

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.