Enum ist das gleiche wie?

Reggie()

Bekanntes Mitglied
Dieses Beispiel habe ich im Netz gefunden:
Java:
public enum Auto {

   BMW("Bayrischer Mist Wagen", "Deutsch"),
   Toyota("Arigato", "Japanisch"),
   Ford("Amischlitten", "Amerikanisch");

   private final String beschreibung;
   private final String herkunft;

   Auto(String info, String land){
       beschreibung=info;
       herkunft=land;
   }

   public String getBeschreibung(){
       return beschreibung;
   }

   public String getHerkunft(){
       return herkunft;
   }
}
Java:
public class Panjutorials {

   public static void main(String[] args) {
       for(Auto marke: Auto.values()){
           System.out.printf("%s t %s t %s n", marke, marke.getBeschreibung(), marke.getHerkunft());
       }
   }
}
Ich habe es mal versucht ohne Enum nachzubilden. Ist es das gleiche?
Java:
public class AutoVerzeichnis {
   
private final String[][] auto = {
        { "BMW", "Bayrischer Mist Wagen", "Deutsch" }
        { "Toyota", "Arigato", "Japanisch" }
        { "Ford", "Amischlitten", "Amerikanisch" }
        };
       private final int MARKE = 0;
       private final int BESCHREIBUNG = 1;
       private final int HERKUNFT = 2;

    public static void main(String[] args) {
        for(int i=0; i<auto.length; i++) {
            System.out.printf("%s%t%s%t%s%n", 
                                        auto[i][MARKE], 
                                        auto[i][BESCHREIBUNG], 
                                        auto[i][HERKUNFT]);
        }
   }
}
 

mrBrown

Super-Moderator
Mitarbeiter
Nein.

Am ehesten Vergleichbar mit:
Java:
public class Auto {

  public Auto BMW = new Auto("Bayrischer Mist Wagen", "Deutsch"),
  public Auto Toyota = new Auto("Arigato", "Japanisch"),
  public Auto Ford = new Auto("Amischlitten", "Amerikanisch");

   private final String beschreibung;
   private final String herkunft;

  private Auto(String info, String land){
       beschreibung=info;
       herkunft=land;
   }

   public String getBeschreibung(){
       return beschreibung;
   }

   public String getHerkunft(){
       return herkunft;
   }
}
 

Flown

Administrator
Mitarbeiter
Zusätzlich zu mrBrown's Annäherung in Post #2:
- Klasse ist final
- Klasse erbt von Enum
- Klasse erhält vom Compiler spezielle Methoden wie values
- Namen der Konstante werden berücksichtigt, auch die Stelle an dem die Konstante steht (ordinal),...
 

CSHW89

Bekanntes Mitglied
Und zusätzlich sollten die Variablen 'BMW', 'Toyota' und 'Ford' im mrBrowns Beispiel 'static final' sein, also:
Java:
public static final Auto BMW = new Auto("Bayrischer Mist Wagen", "Deutsch");
public static final Auto Toyota = new Auto("Arigato", "Japanisch");
public static final Auto Ford = new Auto("Amischlitten", "Amerikanisch");
Ich glaube ohne 'static' würde es sogar zu einer Endlosrekursion kommen.

lg Kevin
 

Senftube

Aktives Mitglied
Eine enum ist eine Variable die nur bestimmte vorgebenen werte enthalten kann:
z.B enum Ampelfarbe { ROT, GELB, GRUEN }
Anderes Beispiel:

Code:
public class Copy
{
// Die Klasse soll 3 möglichkeiten haben ein nicht existierendes Verzeichnis
// zu behandeln: a) es nicht anlegen b) die letzte Ebene anlegen c) alle fehlenden
// Unterverzeichnisse anlegen

public enum EnCreateDestDir { DONT_CREATE, CREATE_DIR, CREATE_ALL_DIRS }
...

// Enumvariable anlegen
EnCreateDestDir how;
oder
Copy.EnCreateDestDir how; //mit dem klassenname vornedran


// Durchlaufen einer enum und deren Werte ausgeben ?
for (Copy.EnCreateDestDir method : Copy.EnCreateDestDir.values())
{
        System.out.println(method);  
        System.out.println(String.format("%d = %s",method.ordinal(),method));
       // ordinal liefert die Number / Index
}
// Ausgabe ist dann:
// 0 = DONT_CREATE
// 1 = CREATE_DIR
// 2 = CREATE_ALL_DIRS
 

Reggie()

Bekanntes Mitglied
immer mit der Ruhe! :) es stimmt schon, ich wollte verstehen was Enum ist und wie es sinnvoll eingesetzt wird und bin natürlich für jedes Beispiel dankbar @Senftube wenngleich das Beispiel mir auch nicht die Frage beantworten konnte. Vielleicht bin ich einfach noch nicht "reif" für Enum :)
 

Neumi5694

Top Contributor
Was das Enum vor allem aus macht, ist die Unterstützung durch IDE und Compiler. Diese erkennen, dass man ein Enum verwendet und erlauben dann einen Syntax, der bei anderen Klassen nicht gültig ist.
Beispiel: Ein Enum wird in switch-case unterstützt. Bei den Cases schreibt man den Klassennamen nicht dazu, außerdem werden die einzelnen Fälle mit equals() verglichen (vorher also auf null prüfen), im Quellcode steht aber nichts davon. Beim Compilieren wird der Code um die fehlenden Teile ergänzt.
Außerdem verhindern IDE und Compiler z.B. auch, dass man in switch/case Enums mischen kann. Der bytecode würde das erlauben, aber IDE/Compiler halten dich davon ab.

Davon abgesehen ist die Autoklasse (mit nachfolgenden ergänzenden Kommentaren durch Flown) absolut richtig erklärt. Bei einem Enum handelt es sich datentechnisch um statische Instanzen einer statischen Klasse samt speziellen Hilfsmethoden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Enum oder normale Klasse? Java Basics - Anfänger-Themen 10
volcanos enum und switch (neu): falschen Wert mit IllegalArgumentException oder mit EnumConstantNotPresentException abfangen ? Java Basics - Anfänger-Themen 51
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
S Java Enum Java Basics - Anfänger-Themen 2
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
V Enum Java Basics - Anfänger-Themen 1
C Farben als Enum Java Basics - Anfänger-Themen 3
N enum Attribut von Objekten einer Hashmap ausgeben Java Basics - Anfänger-Themen 6
I JAXB und Enum Java Basics - Anfänger-Themen 7
M Enum-Variable HashMap zuweisen Java Basics - Anfänger-Themen 5
B Enum innerhalb einer Klasse / anderes Konzept Java Basics - Anfänger-Themen 8
N Enum Typen, was passiert intern mit ihnen? Java Basics - Anfänger-Themen 2
A enum Java Basics - Anfänger-Themen 6
O Enum Array Rekursiv abarbeiten Java Basics - Anfänger-Themen 44
B ENUM to List<String> konvertieren Java Basics - Anfänger-Themen 2
N Java Enum converter Methode Java Basics - Anfänger-Themen 5
F Enum von Ländern Java Basics - Anfänger-Themen 8
J Klassen Enum als Informationsträger Java Basics - Anfänger-Themen 10
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
P Klassen Richtige Anwendung einer Enum-Klasse Java Basics - Anfänger-Themen 11
E Datentypen Problem beim Speichern von enum. Java Basics - Anfänger-Themen 10
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
E Objektvergleich Enum Java Basics - Anfänger-Themen 7
kilopack15 Euromünzen in enum als Liste ausgeben Java Basics - Anfänger-Themen 11
N Enum als generischer Typ Java Basics - Anfänger-Themen 4
H Datentypen Fehler bei Verwendung von enum Java Basics - Anfänger-Themen 9
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
S Menüauswahl per Enum Java Basics - Anfänger-Themen 12
F Enum via String definieren Java Basics - Anfänger-Themen 2
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
M java.lang.Enum.valueOf(Unknown Source) Java Basics - Anfänger-Themen 2
M Enum-Variabel-Abfrage funktioniert nicht? Java Basics - Anfänger-Themen 2
P Fallunterscheidung mit Überprüfung (enum) Java Basics - Anfänger-Themen 11
H enum Type Java Basics - Anfänger-Themen 6
F Operatoren Enum aus Textdabei laden Java Basics - Anfänger-Themen 3
P enum: cannot be resolved to a type Java Basics - Anfänger-Themen 2
kaoZ Variablen Konstantensammlung vs. Enum Java Basics - Anfänger-Themen 9
H Enum außerhalb einer Klasse? Java Basics - Anfänger-Themen 2
K OOP Aufzählungstypen! enum Currency!!! Java Basics - Anfänger-Themen 5
F ENUM als Variable Java Basics - Anfänger-Themen 4
M Enum: Zugriff auf Konstanten Java Basics - Anfänger-Themen 7
W Enum Konstruktor Type Java Basics - Anfänger-Themen 2
A Erste Schritte ENUM - Werte zurückgeben Java Basics - Anfänger-Themen 5
D Enum als Parameter Java Basics - Anfänger-Themen 6
B Variablen Instanz von Enum zur Laufzeit erstellen und zuweisen Java Basics - Anfänger-Themen 2
B Datentypen Enum vererben/gruppieren? Java Basics - Anfänger-Themen 6
F Datentypen enum Java Basics - Anfänger-Themen 5
J Enum zählen Java Basics - Anfänger-Themen 8
D Einlesen eines Enum-Wertes per console Java Basics - Anfänger-Themen 3
K String mit ENUM vergleichen? Java Basics - Anfänger-Themen 6
N enum vergleiche Klammern? Java Basics - Anfänger-Themen 5
J public enum? in Java Java Basics - Anfänger-Themen 9
D Erste Schritte Enum - das unbekannte Wesen Java Basics - Anfänger-Themen 3
Y ENUM auslesen (Name des ENUM als Variable) Java Basics - Anfänger-Themen 4
P Compiler-Fehler "class, interface, or enum expected" Java Basics - Anfänger-Themen 5
K class, interface or enum expected Java Basics - Anfänger-Themen 14
pg1337 enum-Aufgabe Java Basics - Anfänger-Themen 5
N was sagt enum aus? Java Basics - Anfänger-Themen 3
S Methoden Enum Parameter in Methode Java Basics - Anfänger-Themen 7
G Datentypen enum Frage Java Basics - Anfänger-Themen 3
R Probleme mit Enum Java Basics - Anfänger-Themen 10
B Enum: Instanzen Java Basics - Anfänger-Themen 10
B Generic? Enum - So lösbar? Java Basics - Anfänger-Themen 8
T class, interface, or enum expected Java Basics - Anfänger-Themen 2
M Vererbung Enum Vererbung/Polymorphie Java Basics - Anfänger-Themen 2
P Enum Attribut in Konstruktoren Java Basics - Anfänger-Themen 10
4 Enum Problem Java Basics - Anfänger-Themen 2
turmaline Bindestrich in enum? Java Basics - Anfänger-Themen 5
T Enum - Key als Value ermitteln Java Basics - Anfänger-Themen 7
X enum Fehlermeldung "The public type Day must be defined in its own file" Java Basics - Anfänger-Themen 8
T ist enum.ordinal keine Konstante? Java Basics - Anfänger-Themen 7
R State machine mit enum Java Basics - Anfänger-Themen 9
L enum aus Integer umwandeln Java Basics - Anfänger-Themen 3
C Klasseninstanzierung mit enum-Parameter erzwingen Java Basics - Anfänger-Themen 2
I Enum in String Java Basics - Anfänger-Themen 4
N enum richtig verwenden Java Basics - Anfänger-Themen 5
M for(Enum..., ButtonGroup.getElements()... Java Basics - Anfänger-Themen 3
StrikeTom Fragen zu enum Java Basics - Anfänger-Themen 4
A Was ist performanter für Konstanten, enum oder static variablen Java Basics - Anfänger-Themen 5
L String zu Enum parsen Java Basics - Anfänger-Themen 8
J Datentypen Array in enum, ?? Wozu ?? Java Basics - Anfänger-Themen 3
S OOP Durch ein Enum iterieren... Java Basics - Anfänger-Themen 47
K Datentypen enum und liste Java Basics - Anfänger-Themen 7
S String - Enum Java Basics - Anfänger-Themen 3
H Eine enum switchen? Java Basics - Anfänger-Themen 7
G enum für Typsicherheit Java Basics - Anfänger-Themen 9
J class, interface, or enum expected - finde Fehler nicht. Java Basics - Anfänger-Themen 4
J OOP enum Java Basics - Anfänger-Themen 2
O Problem (Enum) Java Basics - Anfänger-Themen 14
S Enum als Index Java Basics - Anfänger-Themen 5
H Enum --> int ?? Java Basics - Anfänger-Themen 3
tanja enum in java Java Basics - Anfänger-Themen 3
D class, interface or enum expected Java Basics - Anfänger-Themen 2
A OOP Übergabe eines Wertes an den enum Konstruktor Java Basics - Anfänger-Themen 12
T Simple Enum Fragen Java Basics - Anfänger-Themen 6
J class, interface, or enum expected Java Basics - Anfänger-Themen 4
R Enum und dann setter Setzen? Java Basics - Anfänger-Themen 44

Ähnliche Java Themen

Neue Themen


Oben