Enum con valor personalizado en Java

Requisito previo: enumeración en Java

Por defecto, las enumeraciones tienen sus propios valores de string, también podemos asignar algunos valores personalizados a las enumeraciones. Considere el siguiente ejemplo para eso.

Ejemplos:

enum  Fruits
{
    APPLE(“RED”), BANANA(“YELLOW”), GRAPES(“GREEN”);
}

En el ejemplo anterior, podemos ver que la enumeración de frutas tiene tres miembros, es decir, MANZANA, PLÁTANO y UVAS, que tienen sus propios valores personalizados, ROJO, AMARILLO y VERDE, respectivamente.

Ahora, para usar esta enumeración en el código, hay algunos puntos que debemos seguir:

  1. Tenemos que crear un constructor parametrizado para esta clase de enumeración. ¿Por qué? Porque, como sabemos, el objeto de la clase de enumeración no se puede crear explícitamente, por lo que para inicializar usamos un constructor parametrizado. Y el constructor no puede ser público o protegido, debe tener modificadores privados o predeterminados. ¿Por qué? si creamos public o protected, permitirá inicializar más de un objeto. Esto está totalmente en contra del concepto de enumeración.
  2. Tenemos que crear un método getter para obtener el valor de las enumeraciones.
// Java program to demonstrate how values can
// be assigned to enums.
enum TrafficSignal
{
    // This will call enum constructor with one
    // String argument
    RED("STOP"), GREEN("GO"), ORANGE("SLOW DOWN");
  
    // declaring private variable for getting values
    private String action;
  
    // getter method
    public String getAction()
    {
        return this.action;
    }
  
    // enum constructor - cannot be public or protected
    private TrafficSignal(String action)
    {
        this.action = action;
    }
}
  
// Driver code
public class EnumConstructorExample
{
    public static void main(String args[])
    {
        // let's print name of each enum and there action
        // - Enum values() examples
        TrafficSignal[] signals = TrafficSignal.values();
  
        for (TrafficSignal signal : signals)
        {
            // use getter method to get the value
            System.out.println("name : " + signal.name() +
                        " action: " + signal.getAction() );
        }
    }
}

Producción:

name : RED action: STOP
name : GREEN action: GO 
name : ORANGE action: SLOW DOWN 

Este artículo es una contribución de Vihang Shah . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *