Post on 07-Oct-2018
Programación Orientada a Objetos
Enumerados
Ing. Julio Ernesto Carreño Vargas MsC.
contribución: María Consuelo Franky
Programación Orientada a Objetos 3
Concepto de Enumerados
Tipo declarado por el programador que
consiste de un conjunto de constantes
Justificación
Los enumerados mejoran la legibilidad del
programa
Los enumerados hacen más fácil de mantener
los programas
Programación Orientada a Objetos 4
Crear Enumerados
Se utiliza la palabra reservada enum seguida
del nombre del enumerado y las constantes
Estado
;
Estado
Programación Orientada a Objetos 5
Estándar de Nombres para
Enumerados
Por estándar se acostumbra que los
nombres de las constantes en los
enumerados se escriban en mayúscula
Programación Orientada a Objetos 6
;
Ejemplo uso de Enumerados (1)
Observe que el
atributo estado se
declara del tipo
Enumerado Estado
Observe como se
utiliza ahora el
enumerado en el
código
Programación Orientada a Objetos 7
Enumerados definidos en una clase separada
Por lo general los enumerados se colocan
en su propio archivo de código separado
los get no son necesarios
Programación Orientada a Objetos 8
Características de los Enumerados
Los enumerados tienen las siguientes
restricciones:
Son final
Son constantes estáticas (static)
No se pueden crear instancias (con new) de dichos
enumerados
La clase que los declara puede tener constructores
Constructores sobrecargados y pueden especificar
parámetros
Programación Orientada a Objetos 9
Ejemplo uso de Enumerados (2) La clase producto tiene ahora una referencia
al enum EstadoProducto
Programación Orientada a Objetos 12
Redefinición del toString de un Enumerado para controlar la impresión
de los valores de las constantes
Impimir el valor de un atributo de tipo enumerado:
Ejemplo que redefine toString() para mejorar impresión:
public enum Color {
WHITE, BLACK, RED, YELLOW, BLUE;
}
public enum Color {
WHITE, BLACK, RED, YELLOW, BLUE;
public String toString() {
//only capitalize the first letter
String s = super.toString();
return s.substring(0, 1) + s.substring(1).toLowerCase();
}
// imprimira Red White, etc...
}
Uso: Rectangulo tiene un atributo: private Color fondo; Rectangulo r = new Rectangulo(10, 20, Color.RED);
. . .
if (r.getFondo() == Color.RED) { . . .}
. . .
System.out.println("el fondo es de color " + r.getFondo());
// imprime RED
Programación Orientada a Objetos 13
public enum Color {
WHITE(21), BLACK(22), RED(23), YELLOW(24), BLUE(25);
private int code;
private Color(int c) {
code = c;
}
public int getCode() {
return code;
}
}
Uso: Rectangulo tiene un atributo: private Color fondo; Rectangulo r = new Rectangulo(10, 20, Color.RED);
System.out.println("el fondo es de color " + r.getFondo()
+ " cuyo codigo es " + r.getFondo().getCode());
Enumerado con atributos (información asociada a cada constante)