Implementierung eines Zustandsdiagramms

Guten Abend,

Zu diesem Zustandsdiagramm habe ich folgenden Quellcode:
Java:
public class Player {
	private State state = State.GESTOPPT;

	public void start() {
		switch (state) {
		case GESTOPPT:
			starten();
			state = State.GESTARTET;
			break;
		case PAUSIERT:
			fortsetzen();
			state = State.GESTARTET;
			break;
		default:
			break;

		}
	}

	public void stop() {
		switch (state) {
		case GESTARTET:
			stoppen();
			state = State.GESTOPPT;
			break;
		case PAUSIERT:
			stoppen();
			state = State.GESTOPPT;
			break;
		default:
			break;
		}
	}

	public void pause() {
		switch (state) {
		case GESTARTET:
			pausieren();
			state = State.PAUSIERT;
			break;
		default:
			break;

		}
	}

}
Meine Frage ist, weshalb die Aufrufe der Methode für die jeweiligen Aktionen (starten(), fortsetzen(),stoppen(),stoppen() u. pausieren() rot unterstrichen werden. Bzw. hoffe ich, dass der Code im Ganzen ziemlich korrekt ist, da ich mich auch sehr nahe an die Vorlesungsfolien gehalten habe und dachte diese konzeptionell verstanden zu haben. Die Aufrufe der Methoden werden in diesen genauso dargestellt. Danke im Voraus.
 

Anhänge

Java:
- Verwenden Sie die exakte Schreibweise aus dem Diagramm.
- Enums werden durchgehend groß geschrieben.
- Fügen Sie einen Getter für den aktuellen Zustand hinzu. Nennen Sie das private Attribut „state“.
- Die Aktionsmethoden sollen leer gelassen werden.
- Alle Methoden sind public und haben keinen Rückgabetypen (void).
Getter muss ich noch hinzufügen, vergessen gehabt.
 
Meine Frage ist, weshalb die Aufrufe der Methode für die jeweiligen Aktionen (starten(), fortsetzen(),stoppen(),stoppen() u. pausieren() rot unterstrichen werden.
Weil es die Methoden nicht gibt :)

Vermutlich meint "Aktionsmethoden" genau diese Methoden? Dann solltest du sie einfach hinzufügen und dabei den Body leer lassen.
 
Ja genau, diese Methoden sollen die Aktionsmethoden sein. Wie meinst du ? Die Methode sind ja hinzugefügt und den Body habe ich hinzugefügt, das sind ja die geschweiften Klammern. Verstehe nicht ganz wie du das meinst.
 
Ja verstehe, danke :D.
Java:
public enum State {
	GESTOPPT, GESTARTET, PAUSIERT;

}
Das ist bei mir die "public enum State", sollen nämlich zwei Java-Dateien erstellen, die die ich schon reingeschickt habe und State.java. Habe jetzt die Methoden mit leerem Body hinzugefügt. Jedoch wird mir bei Einreichen der Aufgabe ein Compiler-Fehler angezeigt. Liegt es evtl. an diesem enum? Habe es jedoch so gelernt.
 
Du meinst, ob irgendein Fehler angezeigt wird, denke ich mal.
Mir werden keine Fehler angezeigt, beide Javadateien sind ohne
Fehlermeldung.
 
Java:
public class Player {
	private State state = State.GESTOPPT;

	public State getState() {
		return state;
	}

	public void start() {
		switch (state) {
		case GESTOPPT:
			starten();
			state = State.GESTARTET;
			break;
		case PAUSIERT:
			fortsetzen();
			state = State.GESTARTET;
			break;
		default:
			break;

		}
	}

	public void stop() {
		switch (state) {
		case GESTARTET:
			stoppen();
			state = State.GESTOPPT;
			break;
		case PAUSIERT:
			stoppen();
			state = State.GESTOPPT;
			break;
		default:
			break;
		}
	}

	public void pause() {
		switch (state) {
		case GESTARTET:
			pausieren();
			state = State.PAUSIERT;
			break;
		default:
			break;

		}
	}

	private void fortsetzen() {

	}

	private void starten() {

	}

	private void stoppen() {

	}

	private void pausieren() {

	}

}
Das ist Player.java und die folgende ist die State.java Datei
Java:
public enum State {
	GESTOPPT, GESTARTET, PAUSIERT;

}
 
Hey MitnullPlangehtderPlanlos,

wenn du alles so schreibst, wie es jono getan hat, ist der Fehler lediglich, dass du das "private" Attribut von den Aktionsmethoden zu "public" ändern musst.

private void fortsetzen() {
}
private void starten() {
}
private void stoppen() {
}
private void pausieren() {
}


So wie es MrBrown richtig angemerkt hat.
 
Zuletzt bearbeitet:
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben