Breaking

Post Top Ad

Your Ad Spot

jueves, 19 de diciembre de 2019

Enumeraciones de 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 posibles. Usamos la enumpalabra clave para declarar enumeraciones. Por ejemplo,
  1. enum Size {
  2. SMALL, MEDIUM, LARGE, EXTRALARGE
  3. }
Aquí, hemos creado una enumeración llamada Tamaño .
Los valores dentro de las llaves se denominan valores de enumeración (constantes). Estos son los únicos valores que puede contener el tipo de enumeración.
Nota: Las constantes enum generalmente se representan en mayúsculas.
Tomemos un ejemplo simple.
  1. enum Size {
  2. SMALL, MEDIUM, LARGE, EXTRALARGE
  3. }
  4. class Main {
  5. public static void main(String[] args) {
  6. System.out.println(Size.SMALL);
  7. System.out.println(Size.MEDIUM);
  8. }
  9. }
Salida
PEQUEÑO
MEDIO
Como podemos ver en el ejemplo anterior, utilizamos el nombre de enumeración para acceder a los valores constantes.
Además, podemos crear variables de tipos de enumeración. Por ejemplo,
  1. Size pizzaSize;
Aquí, pizzaSize es una variable del tipo Size . Solo se puede asignar con 4 valores.
  1. pizzaSize = Size.SMALL;
  2. pizzaSize = Size.MEDIUM;
  3. pizzaSize = Size.LARGE;
  4. pizzaSize = Size.EXTRALARGE;

Ejemplo 1: enumeración de Java

  1. enum Size {
  2. SMALL, MEDIUM, LARGE, EXTRALARGE
  3. }
  4. class Test {
  5. Size pizzaSize;
  6. public Test(Size pizzaSize) {
  7. this.pizzaSize = pizzaSize;
  8. }
  9. public void orderPizza() {
  10. switch(pizzaSize) {
  11. case SMALL:
  12. System.out.println("I ordered a small size pizza.");
  13. break;
  14. case MEDIUM:
  15. System.out.println("I ordered a medium size pizza.");
  16. break;
  17. default:
  18. System.out.println("I don't know which one to order.");
  19. break;
  20. }
  21. }
  22. }
  23. class Main {
  24. public static void main(String[] args) {
  25. Test t1 = new Test(Size.MEDIUM);
  26. t1.orderPizza();
  27. }
  28. }
Salida
Pedí una pizza de tamaño mediano.
En el programa anterior, hemos creado un tipo de enumeración Size . Luego declaramos una variable pizzaSize del tipo Size .
La variable pizzaSize solo se puede asignar con 4 valores ( PEQUEÑO , MEDIO , GRANDE , EXTRALARGE ).
La variable pizzaSize se asigna con la constante MEDIA . En base a esto, switch casese imprime uno de los casos de la declaración.

Java enum Class

En Java, los tipos de enumeración se consideran un tipo especial de clase. Fue introducido con el lanzamiento de Java 5.
Una clase enum puede incluir métodos y campos al igual que las clases regulares.
  1. enum Size {
  2. constant1, constant2, …, constantN;
  3. // methods and fields
  4. }
Las constantes enum son siempre public static finalpor defecto.
Cuando se crea una clase enum, el compilador también creará instancias (objetos) de cada constante enum.

Ejemplo 2: clase enum

  1. enum Size{
  2. SMALL, MEDIUM, LARGE, EXTRALARGE;
  3. public String getSize() {
  4. // this will refer to the object SMALL
  5. switch(this) {
  6. case SMALL:
  7. return "small";
  8. case MEDIUM:
  9. return "medium";
  10. case LARGE:
  11. return "large";
  12. case EXTRALARGE:
  13. return "extra large";
  14. default:
  15. return null;
  16. }
  17. }
  18. public static void main(String[] args) {
  19. // calling the method getSize() using the object SMALL
  20. System.out.println("The size of the pizza is " + Size.SMALL.getSize());
  21. }
  22. }
Salida
El tamaño de la pizza es pequeño.
En el ejemplo anterior, hemos creado un tamaño de clase enum Tiene cuatro constantes PEQUEÑO , MEDIO , GRANDE y EXTRALARGE .
Como Size es una clase enum, el compilador crea automáticamente instancias para cada constante enum.
Aquí dentro del main()método, hemos usado la instancia SMALL para llamar al getSize()método.

Al igual que las clases regulares, una clase enum también puede incluir constructores. Para obtener más información al respecto, visite Java enum constructor .

Métodos de clase enum

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

método ordinal ()

El ordinal()método devuelve la posición de una constante enum. Por ejemplo,
  1. ordinal(SMALL)
  2. // returns 0

Método compareTo ()

El compareTo()método compara las constantes enum en función de su valor ordinal. Por ejemplo,
  1. Size.SMALL.compareTo(Size.MEDIUM)
  2. // returns ordinal(SMALL) - ordinal(MEDIUM)

Método toString ()

El toString()método devuelve la representación de cadena de las constantes enum. Por ejemplo,
  1. SMALL.toString()
  2. // returns "SMALL"

Nombre () Método

El name()método devuelve el nombre definido de una constante enum en forma de cadena. El valor devuelto por el name()método es finalPor ejemplo,
  1. name(SMALL)
  2. // returns "SMALL"

Método valueOf ()

El valueOf()método toma una cadena y devuelve una constante enum que tiene el mismo nombre de cadena. Por ejemplo,
  1. Size.valueOf("SMALL")
  2. // returns constant SMALL.

valores () Método

El values()método devuelve una matriz de tipo enum que contiene todas las constantes enum. Por ejemplo,
  1. Size[] enumArray = Size.value();

¿Por qué enumeraciones Java?

En Java, se introdujo enum para reemplazar el uso de intconstantes.
Supongamos que hemos usado una colección de intconstantes.
  1. class Size {
  2. public final static int SMALL = 1;
  3. public final static int MEDIUM = 2;
  4. public final static int LARGE = 3;
  5. public final static int EXTRALARGE = 4;
  6. }
Aquí, el problema surge si imprimimos las constantes. Es porque solo se imprime el número que puede no ser útil.
Entonces, en lugar de usar constantes int, simplemente podemos usar enumeraciones. Por ejemplo,
  1. enum Size {
  2. SMALL, MEDIUM, LARGE, EXTRALARGE
  3. }
Esto hace que nuestro código sea más intuitivo.
Además, enum proporciona seguridad de tipo de tiempo de compilación.
Si declaramos una variable del tipo Tamaño (como en los ejemplos anteriores), se garantiza que la variable contendrá uno de los cuatro valores. Si intentamos pasar valores distintos a esos cuatro valores, el compilador generará un error.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas