campos y métodos

Como un enumerado es una clase, puede disfrutar de campos y métodos propios, sin olvidar nunca que sólo existirán tantos objetos de esa clase como constantes se han definido.

Billetes.java

/**

 * Billetes de euros.

 */

public enum Billetes {

    B5(5), B10(10), B20(20), B50(50), B100(100), B200(200), B500(500);

 

    private final int valor;

 

    Billetes(int valor) {

        this.valor = valor;

    }

 

    public int getValor() {

        return valor;

    }

 

    public String toString() {

        return valor + "euros";

    }

}

 

También es posible definir métodos específicos para cada objeto constante:

Operation.java

public enum Operation {

    PLUS   { double eval(double x, double y) { return x + y; } },

    MINUS  { double eval(double x, double y) { return x - y; } },

    TIMES  { double eval(double x, double y) { return x * y; } },

    DIVIDE { double eval(double x, double y) { return x / y; } };

 

    abstract double eval(double x, double y);

 

    public static void main(String[] argumentos) {

        double x = Double.parseDouble(argumentos[0]);

        Operation operation = Operation.valueOf(argumentos[1]);

        double y = Double.parseDouble(argumentos[2]);

        System.out.println(operation.eval(x, y));

    }

}

$ java Operation 2 PLUS 2

4.0

Temas relacionados

61. Enumerados (concepto)