La enumeración es una forma estandarizada de parámetros, por lo que puede reemplazar explícitamente los conceptos difusos que los parámetros de tipo int pueden causar. La enumeración es como una clase y una matriz sin considerar el desajuste de tipo.
Como una nueva palabra clave presentada por Sun, Enum parece una clase especial. También puede tener sus propias variables, definir sus propios métodos e implementar una o más interfaces. Cuando declaramos un tipo de enumación, debemos notar que el tipo enume tiene algunas características de la siguiente manera.
1. No puede tener un constructor público, y hacerlo puede garantizar que el código del cliente no pueda crear una nueva instancia de ENUM.
2. Todos los valores de Enum son públicos, estáticos, finales. Tenga en cuenta que esto es solo para valores de enum. Podemos definir cualquier otra variable que no sea enumer de cualquier tipo al igual que la definición de variables en las clases ordinarias. Estas variables se pueden hacer con cualquier modificador que desee.
3. Enum implementa la interfaz Java.lang.com Parable de forma predeterminada.
4. Enum anula el método ToString, por lo que si llamamos color.blue.ToString (), devolvemos la cadena "azul" de forma predeterminada.
5. Enum proporciona un valor de método, que corresponde al método ToString. Llamar valor de valor ("azul") devolverá color.blue. Por lo tanto, debemos prestar atención a esto al reescribir el método de tostración nosotros mismos. En otras palabras, debemos reescribir el valor del método en consecuencia.
6. Enum también proporciona el método de valores, que le permite atravesar fácilmente todos los valores de ENUM.
7. Enum también tiene un método oridinal, que devuelve el orden de los valores de Enum en la clase Enum. Esta orden depende de la declaración de valor de la orden de enum. Aquí color.red.ordinal () Devuelve 0.
Después de comprender estas características básicas, veamos cómo usarlas.
1. Asegurar todos los valores de Enum. Sabiendo que hay métodos de valores, podemos usar el bucle foreach para atravesar los valores de enum de una manera familiar.
para (color c: color.values ()) System.out.println ("Buscar valor:" + C);2. Definir métodos y variables en enum. Por ejemplo, podemos agregar un método para colorear para devolver aleatoriamente un color.
Color en enum público {rojo, verde, azul; privado static int number = color.values (). Longitud; Public Static Color getRandomColor () {long Random = System.CurrentTimemillis () % %; Switch ((int) Random) {Case 0: return color.red; Caso 1: devolver color.green; Caso 2: devuelve color.blue; Valor predeterminado: return color.red; }}}Se puede ver que no hay diferencia entre definir variables y métodos en tipos de enumes y definir métodos y variables en clases ordinarias. Lo único a tener en cuenta es que las definiciones de variables y de métodos deben colocarse después de todas las definiciones de valor de Enum, de lo contrario, el compilador dará un error.
3. Anular tostring, valor de método
Ya sabemos que ENUM proporciona métodos como tostring, valor de, etc. Muchas veces necesitamos anular el método de tostración predeterminado, entonces, ¿cómo hacemos enum? De hecho, esto no es diferente de anular un método de tostración con una clase ordinaria.
…. public String toString () {switch (this) {case rojo: return "color.red"; Caso verde: return "color.green"; Caso azul: return "color.blue"; Valor predeterminado: return "Color sin conocimiento"; }}….En este momento, podemos ver que el impreso con el código de recorrido anterior es
Color.Red Color.Green Color.Blue
En cambio
Azul rojo verde.
Puedes ver que ToString está realmente sobrescribida. En términos generales, al sobrescribir la tostración, también debemos sobrescribir el valor del método para mantener su consistencia.
4. Usando constructores
Aunque ENUM no puede tener un constructor público, aún podemos definir el constructor privado y usarlo dentro del Enum. Usemos el ejemplo de color.
Color en enum público {rojo ("esto es rojo"), verde ("esto es verde"), azul ("Esto es azul"); Cadena privada descifrar; Color (string desc) {this.desc =} public String getDesc () {return this.desc; }}Aquí proporcionamos una información de explicación para cada color y luego definimos un constructor para aceptar esta información de explicación.
Cabe señalar que el constructor no puede ser público o protegido, para asegurarse de que el constructor solo pueda usarse internamente, y el código del cliente no puede nueva una instancia del valor enum. Esto también es completamente razonable, porque sabemos que los valores de ENUM son solo constantes de la final estática pública.
5. Implementar interfaces específicas
Ya sabemos que Enum puede definir variables y métodos. Necesita implementar una interfaz e implementar una interfaz como la clase ordinaria. No daré un ejemplo aquí.
6. Defina su propio método de valores de enumeración.
Vimos anteriormente que se pueden definir algunos métodos para enum, pero de hecho incluso podemos definir métodos para cada valor de enum. De esta manera, nuestro ejemplo anterior de anular la tostración puede reescribirse así.
public enum color {rojo {public string toString () {return "color.red"; }}, Verde {public String toString () {return "color.green"; }}, Azul {public String toString () {return "color.blue"; }}; }Hablando lógicamente, esto es más claro que el método de tostración original que proporciona uno "global".
En general, Enum, como tipo completamente nuevo, espera ayudar a los programadores a escribir códigos que sean más simples y más fáciles de entender.
Las personas generalmente no necesitan usar algunas características avanzadas de Enum, de lo contrario irá en contra de la intención original simple y fácil de entender.
El artículo anterior habla brevemente sobre el papel y los beneficios de la enumeración de Jave es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.