Java Aufgabe Enums mit Integer array?
Hi ich bins mal wieder mit einer neuen Aufgabe :).
Leider stehe ich hier wieder komplett auf einem schlauch und habe keine Ahnung, was ich hier machen soll. Gegeben habe ich ein Beispiel was ich damit machen soll ist mir überhaupt nicht klar. Wenn mir jemand nur grob sagen könnte, was das Programm machen soll wäre mir das eine große Hilfe, da ich aus der Aufgabenstellung nicht wirklich schlauer werde. Soll das Programm einen Enum haben, der indices auf ein array hat? D.h. wenn ich dem Enum Richtung als Beispiel eine 1 zuordne? Ebenfalls wird hier auch von mehreren Methoden gesprochen, wie die ordinal Methode zu der ich leider noch nichts gefunden habe, mich aber derzeit darum kümmere. Danke im Voraus Victor.
1 Antwort
Das soll, so wie ich es verstanden habe, ein Index-Übersetzer werden. Wenn du eine Enumeration hast:
enum Weekday { Monday, Tuesday, Wednesday, /* etc. ... */ }
wird den einzelnen Enumerationsinstanzen von Java intern ein Zahlwert zugeordnet, beginnend bei 0. Den kannst du mit der ordinal-Methode ermitteln.
int index = Weekday.Monday.ordinal(); // 0
Deine Klasse IntegerByEnum soll nun ein ganz normales Array verwalten. Um von außen auf die einzelnen Array-Elemente zuzugreifen, sollen die Instanzen eines Enums verwendet werden.
Wenn du in put bspw. Weekday.Tuesday mitsamt irgendeiner Zahl übergibst, soll das Array an der Stelle 1 (ordinaler Wert von Tuesday) die übergebene Zahl ablegen. Mit Weekday.Tuesday kann man mit der get-Methode auch wieder an den Wert herankommen.
Wenn du ein Objekt deiner Klasse anlegst, muss der Typ (Class) des Enums, welches später zur Assoziation für die Indizes genutzt werden soll, an den Konstruktor übergeben werden. Anhand dieses Objekts kannst du dir ein konkretes Enum-Objekt erstellen und die Anzahl der Konstanten ermitteln, um so auch die Arraylänge zu bestimmen. Schau dir dazu den bereits vorgegebenen Code an, denn der zeigt, wie du an diese Informationen gelangst.
Wow vielen dank. Hätte mein Prof einfach geschrieben, dass man einen Index-Übersetzer schreiben soll hätte ich nicht große Schwierigkeiten gehabt. Deine Antwort hat mir sehr stark geholfen!