Ir al contenido principal

Tipos ENUM en Java

Las enumeraciones es  una novedad que apareció en la versión 1.5 de java.

En si, un enum es una lista de constantes con nombre que viene a sustituir las clásicas propiedades final declaradas en la interfaces o las clases.

Con un enum definimos un nuevo tipo con un número de instancias discreta. Este nuevo tipo está limitado al listado de constantes que definimos en su declaración.

El ejemplo clásico son los días de la semana:

public enum DiaSemana{

      LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO
}

Cada constante representa un ejemplar único del tipo de la enumeración.
Esta característica, nos  permite realizar las comparaciones entre las referencias de tipo con el operador == y no es necesario utilizar el método equals().

   Ejemplo:

DiaSemana diaLibre = DiaSemana.SABADO;

if( diaLibre == DiaSemana.SABADO ){

   System.out.println("Hoy descansas");

}else{

//lo que se tenga que ejecutar en cualquier otro día

}

Es importante destacar que fundamentalmente se utiliza la sentencia switch para el control de flujo con los enum.

Ejemplo:

        DiaSemana diaLibre = DiaSemana.SABADO;

switch (diaLibre) {
case LUNES:
System.out.println("tu dia libre coincide con el lunes.");
break;

case MARTES:
System.out.println("tu dia libre coincide con el martes.");
break;

case MIERCOLES:
System.out.println("tu dia libre coincide con el miercoles.");
break;

case JUEVES:
System.out.println("tu dia libre coincide con el jueves.");
break;

case VIERNES:
System.out.println("tu dia libre coincide con el viernes.");
break;
case SABADO:
System.out.println("tu dia libre coincide con el sabado.");
break;

case DOMINGO:
System.out.println("tu dia libre coincide con el domingo.");
break;


}

En el caso de no cubrir  todos las casos es recomendado usar la opcion default.

No se puede poner el tipo en el case ya que provocaría errores.

Ejemplo: case DiaSemana.LUNES // da error de compilación

Ahora vamos a trabajar los métodos y de la herencia...

El super tipo de las  enumeraciones es Enum.

No pueden ser supertipo de otra enumeración o clase. En todo caso, pueden implementar interfaces.

Todo esto, lo iremos poniendo en valor a lo largo de este artículo.

Los métodos principales que heredan de Enum son:

- values(): retorna un array  con todos los ejemplares del tipo.

    Ejemplo:

    public class MainTestEnum {

   public static void main(String[] args) {

for(DiaSemana dia : DiaSemana.values() ) {

System.out.println(dia);
 }
   }

   }










Comentarios

Entradas populares de este blog

Fundamentos Interfaces en Java 8

Curso java 8 Fundamentos Interfaces Java: A diferencia de las interfaces anteriores a java 8, en las nuevas interfaces de esta versión se puede tener diversos tipos de métodos nuevos. A saber: default. static private 1.Métodos Default: En esencia son métodos opcionales que no son necesitan ser para la implementados en las clase que se adhieren al contrato de nuestra interfaz.  Como beneficio directo de esta característica nos encontramos con las manos libres en cierto modo para modificar nuestras interfaces sin temer que el código que ya ha implementado nuestra interfaz necesite modificación alguna. Es importante destacar que esto no nos debe condicionar para programar de forma intensiva métodos de este tipo ya que se consideran métodos de carácter excepcional. Sintaxis:  public interface nombre_interfaz{         default [tipo_retorno] nombre_metodo{                [cuerpo...

Teoría creacion de Beans en Spring

En una aplicación existen diversas clases organizadas en paquetes y estos en sus respectivos módulos. Si vamos a la base, nuestro elemento mínimo es la clase. Ésta clase está destinada a muchos objetivos, entre ellos, la creación de  de Beans. Los Beans en si mismos no son nada más que POJOs(Plain Old Java Objects) los cuales son clases que no dependen de ningún framework para su funcionamiento. Un Bean además de ser un POJO tiene unos elementos base que debe poseer: constructor por defecto(además otros que pueda poseer) campos para guardar la información métodos de establecimiento(getter y setter) Una vez que poseamos los Beans de nuestra aplicación nos surge un problema base: -El boilerplate code: secciones de código que son incluidas en múltiples lugares con pocas o incluso sin ninguna alteración. Bien, para nosotros, como programadores java, sabemos el incontable número de veces que tenemos que instanciar una y otra vez nuestros beans. Si vemos un ejemplo trad...