s n h m r u

Minimallogo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

s n h m r u
i

Das Spiel-Objekt

Ein Objekt, das die Figuren steuert

Das Spiel nur über einzelne Variablen zu steuern, ist mühsam und unübersichtlich. Besser ist ein eigenes Spiel-Objekt, das die Übersicht behält. Es muss dazu die beiden Figuren f1 und f2 kennen, außerdem die beiden Figuren, die gerade per Münzwurf bestimmt wurden, und den Spieler, der aktuell am Zug ist.

Ein passendes Objektdiagramm sieht so aus:

Objektdiagramm: Spiel verweist auf zwei Figuren

Das Spiel-Objekt besitzt mehrere Attribute, deren Werte Referenzen auf andere Objekte sind. Solche Attribute nennt man Referenzattribute. Über sie kann das Spiel-Objekt die Methoden und Attribute der Figuren benutzen.

Aufgabe 1 - Objektdiagramm lesen

Beschreibe anhand des Objektdiagramms den dargestellten Spielzustand: Wo stehen die Figuren? Welche Figuren wurden per Münzwurf bestimmt?

kennt- und hat-Beziehungen

Wenn ein Objekt über ein Referenzattribut Zugriff auf ein anderes Objekt hat, spricht man von einer Beziehung. Man unterscheidet zwei Arten:

  • Bei einer hat-Beziehung ist das andere Objekt ein Bestandteil und wird meist vom Objekt selbst erzeugt. Das Spiel erzeugt die Figuren f1 und f2 – also eine hat-Beziehung.
  • Bei einer kennt-Beziehung kennt ein Objekt ein anderes nur, das andere existiert aber unabhängig. Die aktuellen Figuren werden nicht neu erzeugt, sondern verweisen auf bereits vorhandene Figuren – also eine kennt-Beziehung.

Im Klassendiagramm stellt man Beziehungen als Pfeile dar. Die hat-Beziehung wird zusätzlich mit einer ausgefüllten Raute markiert:

Klassendiagramm Spiel und Figur mit kennt- und hat-Beziehung

Genaueres zu Beziehungen findest du im Fachkonzept Beziehungen.

Grundgerüst der Klasse Spiel

Wir beginnen mit den Attributen. Die Figuren f1 und f2 werden vom Spiel erzeugt. Die aktuellen Figuren verweisen zunächst auf vorhandene Figuren. Der aktuelle Spieler steht zu Beginn noch nicht fest – sein Wert ist deshalb null, das Attribut hat also den nullbaren Typ Figur?.

class Spiel {
    val f1 = Figur("blau", 0, 0)     // hat-Beziehung: vom Spiel erzeugt
    val f2 = Figur("rot", 4, 4)      // hat-Beziehung: vom Spiel erzeugt

    var aktuelleFigur1: Figur = f1   // kennt-Beziehung: verweist auf vorhandene Figur
    var aktuelleFigur2: Figur = f1   // kennt-Beziehung
    var aktuellerSpieler: Figur? = null
}

Aufgabe 2 - Grundgerüst anlegen

Lege in einem BlueJ-Projekt die Klasse Figur aus dem vorigen Abschnitt und die Klasse Spiel mit den obigen Attributen an. Erzeuge ein Spiel-Objekt und überprüfe mit dem Objektinspektor, dass die beiden Figuren erzeugt wurden und aktuellerSpieler den Wert null hat.

Suche

v
100.123.5.1.4 Das Spiel-Objekt
Kopieren durch Anklicken

Rückmeldung geben