L'énumération est une forme standardisée de paramètres, afin que vous puissiez remplacer explicitement les concepts flous que les paramètres de type int peuvent provoquer. L'énumération est comme une classe et un tableau sans considérer le décalage de type.
En tant que nouveau mot-clé introduit par Sun, Enum ressemble à une classe spéciale. Il peut également avoir ses propres variables, définir ses propres méthodes et implémenter une ou plusieurs interfaces. Lorsque nous déclarons un type d'énumération, nous devons remarquer que le type d'énumération a certaines caractéristiques comme suit.
1. Il ne peut pas avoir de constructeur public, et cela peut garantir que le code client ne peut pas créer une nouvelle instance d'Enum.
2. Toutes les valeurs d'énumération sont publiques, statiques, finales. Notez que ce n'est que pour les valeurs d'énumération. Nous pouvons définir toutes les autres variables non énumérées de tout type, tout comme la définition des variables dans les classes ordinaires. Ces variables peuvent être faites avec n'importe quel modificateur que vous souhaitez.
3. ENUM implémente l'interface java.lang.comparable par défaut.
4. ENUM remplace la méthode TOSTRING, donc si nous appelons Color.Blue.ToString (), nous renvoyons la chaîne "bleu" par défaut.
5. ENUM fournit une valeur de la méthode, qui correspond à la méthode TOSTRING. L'appel de valeur ("bleu") renverra Color.Blue. Par conséquent, nous devons y prêter attention lors de la réécriture de la méthode de tostring nous-mêmes. En d'autres termes, nous devons réécrire la valeur de la méthode en conséquence.
6. Enum fournit également la méthode des valeurs, qui vous permet de traverser facilement toutes les valeurs d'énumération.
7. Enum a également une méthode oridinale, qui renvoie l'ordre des valeurs d'énumération dans la classe Enum. Cet ordre dépend de la déclaration de valeur d'énumération. Ici Color.red.Ordinal () Renvoie 0.
Après avoir compris ces fonctionnalités de base, voyons comment les utiliser.
1. Traverser toutes les valeurs d'énumération. Sachant qu'il existe des méthodes de valeurs, nous pouvons utiliser la boucle Foreach pour traverser les valeurs d'énumération d'une manière familière.
pour (Color C: Color.Values ()) System.out.println ("Rechercher la valeur:" + c);2. Définir les méthodes et les variables dans l'énumération. Par exemple, nous pouvons ajouter une méthode à la couleur pour renvoyer une couleur au hasard.
Couleur de l'énumération publique {rouge, vert, bleu; Numéro de statique statique privé = Color.Values (). Longueur; Couleur statique publique getrandomColor () {long aléomal = System.currentTimemillis ()% Numéro; commutateur ((int) aléatoire) {case 0: return color.red; Cas 1: Retour Color.Green; Cas 2: Retour Color.Blue; par défaut: return colore.red; }}}On peut voir qu'il n'y a pas de différence entre définir les variables et les méthodes dans les types d'énumération et la définition des méthodes et des variables dans les classes ordinaires. La seule chose à noter est que les définitions de variables et de méthode doivent être placées après toutes les définitions de valeur d'énumération, sinon le compilateur donnera une erreur.
3. Remplacez le tostring, valeur de la méthode
Nous savons déjà que ENUM fournit des méthodes telles que le TOSTRING, la valeur de la valeur, etc. Plusieurs fois, nous devons remplacer la méthode de ToString par défaut, alors comment faire Enum? En fait, cela n'est pas différent de la remplacement d'une méthode de tostring avec une classe ordinaire.
…. public String toString () {switch (this) {case rouge: return "colore.red"; Case vert: retour "Color.Green"; Case bleu: retour "Color.Blue"; Par défaut: renvoyez "une couleur unkn-le"; }}….Pour le moment, nous pouvons voir que celui imprimé avec le code de traversée précédent est
Color.red colore.green colore.blue
Plutôt
Bleu vert rouge.
Vous pouvez voir que Tostring est en effet écrasé. D'une manière générale, lors de l'écrasement de Tostring, nous devons également écraser la valeur de la méthode pour maintenir leur cohérence.
4. Utilisation de constructeurs
Bien que l'énume ne puisse pas avoir un constructeur public, nous pouvons toujours définir le constructeur privé et l'utiliser à l'intérieur de l'énumération. Utilisons l'exemple des couleurs.
Couleur de l'énumération publique {rouge ("This is Red"), vert ("This is Green"), bleu ("This is Blue"); String privé desc; Color (String desc) {this.desc =} public String getDesc () {return this.desc; }}Ici, nous fournissons des informations d'explication pour chaque couleur, puis définissons un constructeur pour accepter ces informations d'explication.
Il convient de noter que le constructeur ne peut pas être public ou protégé, afin de s'assurer que le constructeur ne peut être utilisé qu'en interne et que le code client ne peut pas nouveau une instance de la valeur d'énumération. Ceci est également tout à fait raisonnable, car nous savons que les valeurs d'énumération ne sont que des constantes de la finale statique publique.
5. Implémentez des interfaces spécifiques
Nous savons déjà que l'énum peut définir des variables et des méthodes. Il doit implémenter une interface et implémenter une interface comme la classe ordinaire. Je ne donnerai pas d'exemple ici.
6. Définissez votre propre méthode de valeur d'énumération.
Nous avons vu plus tôt que certaines méthodes peuvent être définies pour l'énumération, mais en fait, nous pouvons même définir des méthodes pour chaque valeur d'énumération. De cette façon, notre exemple précédent de tostring primordial peut être réécrit comme celui-ci.
Color de l'énumération publique {rouge {public String toString () {return "colore.red"; }}, Vert {public string toString () {return "colore.green"; }}, Bleu {public string toString () {return "colore.blue"; }}; }Logiquement parlant, ceci est plus clair que la méthode d'origine ToString qui fournit une méthode "globale".
En général, Enum, en tant que type complètement nouveau, espère aider les programmeurs à écrire des codes plus simples et plus faciles à comprendre.
Les gens n'ont généralement pas besoin d'utiliser certaines fonctionnalités avancées d'Enum, sinon elle ira à l'encontre de l'intention d'origine simple et facile à comprendre.
L'article ci-dessus parle brièvement du rôle et des avantages de l'énumération en saillie est tout le contenu que je partage avec vous. J'espère que cela pourra vous donner une référence et j'espère que vous pourrez soutenir Wulin.com plus.