enumeraciones de Java
Enumeraciones Java
En este tutorial, aprenderemos sobre las enumeraciones en Java. Aprenderemos a crear y usar enumeraciones y clases de enumeración con la ayuda de ejemplos.
En Java, una enumeración (abreviatura de enumeración) es un tipo que tiene un conjunto fijo de valores constantes. Usamos el enum
palabra clave para declarar enumeraciones. Por ejemplo,
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
Aquí, hemos creado una enumeración llamada Size . Contiene valores fijos PEQUEÑO , MEDIA , GRANDE y EXTRAGRANDE .
Estos valores dentro de las llaves se denominan constantes de enumeración (valores).
Ejemplo 1:enumeración de Java
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
class Main {
public static void main(String[] args) {
System.out.println(Size.SMALL);
System.out.println(Size.MEDIUM);
}
}
Salida
SMALL MEDIUM
Como podemos ver en el ejemplo anterior, usamos el nombre de enumeración para acceder a los valores constantes.
Además, podemos crear variables de tipos de enumeración. Por ejemplo,
Size pizzaSize;
Aquí, tamaño de pizza es una variable del Tamaño escribe. Solo se puede asignar con 4 valores.
pizzaSize = Size.SMALL;
pizzaSize = Size.MEDIUM;
pizzaSize = Size.LARGE;
pizzaSize = Size.EXTRALARGE;
Ejemplo 2:Java Enum con la instrucción switch
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
class Test {
Size pizzaSize;
public Test(Size pizzaSize) {
this.pizzaSize = pizzaSize;
}
public void orderPizza() {
switch(pizzaSize) {
case SMALL:
System.out.println("I ordered a small size pizza.");
break;
case MEDIUM:
System.out.println("I ordered a medium size pizza.");
break;
default:
System.out.println("I don't know which one to order.");
break;
}
}
}
class Main {
public static void main(String[] args) {
Test t1 = new Test(Size.MEDIUM);
t1.orderPizza();
}
}
Salida
I ordered a medium size pizza.
En el programa anterior, hemos creado un tipo de enumeración Tamaño . Luego declaramos una variable pizzaSize del Tamaño tipo.
Aquí, la variable pizzaSize solo se puede asignar con 4 valores (PEQUEÑO , MEDIA , GRANDE , EXTRAGRANDE ).
Note la declaración,
Test t1 = new Test(Size.MEDIUM);
Llamará al Test()
constructor dentro de la Prueba clase. Ahora, la variable pizzaSize se asigna con el MEDIO constante.
En función del valor, se ejecuta uno de los casos de la instrucción switch case.
Clase Enum en Java
En Java, los tipos de enumeración se consideran un tipo especial de clase. Se introdujo con el lanzamiento de Java 5.
Una clase de enumeración puede incluir métodos y campos al igual que las clases normales.
enum Size {
constant1, constant2, …, constantN;
// methods and fields
}
Cuando creamos una clase de enumeración, el compilador creará instancias (objetos) de cada constante de enumeración. Además, todas las constantes de enumeración siempre son public static final
por defecto.
Ejemplo 3:Clase Java Enum
enum Size{
SMALL, MEDIUM, LARGE, EXTRALARGE;
public String getSize() {
// this will refer to the object SMALL
switch(this) {
case SMALL:
return "small";
case MEDIUM:
return "medium";
case LARGE:
return "large";
case EXTRALARGE:
return "extra large";
default:
return null;
}
}
public static void main(String[] args) {
// call getSize()
// using the object SMALL
System.out.println("The size of the pizza is " + Size.SMALL.getSize());
}
}
Salida
The size of the pizza is small
En el ejemplo anterior, hemos creado una clase de enumeración Size . Tiene cuatro constantes PEQUEÑO , MEDIA , GRANDE y EXTRAGRANDE .
Desde Tamaño es una clase de enumeración, el compilador crea automáticamente instancias para cada constante de enumeración.
Aquí dentro del main()
método, hemos utilizado la instancia SMALL llamar al getSize()
método.
Nota :Al igual que las clases regulares, una clase enum también puede incluir constructores. Para obtener más información al respecto, visite el constructor de enumeración de Java.
Métodos de la clase Java Enum
Hay algunos métodos predefinidos en las clases de enumeración que están disponibles para su uso.
1. Java Enum ordinal()
Los ordinal()
método devuelve la posición de una constante de enumeración. Por ejemplo,
ordinal(SMALL)
// returns 0
2. Enum compareTo()
El compareTo()
El método compara las constantes de enumeración en función de su valor ordinal. Por ejemplo,
Size.SMALL.compareTo(Size.MEDIUM)
// returns ordinal(SMALL) - ordinal(MEDIUM)
3. Enum toString()
El toString()
El método devuelve la representación de cadena de las constantes de enumeración. Por ejemplo,
SMALL.toString()
// returns "SMALL"
4. Nombre de enumeración()
El name()
El método devuelve el nombre definido de una constante de enumeración en forma de cadena. El valor devuelto por el name()
el método es final
. Por ejemplo,
name(SMALL)
// returns "SMALL"
5. Java Enum valueOf()
El valueOf()
El método toma una cadena y devuelve una constante de enumeración que tiene el mismo nombre de cadena. Por ejemplo,
Size.valueOf("SMALL")
// returns constant SMALL.
6. Valores de enumeración()
El values()
El método devuelve una matriz de tipo de enumeración que contiene todas las constantes de enumeración. Por ejemplo,
Size[] enumArray = Size.value();
¿Por qué enumeraciones de Java?
En Java, se introdujo enum para reemplazar el uso de constantes int .
Supongamos que hemos usado una colección de int
constantes.
class Size {
public final static int SMALL = 1;
public final static int MEDIUM = 2;
public final static int LARGE = 3;
public final static int EXTRALARGE = 4;
}
Aquí, el problema surge si imprimimos las constantes. Es porque solo se imprime el número, lo que podría no ser útil.
Entonces, en lugar de usar constantes int, simplemente podemos usar enumeraciones. Por ejemplo,
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
Esto hace que nuestro código sea más intuitivo.
Además, enum proporciona seguridad de tipos en tiempo de compilación .
Si declaramos una variable del Size escribe. Por ejemplo,
Size size;
Aquí, se garantiza que la variable tendrá uno de los cuatro valores. Ahora, si tratamos de pasar valores que no sean esos cuatro valores, el compilador generará un error.
Java