Maison > Questions et réponses > le corps du texte
Je sais essentiellement comment utiliser l'énumération, mais je veux revenir à la source (discuter de l'essence)
Rejeter les réponses dogmatiques extraites de documents (le temps est important)
Vous recherchez une compréhension approfondie de l'énumération (au moins j'ai écrit beaucoup de code dans l'environnement de production actuel) !
Remarque : je ne suis pas un débutant en programmation, certains concepts de base ne nécessitent pas de vulgarisation scientifique
L'objet de discussion est l'énumération en Java (en fait l'énumération est un concept)
Plus précisément, nous discutons du mot-clé enum
高洛峰2017-05-17 10:03:51
peut être utilisé au lieu de définir des constantes de type, telles que le statut de la commande, le type de document, etc., pour garantir la sécurité du type.
Par exemple, si la classe String ordinaire est utilisée pour représenter le statut de la commande, l'appelant peut transmettre une chaîne qui n'est pas dans la plage d'état de la commande pour l'appelé. Ce type d'erreur est introuvable lors de l'étape de compilation
La classe d'énumération Java est essentiellement une implémentation d'un modèle à instances multiples, et le modèle singleton est un cas particulier de modèle à instances multiples
Les classes d'énumération ne peuvent pas être héritées. Par exemple, enumA extends enumB ne peut pas être utilisé
Une classe d'énumération avec des types internes afin d'implémenter l'interface Comparable
ringa_lee2017-05-17 10:03:51
Le chapitre 6 de Java efficace a une explication détaillée, vous pouvez la consulter
高洛峰2017-05-17 10:03:51
Vous pouvez simplement considérer enum comme un type int avec des informations de remarque.
漂亮男人2017-05-17 10:03:51
Je suis choqué par vos conditions, alors je vais juste vous faire part de mes réflexions personnelles
enum peut être considérée comme une classe spéciale qui contient des constantes accessibles et publiques. En fait, en tant que constantes accessibles et publiques, elles ont été analysées dans le pool de constantes pendant le processus de chargement de la classe. Enum permet uniquement aux utilisateurs d'y accéder à partir d'une sémantique. perspective. Facilite l'affichage de la signification des constantes lors de leur utilisation. Dans le même temps, cela facilite également la construction de constantes, en parcourant toutes les constantes d'un certain type, en les utilisant dans les instructions switch, etc.
習慣沉默2017-05-17 10:03:51
Cette question est trop vaste et difficile à répondre.
enum est essentiellement une classe qui hérite de java.lang.Enum et peut être utilisée dans des singletons et où les entrées doivent être limitées
PHP中文网2017-05-17 10:03:51
Permettez-moi d'abord de parler de ma compréhension personnelle, superficielle et subjective, et de donner quelques idées.
Je pense que le but de l'énumération est :
Fournir un moyen de gérer les constantes,
Un espace de noms.
ringa_lee2017-05-17 10:03:51
L'existence de l'énumération elle-même est destinée à résoudre le problème de lisibilité des constantes. Avant qu'il n'y ait pas d'énumération, pour marquer un état, le type int était souvent utilisé. La lisibilité de 1, 2 et ainsi de suite n'était pas très bonne, et a. une nouvelle constante a été ajoutée pour écrire une longue instruction, cette fonction a été ajoutée dans jdk5 pour résoudre cette série de problèmes. Son essence est une classe, mais lors de la création d'une énumération, elle générera automatiquement des valeurs(), ordinal() et d'autres méthodes, et prend en charge les instructions switch, couvrant les scénarios dans lesquels des constantes apparaîtront. Il est plus pratique à utiliser que de définir directement des constantes. .