Statische vs. nicht statische Aufzählung in Java
Dieser Artikel stellt enum
in Java und den Unterschied zwischen statischen und nicht-statischen enums
vor.
Einführung in Enum
in Java
In Java ist ein enum
ein Datentyp, den ein Programmierer verwenden kann, um mehrere konstante Variablen zu erstellen. Im Allgemeinen verwendet der Programmierer das Schlüsselwort final
, um die konstante Variable in Java zu deklarieren, aber Programmierer können alle finalen Variablen gleichzeitig deklarieren und ihren Anfangswert mit einem enum
zuweisen.
Syntax zur Verwendung von Enum
:
public enum EnumA { En1, En2 }
public class demo {
public static void main(String[] args) {
EnumA test = EnumA.En1;
}
}
In der obigen Syntax können Benutzer sehen, dass EnumA
die konstanten Variablen En1
und En2
enthält und wie wir innerhalb der statischen Methode der Klasse demo
auf sie zugegriffen haben.
Statisch vs. nicht-statisches Enum
in Java
Nun unterscheiden wir das mit dem Schlüsselwort static
und ohne das Schlüsselwort static
deklarierte Enum
. Benutzer können sich den folgenden Code ansehen, um zu lernen, wie man das Enum
mit und ohne das Schlüsselwort static
deklariert.
Syntax von Enum
mit und ohne Schlüsselwort Static
:
public class demo {
public static enum EnumA { En1, En2 }
public enum EnumB { En3, En4 }
public static void main(String[] args) {
EnumA test1 = EnumA.En1;
EnumB test2 = EnumB.En3;
}
}
In der obigen Syntax können Benutzer sehen, dass EnumA
mit dem Schlüsselwort static
und EnumB
ohne das Schlüsselwort static
definiert ist. Wir greifen jedoch auf die beiden Konstanten von Enum
auf die gleiche Weise zu, was zu dem Schluss führt, dass in Java alle Enum
statisch sind, selbst wenn Benutzer bei der Definition das Schlüsselwort static
verwenden.
In Java können wir nur auf die statischen Member zugreifen und statische Methoden einer Klasse ohne Objektreferenz innerhalb der Methode public static
ausführen.
Außerdem können Entwickler beobachten, dass wir innerhalb der Methode public static
auf die Variablen von EnumA
und EnumB
zugreifen, ohne auf ein Objekt seiner Klasse zu verweisen, was bedeutet, dass Enum
, das ohne ein static
-Schlüsselwort deklariert wird, standardmäßig ebenfalls statisch ist .
Der Artikel kommt also zu dem Schluss, dass selbst wenn Programmierer das Schlüsselwort static
bei der Definition von Enum
nicht verwenden, es standardmäßig statisch ist.