2.17 TIPOS ENUMERADOS

 

Vamos a ver los tipos enumerados están relacionados con la clase Enum. Esta clase que viene en la API de Java permite crear objetos de tipo Enum o tipos enumerados.

Algunas veces surge la necesidad de almacenar una serie de valores en una variable y no queremos que un futuro se puedan almacenar más valores o modificar los valores ya existentes. Vamos a verlo mediante un ejemplo creamos un nuevo archivo llamado Uso_tallas y lo vamos a crear en el paquete por defecto. En esta clase vamos a crear una variable llamada String llamada talla:

public class Uso_tallas {

 

       public static void main(String[] args) {

           

             String talla;

           

             talla="Pequeña";

           

             talla="Grande";

 

       }

 

}

Y en un momento del código queremos que almacene la talla Pequeña, luego más adelante del código queremos que esa variable sea una talla Grande. Podemos sobreescribir la variable todas las veces que sea necesario. Pero si en un momento del código cambiamos la variable:

public class Uso_tallas {

       

    public static void main(String[] args) {

        

          String talla;

        

          talla="Pequeña";

        

          talla="Grande";

        

          talla="Rojo";

 

    }

 

}

Le hemos dado un color a la variable talla y no tiene mucho sentido porque rojo es un color no una talla. Ahí es donde surge la necesidad de crear una variable donde se pueda almacenar una serie de valores que tengan relación entre sí y  no permita insertar un valor que no tenga relación. Es aquí donde se utilizan los tipos enumerados. Los tipos enumerados es una variable tipo objeto enum donde podemos almacenar un grupo de valores y solo se podrá almacenar lo que declaremos y no podrán ser modificados.

El tipo enumerado lo hemos de declarar fuera del método main:

public class Uso_tallas {

   

    enum Talla {MINI, MEDIANO, GRANDE, MUY_GRANDE};

 

    public static void main(String[] args) {

        

 

    }

 

}

Una vez creado el tipo enumerado lo utilizamos de la siguiente forma:

Podemos utilizar el tipo enumerado así:


public class Uso_tallas {

   

    enum Talla {MINI, MEDIANO, GRANDE, MUY_GRANDE};

 

    public static void main(String[] args) {

        

          Talla s= Talla.MINI;

        

          Talla m=Talla.MEDIANO;

        

          Talla x=Talla.GRANDE;

        

          Talla xxl=Talla.MUY_GRANDE;

        

 

    }

 

}

Vamos a ver otro ejemplo en el que vamos a crear un tipo enumerado el cual estemos llamando a un constructor, y en ese constructor le pasamos un parámetro en la talla si es mediana o grande. y después mediante un método Setter y Getter por un lado la abreviatura s a la talla mini, la talla m a la talla mediana con un método Setter y con un método Getter que nos devuelva la talla dependiendo de la abreviatura.


public class Uso_tallas {

   

    enum Talla{

        

          MINI("S"), MEDIANO("M"), GRANDE("L"), MUY_GRANDE("XL");

        

          private Talla(String abreviatura) {

               

                 this.abreviatura=abreviatura;

          }

        

          private String abreviatura;

    }

 

    public static void main(String[] args) {

        

 

    }

 

}

Ahora nos creamos un método Getter que nos devuelva la talla:

    public String dameAbreviatura() {

       

        return abreviatura;

    }

Y ahora en el método main le vamos a indicar al usuario que introduzca el valor de la talla por teclado para eso hemos de importar la clase Scanner:

import java.util.Scanner;

Y escribimos lo siguiente:

Scanner sc=new Scanner(System.in);

       

        System.out.println("Escribe la talla: MINI, MEDIANO, GRANDE, MUY GRANDE");

      

        String inserta_talla=sc.next().toUpperCase();

      

        Talla la_talla=Enum.valueOf(Talla.class, inserta_talla);

      

        System.out.println("Talla= "+la_talla);

      

        System.out.println("Abreviatura "+la_talla.dameAbreviatura());

Creamos la variable inserta_talla y le añadimos la función toUpperCase para que nos reconozca si introducimos la talla mayúscula o minúscula.

El primer System.out nos va a imprimir lo que hemos introducido por teclado y el segundo System.out va a llamar al método dameAbreviatura que nos indicará la abreviatura que hayamos escrito. Si ejecutamos:


2.16 MODIFICADORES DE ACCESO << >> 3.1 INTERFACES







No hay comentarios:

Publicar un comentario