Tecnología

Inicio

Java 1.5 Enumeración Tutorial

Java 1.5 Enumeración Tutorial


El tipo de enumeración es una nueva característica en el lenguaje Java 1.5.0, diseñado para solucionar las deficiencias en la forma en valores enumerados se manejaron en las versiones anteriores de Java. En su forma más básica, que adopta una estructura similar a la del tipo de enumeración en lenguajes basados ​​en C; sin embargo, es mucho más potente.

El objeto de enumeración

Antes de pasar a las enumeraciones a sí mismos, lo mejor es para ilustrar el problema de que el nuevo tipo de enumeración fue creado para resolver. Considere la siguiente clase:

public class {Calendario
int díadelasemana
IR

public static final int Lunes = 0
IR
public static final int Martes = 1
IR
public static final int Miércoles 2 =
IR
....

setDayOfWeek anular (fecha int) {...}
}

Esta clase almacena el día de la semana usando un conjunto de constantes enumeradas con valores enteros de 0-7, cada uno correspondiente a un día diferente, y se espera que otros desarrolladores que utilizan esta clase va a utilizar esas constantes cuando se utiliza la clase. Sin embargo, nada hace cumplir esto. Otras clases podrían ignorar las constantes, utilizar sus propias constantes (que comienza con el domingo, tal vez) por error, o incluso, como resultado de un error, pase en \ "8 \" como un día de la semana, permitiendo potencialmente un error de propagarse más tarde de lo que debería. También es particularmente informativo en la depuración, ya que el valor de \ "díadelasemana \" se imprimirá en la consola o de un depurador simplemente como un número entero que tiene que ser buscado en el código fuente. Las enumeraciones están diseñados para abordar todas estas cuestiones. La siguiente es la misma clase, utilizando el tipo de enumeración en lugar de un conjunto de constantes enumeradas:

public class {Calendario
Día public enum {Lunes, martes, miércoles, jueves, viernes, sábado, domingo
}
día díadelasemana

setDayOfWeek vacío (Día D) {...}
}

El código de seguridad, además de ser más limpio y más fácil de leer, se dirige a todos los problemas enumerados anteriormente con constantes enumeradas. Los clientes están obligados a usar sólo los valores enumerados a sí mismos, y los depuradores mostrar el nombre del valor enumerado y no es un entero. Además, enumeraciones tienen una serie de otras ventajas. Por ejemplo, se pueden utilizar con la nueva característica para-cada bucle que se añadió en Java 1.5.0. La clase Calendar podría incluir método como este:

printDays void () {
para (día D: Day.values ​​()) {
System.out.println ( "Hoy en día es" + d)
IR
}
}

Este método va a iterar a través de todos los días e imprimir sus nombres.

Las enumeraciones son clases en su propio derecho, lo que significa que pueden tener sus propios métodos y constructores. Considere la siguiente enumeración, que almacena los personajes en una obra, lo que permite con una breve descripción de ese carácter:

Carácter public enum {
MYSTERIOUS_MAN ( "Alto, moreno y guapo."),
MYSTERIOUS_WOMAN ( "Con un vestido rojo."),
Protagonista ( "Dashing y heroica."),
ANTAGONISTA ( "La exudación del mal.");

Descripción string
IR

Carácter (descripción String) {
this.description = Descripción
IR
}
}