Hasta antes de la aparición de Java 5, para poder representar determinados valores constantes o tipos de datos enumerados, usualmente teníamosque recurrir a interfaces, ya que estas nos permiten definir valores constantes, estáticos y públicos que pueden ser referenciados desde cualquier sección de código.
Sin embargo, para los amantes de un código limpio (como yo xD), esta solución no convence ya que no es el objetivo de una interface (o de una clase si es que es utilizada para este propósito) el ser un contenedor de constantes.
Afortunadamente para nosotros, desde la versión 5 de Java se incluyeron los Enums (o enumeraciones). Los Enums son objetos especiales de Java (como los arreglos) que sirven como tipos de datos que almacenan un conjunto fijo de valores y justamente resuelven el problema de tener constantes desperdigadas en interfaces y clases.
Una enumeración, en su forma más básica, se define de la siguiente manera:
enum DireccionesBrujula{ NORTE, OESTE, SUR, ESTE }
En una clase Barco podría ser útil la dirección que se está cursando. Entonces la enumeración se usaría de la siguiente manera:
class Barco{
DireccionBrujula curso;
}
Y para asignarle un valor a la enumeración, se deben usar cualquiera de los valores constantes que hemos definido. Por ejemplo:
curso = DireccionBrujula.NORTE;
case NORTE:
System.out.println("Estamos en la dirección correcta");
break;
case SUR:
System.out.println("¡Estamos en la dirección contraria!");
break;
default:
System.out.println("Estamos perdidos...");
break;
}
Otro punto que debemos tener en cuenta es que un Enum puede ser definido dentro o fuera de una clase, y de acuerdo a esto cambia la forma en la que se acceden a sus constantes.
class Barco{
enum DireccionesBrujula{ NORTE, OESTE, SUR, ESTE }
class Barco{
enum DireccionesBrujula{ NORTE, OESTE, SUR, ESTE }
DireccionesBrujula curso;
}
Si la enumeración esta definida de esta manera, entonces la forma de acceder a sus constantes desde fuera de la clase Barco (siempre y cuando los modificadores de acceso nos lo permitan) sería:
DireccionesBrujula direccion = Barco.DireccionesBrujula.NORTE;
Pero con lo mostrado hasta ahora los Enums pueden parecer unos simples tipos de datos para representación de constantes, sin embargo el poder verdadero de estos se aprovecha cuando se le definen variables de instancia, constructores y métodos. Sin embargo no quiero hacer este post muy largo así que lo dejaré para una segunda parte.
Si la enumeración esta definida de esta manera, entonces la forma de acceder a sus constantes desde fuera de la clase Barco (siempre y cuando los modificadores de acceso nos lo permitan) sería:
DireccionesBrujula direccion = Barco.DireccionesBrujula.NORTE;
Pero con lo mostrado hasta ahora los Enums pueden parecer unos simples tipos de datos para representación de constantes, sin embargo el poder verdadero de estos se aprovecha cuando se le definen variables de instancia, constructores y métodos. Sin embargo no quiero hacer este post muy largo así que lo dejaré para una segunda parte.
3 comments
y la segunda parte? La verdad bastante interesante tu blog, me imagino que por el trabajo ni tiempo como para ser más constante con los posts, pero la mayoría muy útiles e interesantes.
ReplyYo quiero "iniciarme" como desarrollador en Java; tengo conocimiento empírico del lenguaje por haber hecho algunas pequeñas aplicaciones usando swing y algunas web, pero la teoría es casi nula (recién ando leyendo algunas especificaciones del lenguaje y entendiendo algunas cosas que antes usaba por repetición). Qué opinión te merece la adquisión de Sun por parte de Oracle? Las certificaciones van ya cambiando de nombre y todo? Qué tan necesario es certificarse?
Hola Kryz, gracias por la visita :D. Este post no lo hice yo, sino un colaborador que esperemos se anime retomar el blog. Tienes razón en lo que soy un poco inconstante con esto del blog, pero prometo retomarlo apenas encuentre un poquito más de tiempo. Saludos!
ReplyA ver si esta semana hago la segunda parte, aunque creo que ya no tengo permisos de publicación xD
ReplyPublicar un comentario