TIPOS ENUMERADOS

Una práctica habitual en programación es tener un número finito de nombres simbólicos que representan los valores de un atributo. Por ejemplo, sería posible crear un conjunto de símbolos que representasen los palos de una baraja de cartas: PICAS, CORAZONES, TREBOLES y DIAMANTES. Esta forma de representación se suele denominar tipo enumerado.

Java SE incluye una modalidad de tipos enumerados que mantiene la seguridad de los tipos (typesafe enum). En el siguiente ejemplo se muestra un tipo enumerado para representar los palos de una baraja de cartas. Piense en el tipo Palo como en una clase con un conjunto finito de valores que reciben los nombres simbólicos incluidos en la definición del tipo. Por ejemplo, Palo.PICAS es del tipo Palo.

El siguiente código muestra cómo la clase NaipeBaraja utiliza el tipo Palo para el tipo de datos del atributo palo.

 

Veamos otro ejemplo, queremos definir los diferentes estados civiles que puede tener una persona.

Al crear la clase en el atributo estadoCivil indicaremos que es del tipo «EstadoCivil», por lo que solo podrá adquirir los valores tipificados en la clase Enum

 

Para crear el objeto siempre tenemos que definir cual de los valores de las opciones disponible tomara el atributo:

TIPOS ENUMERADOS AVANZADOS

Existe otra forma de trabajar con tipos Enumerados para facilitar la lectura al usuario, dado que en los ejempos anteriores mostraria el nombre simbolico, el cual no siempre será lo que queramos que se imprima al llamarlo.

El siguiente código muestra una versión mejorada de una clase Enumerada con un atributo alias y un método ver. Observe cómo se oculta la información de la forma adecuada con el atributo “private” y el método de acceso “public”.