Enum

questionKing

Neues Mitglied
Hey liebe Community,

ich stelle mir seit geraumer Zeit die Frage.
Wann wird denn eigentlich der Enum Konstruktor aufgerufen. Wird der das erste mal aufgerufen wenn ich Enum.Waiting z.b mache wird der Konstruktor dann für Waiting aufgerufen und der für Ingame erst wenn ich das erste mal Enum.Ingame mache oder wie ist das ?

Ich hoffe einer von euch kann mich aufklären.



-
Und da wäre noch eine Kleinigkeit wird der static Konstruktor erst nach dem ersten aufrufen der Klasse aufgerufen oder schon beim start der Application? und auch die static variablen z.b static int i = 5; wird das beim ersten aufrufen der Klasse erstellt oder wann ?
MfG
 

InfectedBytes

Top Contributor
Enums sind nur ein kleiner Compilertrick. Dieser wandelt sie in Klassen um, welche einen privaten Konstruktor haben. Die einzelnen Enum einträge sind dann nur public static final Attribute.
Dementsprechend werden die jeweiligen Konstruktor aufgerufen, wenn die Klasse zum ersten mal geladen wird.

Allgemein werden die statischen Sachen gemacht, wenn die jeweilige Klasse geladen wird. Aus effizienzgründen, lädt die JVM die Klassen erst, wenn sie gebraucht werden. D.h. kurz bevor du zum ersten Mal eine Instanz erzeugen willst oder irgendwelche statischen Methoden/Variablen benutzen willst, werden diese initialisiert.
 

questionKing

Neues Mitglied
hm aber ist es noch so das man eben bei einem privat konstruktor nicht instanzieren kann wie darf man das verstehen ? Kannst du das bitte noch einmal ausführlicher erklären mit dem compilertrick
 

InfectedBytes

Top Contributor
durch den privaten Konstruktor kann nur die Klasse selbst instanziieren.
Java:
public enum Test {
  A, B, C
}
wird zu
Java:
public class Test extends Enum {
  public static final Test A = new Test("A", 0);
  public static final Test B = new Test("B", 1);
  public static final Test C = new Test("C", 2);
  private Test(String name, int ordinal) {
    super(name, ordinal);
  }
  // ...
}
[/code=Java]
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Best Practice Generics mit Enum Allgemeine Java-Themen 3
Drachenbauer Wie kann ich einer existierenden Enum von außerhalb veränderte Werte zuweisen? Allgemeine Java-Themen 5
A Ist ein enum hier richtig? Enum toString() Methode. Allgemeine Java-Themen 1
E Eigenen "Aufzählungstyp" erstellen - mit enum ? Allgemeine Java-Themen 18
I Enum gegen Enum tauschen Allgemeine Java-Themen 1
F Enum-werte als Methoden-Parameter übergeben Allgemeine Java-Themen 6
Neumi5694 Interface Generics für Enum-Filterung verwenden Allgemeine Java-Themen 5
perlenfischer1984 TestNG - Enum testen Allgemeine Java-Themen 1
I Setzen und Lesen eines Objektes (Enum?) Allgemeine Java-Themen 10
F Enum und Klasseninhalt Allgemeine Java-Themen 1
K Enum mit switch Allgemeine Java-Themen 2
D Enum Kategorien Allgemeine Java-Themen 10
C Datentypen Enum-Werte Bestanteil von anderem Enum Allgemeine Java-Themen 8
M Enum austauschbar machen Allgemeine Java-Themen 3
Rudolf State Pattern als Enum? Allgemeine Java-Themen 10
E Klassen Enum überladen od. austauschbar machen? Allgemeine Java-Themen 2
EnHancEd[] kurze enum-Frage Allgemeine Java-Themen 4
X Java findet eine Enum Klasse nicht Allgemeine Java-Themen 2
A Dynamisches Enum? Allgemeine Java-Themen 2
E Wert von enum zur Laufzeit festlegen. Allgemeine Java-Themen 5
D Methode für generische enummap/enum Allgemeine Java-Themen 10
D Array oder Vector in Enum Deklarieren Allgemeine Java-Themen 3
L HashMap mit Enum Keys Allgemeine Java-Themen 3
G Enum mit Array Allgemeine Java-Themen 3
D Wie prüfen, ob ein String Teil eines Enum Types ist? Allgemeine Java-Themen 12
H2SO3- Enum mit Java 1.4 Allgemeine Java-Themen 6
S Erstes Enum bekommen? Allgemeine Java-Themen 2
M Verständnis enum - switch Allgemeine Java-Themen 2
R Java enum switch Allgemeine Java-Themen 11
S Enum-Class valueOf Function? Allgemeine Java-Themen 1
R Java enum Allgemeine Java-Themen 5
J Enum Problem: compiliert nicht mit Sun's compiler. Allgemeine Java-Themen 2
V Wie Enum an Funktion "übergeben" ? Allgemeine Java-Themen 4
N Java und Enum Allgemeine Java-Themen 3
GilbertGrape persistentes Enum oder Konstanten? Allgemeine Java-Themen 3
G enum Integer zuweisen Allgemeine Java-Themen 14
G class, interface, or enum exp? Allgemeine Java-Themen 2
P enum Allgemeine Java-Themen 7
S Java Enum und ordinal() Allgemeine Java-Themen 4
S Enum Fehler Allgemeine Java-Themen 17
C Enum-namespace ? Allgemeine Java-Themen 5
G Effizienz von enum vs. Konstanten Allgemeine Java-Themen 4
C enum und Vererbung Allgemeine Java-Themen 3
K Warunung und Fehler bei Enum.valueOf Allgemeine Java-Themen 2
C enum Strings mit punkt ? Allgemeine Java-Themen 3
J Enum in Java Allgemeine Java-Themen 19

Ähnliche Java Themen


Oben