1. La diferencia entre enumeración y constantes estáticas
Cuando se trata de enumeración, primero pensamos en cómo es diferente de las constantes modificadas por la cadena final estática pública.
Citaré dos ventajas de enumeración:
1. Asegúrese de que el tipo de seguridad: la persona que llama no puede pasar un valor int o de cadena a voluntad;
2. El código es muy legible;
Por ejemplo:
En la programación real, a menudo hay tales "conjuntos de datos", cuyos valores son estables en el programa, y los elementos en los "conjuntos de datos" son limitados. Por ejemplo, los cuatro elementos de datos de primavera, verano, otoño e invierno forman el "conjunto de datos" de las cuatro estaciones.
Ha escrito el método Get (temporada de cadenas), y el tipo que ingresa solo puede ser tipo cadena, y la cadena solo puede ser (primavera, verano, otoño, invierno).
Esta vez. Escribes cuatro constantes de cadena
clase pública común {public static static string spring = "spring"; Public static final String Season = "Summer"; Public static final String Summer = "Autumn"; Cadena final estática pública Autumn = "Winter";}Poner Get (Common. temporada) en el método GET es poner "primavera" en él, pero en este momento encontrarás que hay un peligro oculto aquí. Obtiene (temporada de cuerdas), después de todo, se coloca el tipo de cadena. Si un nuevo colega o un colega desinformado no sabe que solo puede poner "primavera, verano, otoño e invierno" en este método. Pone una cadena como get ("xiaoxiao"). En este momento, no informará un error durante el período de compilación. Solo después de correr, encontrará que está mal.
Para evitar los peligros ocultos anteriores, aparece la enumeración
Public Enum Season {Spring ("Spring"), Summer ("Summer"), Autumn ("Autumn"), Invierno ("Invierno"); ....}En este momento, modificamos la transferencia de parámetros del método GET y lo cambiamos para obtener (temporada de temporada). En este momento, agregamos GET (Sazone.spring), lo que puede garantizar que solo pasen unos pocos parámetros.
2. Comprender la enumeración
En primer lugar, debemos ser claros. De hecho, la enumeración también es una clase de clase. Escribiré una enumación para entender.
// tratamos a enums como una temporada pública de clase común {primavera (1, "primavera"), verano (2, "verano"), otoño (3, "otoño"), invierno (4, "invierno"); // El último aquí debe ser un punto y coma, de lo contrario, se informará un error/ *Podemos entenderlo como *Public Static Final Season Primavera = nueva temporada (1, primavera); *Pública temporada final estática verano = nueva temporada (2, verano); *Public Static Final temporada otoño = nueva temporada (3, otoño); *Public Static Final Season Invierno = nueva temporada (4, invierno); * Dado que es un objeto, es fácil de entender a continuación*//** 1. Hay dos parámetros en el objeto anterior, por lo que debe haber un constructor de este tipo a continuación* 2. Esto es privado, porque no puede ser un objeto nuevo*/ temporada privada (código int, nombre de cadena) {this.name = name; this.code = código; } // atributos del nombre de cadena privada de objeto; Código intivate int; // Métodos para obtener propiedades del objeto String public getName () {return this.name; } public String getCode () {return this.name; } // Obtenga el objeto a través del código, podemos obtener otras propiedades del objeto Public Static Season Decode (int Code) {temporada temporada = null; para (Tipo de temporada: temporada.values ()) {if (type.code == código) {sempenticación = type; romper; }} temporada de retorno; } // Re-ToString Method public String ToString () {return this.name; }}El ejemplo anterior explica muy bien la enumeración. No es diferente de las clases ordinarias. Simplemente usa otra forma de crear varios objetos con atributos. Esto también requiere tal constructor con atributos, y eso es todo.
Estas son algunas de las características de la enumeración:
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. La enumeración no puede heredar otras clases porque hereda java.lang.enum de forma predeterminada.
3. La dirección de valor constante es única, y puede usar == para compararla directamente, y el rendimiento mejorará.
4. Enum también proporciona el método de valores, que le permite atravesar fácilmente todos los valores de ENUM.
5. Enum también tiene un método oridinal, que devuelve el orden de los valores de Enum en la clase Enum, que depende del orden de la declaración de valor enum.
3. Uso común de enumeración
El primer tipo: la aplicación Switch
Cree una enumeración primero:
public enum común {insertar, modificar, eliminar} // Debido a que este es un objeto sin parámetros, se puede utilizar el constructor predeterminado del sistema. No hay necesidad de escribir atributos y métodos.Escribir código de implementación
clase pública CommonUtils {public static void getType (común común) {común c = común; Switch (c) {Case Insert: System.out.println ("Insertar operación"); romper; Modify de casos: System.out.println ("Configurar operación"); romper; Delete de casos: System.out.println ("Eliminar operación"); romper; }} public static void main (string [] args) {getType (común.delete); // Salida de fondo: Eliminar operación}}El segundo uso es obtener el valor de valor a través del valor clave para obtener otros valores
Clase de enumeración
Public Enum Season {Spring (1, "Primavera", "Spring Kite Flying in Spring"), Summer (2, "Summer", "Swimming in Summer"), Autumn (3, "Autumno", "Outumn Outing in Autumn"), invierno (4, "Invierno", "Invierno" de la temporada (intento int, name, cadena, cadena) {this.code = this.name = name; this.bz = bz; intiT; intent; Nombre;Clase de prueba
De acuerdo, escribiré mucho y conoceré más en profundidad si lo necesito en el futuro. Gracias por su apoyo a Wulin.com.