Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Dominando Enums en Java: Guía completa de Enums y Clases Enum

Enums en Java

En este tutorial, aprenderemos sobre enums en Java. Aprenderemos a crear y usar enums y clases enum con la ayuda de ejemplos.

En Java, un enum (abreviación de enumeración) es un tipo que tiene un conjunto fijo de valores constantes. Usamos la palabra clave enum para declarar enums. Por ejemplo,

 enum Tamanio { PEQUEÑO, MEDIANO, GRANDE, EXTRAGRANDE }

Aquí, hemos creado un enum llamado Tamanio. Contiene valores fijos PEQUEÑO, MEDIANO, GRANDE y EXTRAGRANDE.

Estos valores dentro de las llaves se llaman constantes de enum (valores).

Nota: Las constantes de enum se representan usualmente en mayúsculas.

Ejemplo 1: Enum en Java

 enum Tamanio { PEQUEÑO, MEDIANO, GRANDE, EXTRAGRANDE } class Main { public static void main(String[] args) { System.out.println(Tamanio.PEQUEÑO); System.out.println(Tamanio.MEDIANO); } }

Salida

 PEQUEÑO MEDIANO

Como vemos en el ejemplo anterior, usamos el nombre del enum para acceder a los valores constantes.

También podemos crear variables de tipos enum. Por ejemplo,

 Tamanio tamanioPizza;

Aquí, tamanioPizza es una variable del tipo Tamanio. Solo puede asignarse con 4 valores.

 tamanioPizza = Tamanio.PEQUEÑO; tamanioPizza = Tamanio.MEDIANO; tamanioPizza = Tamanio.GRANDE; tamanioPizza = Tamanio.EXTRAGRANDE;

Ejemplo 2: Enum en Java con la sentencia switch

 enum Tamanio { PEQUEÑO, MEDIANO, GRANDE, EXTRAGRANDE } class Test { Tamanio tamanioPizza; public Test(Tamanio tamanioPizza) { this.tamanioPizza = tamanioPizza; } public void ordenarPizza() { switch(tamanioPizza) { case PEQUEÑO: System.out.println("Ordené una pizza tamaño pequeño."); break; case MEDIANO: System.out.println("Ordené una pizza tamaño mediano."); break; default: System.out.println("No sé cuál ordenar."); break; } } } class Main { public static void main(String[] args) { Test t1 = new Test(Tamanio.MEDIANO); t1.ordenarPizza(); } }

Salida

 Ordené una pizza tamaño mediano.

En el programa anterior, hemos creado un tipo enum Tamanio. Luego declaramos una variable tamanioPizza del tipo Tamanio.

Aquí, la variable tamanioPizza solo puede asignarse con 4 valores (PEQUEÑO, MEDIANO, GRANDE, EXTRAGRANDE).

Observa la sentencia,

 Test t1 = new Test(Tamanio.MEDIANO);

Llamará al constructor Test() dentro de la clase Test. Ahora, la variable tamanioPizza se asigna con la constante MEDIANO.

Basado en el valor, uno de los casos de la sentencia switch se ejecuta.


Clase Enum en Java

En Java, los tipos enum se consideran un tipo especial de clase. Fue introducido con el lanzamiento de Java 5.

Una clase enum puede incluir métodos y campos como las clases regulares.

 enum Tamanio { constante1, constante2, …, constanteN; // métodos y campos }

Cuando creamos una clase enum, el compilador creará instancias (objetos) de cada constante de enum. Además, todas las constantes de enum son siempre public static final por defecto.


Ejemplo 3: Clase Enum en Java

 enum Tamanio{ PEQUEÑO, MEDIANO, GRANDE, EXTRAGRANDE; public String getTamanio() { // this se referirá al objeto PEQUEÑO switch(this) { case PEQUEÑO: return "pequeño"; case MEDIANO: return "mediano"; case GRANDE: return "grande"; case EXTRAGRANDE: return "extra grande"; default: return null; } } public static void main(String[] args) { // llamar getTamanio() // usando el objeto PEQUEÑO System.out.println("El tamaño de la pizza es " + Tamanio.PEQUEÑO.getTamanio()); } }

Salida

 El tamaño de la pizza es pequeño

En el ejemplo anterior, hemos creado una clase enum Tamanio. Tiene cuatro constantes PEQUEÑO, MEDIANO, GRANDE y EXTRAGRANDE.

Dado que Tamanio es una clase enum, el compilador crea automáticamente instancias para cada constante de enum.

Aquí dentro del método main(), hemos usado la instancia PEQUEÑO para llamar al método getTamanio().

Nota: Como las clases regulares, una clase enum también puede incluir constructores. Para aprender más, visita Constructor de enum en Java.

Métodos de la clase Enum en Java

Hay algunos métodos predefinidos en las clases enum que están disponibles para uso.

1. ordinal() de Enum en Java

El método ordinal() retorna la posición de una constante de enum. Por ejemplo,

 ordinal(PEQUEÑO) // retorna 0

2. compareTo() de Enum

El método compareTo() compara las constantes de enum basándose en su valor ordinal. Por ejemplo,

 Tamanio.PEQUEÑO.compareTo(Tamanio.MEDIANO) // retorna ordinal(PEQUEÑO) - ordinal(MEDIANO)

3. toString() de Enum

El método toString() retorna la representación en string de las constantes de enum. Por ejemplo,

 PEQUEÑO.toString() // retorna "PEQUEÑO"

4. name() de Enum

El método name() retorna el nombre definido de una constante de enum en forma de string. El valor retornado por name() es final. Por ejemplo,

 name(PEQUEÑO) // retorna "PEQUEÑO"

5. valueOf() de Enum en Java

El método valueOf() toma un string y retorna una constante de enum que tiene el mismo nombre de string. Por ejemplo,

 Tamanio.valueOf("PEQUEÑO") // retorna constante PEQUEÑO.

6. values() de Enum

El método values() retorna un array de tipo enum conteniendo todas las constantes de enum. Por ejemplo,

 Tamanio[] arrayEnum = Tamanio.values();

¿Por qué Enums en Java?

En Java, enum se introdujo para reemplazar el uso de constantes int.

Supongamos que hemos usado una colección de constantes int.

 class Tamanio { public final static int PEQUEÑO = 1; public final static int MEDIANO = 2; public final static int GRANDE = 3; public final static int EXTRAGRANDE = 4; }

Aquí, el problema surge si imprimimos las constantes. Es porque solo se imprime el número lo cual podría no ser útil.

Así que, en lugar de usar constantes int, simplemente podemos usar enums. Por ejemplo,

 enum Tamanio { PEQUEÑO, MEDIANO, GRANDE, EXTRAGRANDE }

Esto hace nuestro código más intuitivo.

Además, enum proporciona seguridad de tipos en tiempo de compilación.

Si declaramos una variable del tipo Tamanio. Por ejemplo,

 Tamanio tamanio;

Aquí, se garantiza que la variable contendrá uno de los cuatro valores. Ahora, si intentamos pasar valores distintos a esos cuatro, el compilador generará un error.

Java

  1. Dominando enums en C: Definición, declaración y operaciones de banderas
  2. Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
  3. Comentarios en Java: Tipos, Uso y Mejores Prácticas
  4. Dominar el Bucle for Mejorado en Java: Sintaxis, Ejemplos y Mejores Prácticas
  5. Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
  6. Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
  7. Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
  8. Dominando Enums en Java: Guía completa de Enums y Clases Enum
  9. Constructores de Enum en Java explicados con ejemplo práctico
  10. Dominando representaciones String en Enums de Java
  11. Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada