Zu diesem Zustandsdiagramm habe ich folgenden Quellcode:
Java:
publicclassPlayer{privateState state =State.GESTOPPT;publicvoidstart(){switch(state){case GESTOPPT:starten();
state =State.GESTARTET;break;case PAUSIERT:fortsetzen();
state =State.GESTARTET;break;default:break;}}publicvoidstop(){switch(state){case GESTARTET:stoppen();
state =State.GESTOPPT;break;case PAUSIERT:stoppen();
state =State.GESTOPPT;break;default:break;}}publicvoidpause(){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.
-VerwendenSie die exakte Schreibweise aus dem Diagramm.-Enums werden durchgehend groß geschrieben.-Fügen Sie einen Getter für den aktuellen Zustand hinzu.NennenSie das privateAttribut „state“.-DieAktionsmethoden sollen leer gelassen werden.-AlleMethoden 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.
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.
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.
publicclassPlayer{privateState state =State.GESTOPPT;publicStategetState(){return state;}publicvoidstart(){switch(state){case GESTOPPT:starten();
state =State.GESTARTET;break;case PAUSIERT:fortsetzen();
state =State.GESTARTET;break;default:break;}}publicvoidstop(){switch(state){case GESTARTET:stoppen();
state =State.GESTOPPT;break;case PAUSIERT:stoppen();
state =State.GESTOPPT;break;default:break;}}publicvoidpause(){switch(state){case GESTARTET:pausieren();
state =State.PAUSIERT;break;default:break;}}privatevoidfortsetzen(){}privatevoidstarten(){}privatevoidstoppen(){}privatevoidpausieren(){}}
Das ist Player.java und die folgende ist die State.java Datei
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.