Java 7 Grundkurs

Eigene Datentypen basteln: enum

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Der enum ist ein selbst definierter Aufzählungstyp – wir stellen ihn hier im Beispiel vor. Er ist einfach zu deklarieren, bringt Ihnen mehr Typsicherheit und IDE-Unterstützung.
04:41

Transkript

In diesem Video schauen wir uns Aufzählungstypen an, sog. "Enums". In Java gibt es die primitiven Datentypen wie z.B. "int" für ganze Zahlen. Einer Variablen vom Typ "int" kann ich ein von 4 Milliarden verschiedenen Zahlen zuweisen. Manchmal brauchen wir es aber eine Nummer kleiner. Wenn wir uns z. B. in einer Variablen einen Monat merken möchten, dann soll diese Variable ja eigentlich nur 12 verschiedene Werte annehmen können. Ich könnte einfach die Zahlen von 1 bis 12 benutzen, aber da müsste ich auch an jeder Stelle, an der ich das mache, absichern, dass auch wirklich nur diese Zahlen von 1 bis 12 verwendet werden, und nicht vielleicht mal irgendwo eine 13 dazwischen rutscht. Eine komfortable Alternative ist ein selbstdefinierter Aufzählungstyp, ein sog. "Enum". Hier sehen wir die Definition eines solchen Aufzählungstyps mit dem Namen "Monat". Es fängt ein bisschen so an, wie eine Klassendeklaration, nur dass eben hier nicht das Schlüsselwort "Class" seht, sondern "Enum". Danach folgt der Name des "Enums", des Aufzählungstyps, und dann folgen in geschweiften Klammern, durch Komma getrennt, alle möglichen Werte, die eine Variable dieses Typs haben können. Ich lege mir also eine Menge von möglichen Werten fest, und gebe dieser Menge dann einen Namen. Nun schauen wir uns an, wie sich dieser Typ "Monat" verwenden lässt. Hätten wir keinen Aufzählungstyp definiert, könnten wir versuchen, das Ganze mit einem String zu simulieren, immerhin sind Monatsnamen ja Texte. Wir würden uns eine Variable anlegen, die z.B. "ein Monat" heißt, ist vom Typ String, und dann weisen wir hier den Monatsnamen zu. Ja, Sie haben richtig gesehen, da ist ein Tippfehler drin. Sie sehen das, ich sehe das, aber der Compiler sieht das nicht, und der Entwickler, der es geschrieben hat, hat es offensichtlich auch nicht gesehen. Was ich Ihnen damit zeigen möchte: Die Verwendung von Strings in solchen Fällen ist von der Sache her unsicher. Der Compiler kann nicht überprüfen, ob das hier ein gültiger Wert für diese Variable ist. Nun das gleiche noch mal, aber diesmal mit unserem neuen Aufzählungstyp "Monat". Da es ein Typ ist wie jeder andere, kann ich von diesem Typ erst mal eine Variable deklarieren. Die nenne ich jetzt "noch einen Monat". Diese Variable kann jetzt genau einen der Werte annehmen, die im Typ Monat definiert sind. Um auf diese Werte zuzugreifen, schreibe ich einfach "Monat.", und dann den einzelnen Wert. Jetzt versuche ich mal hier oben, diesen Tippfehler einzubauen. Und was sehen wir? Wir sehen einen Compiler-Fehler. Der Compiler sagt: Ich kann dieses Symbol nicht finden. Denn der Compiler kennt natürlich diesen Aufzählungstyp, und er weiß, welche Werte zulässig sind. Und "Aril" ist nicht dabei. Wenn Sie also Aufzählungstypen statt Strings verwenden, dann geben Sie dem Compiler die Möglichkeit, evtl. Fehler im Vorhinein zu finden. Aber das ist noch mehr! Auch die IDE kennt natürlich diesen Aufzählungstyp. D.h., ich bekomme IDE-Unterstützung beim Schreiben meines Programms. Schreibe ich hier "Monat.", dann bekomme ich eine Liste der möglichen Werte zur Auswahl. Zugegeben, in alphabetischer Reihenfolge, aber immerhin. Jetzt kann ich mir hier einen Wert auswählen, drücke "Enter" und fertig. Da diese Aufzählungstypen in der Regel nur wenige verschiedene Werte anbieten, bietet sich eine Auswertung mit "switch" geradezu an, denn ich kann hier meine Variable von einem "Enum.Typ" eingeben und dann mit mit mehreren Case durchtesten. Hinter dem "case" folgt immer einer der Namen aus unserem Aufzählungstyp, und zwar ohne den Typ davor. Der Typ ist ja schon vorgegeben. Ich habe ja hier hingeschrieben "noch einen Monat", und "noch einen Monat" ist ja schon vom Typ "Monat". D.h. die Werte, die ich hier eingebe, können sowieso nur aus "Monat" stammen. "Monat" stammen. Hat die Variable noch einen Monat, nun z. B. den Wert "Oktober", den geben wir hier hinein, hat sie den Wert "April", den geben wir hin, und in allen anderen Fällen kommen wir unten raus. Wir können natürlich unsere Variable auch auf einen bestimmten Wert testen. Möchte ich wissen, ob die Variable "noch einen Monat" den Wert "Januar" hat, dann schreibe ich einfach "if noch einen Monat=Monat.Januar". Das Ist-Gleich ist in diesem Fall völlig unproblematisch. Von jedem der Werte dieses Aufzählungstyps gibt es nur genau ein Exemplar. D.h., wenn ich an verschiedenen Stellen im Programm "Januar" verwende, dann ist das immer dasselbe Objekt. Und deshalb können wir hier auch tatsächlich einfach mit "=" vergleichen. Und wenn der Monat tatsächlich Januar ist, dann können wir hier irgendetwas ausgeben. Damit haben Sie das Wichtigste über Aufzählungstypen erfahren. Sie haben gesehen, wie einfach sie zu deklarieren sind. Sie haben gesehen, dass es Ihnen mehr Sicherheit bringt, weil der Compiler Fehler schneller finden kann, und dass Sie bei der Verwendung sogar auf zusätzliche IDE-Unterstützung hoffen dürfen. Wenn Sie also mal einen Datentyp benötigen, der nur eine begrenzte Menge von verschiedenen Werten haben darf, dann denken Sie an "Enum".

Java 7 Grundkurs

Machen Sie sich mit den Grundlagen der Java-Programmierung vertraut und lernen Sie die Syntax der Sprache sowie das Konzept der objektorientierten Softwareentwicklung kennen.

8 Std. 32 min (66 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!