Olá Rafael! Tudo bem?
A sua sugestão faz bastante sentido. No contexto do exercício, onde o objetivo é converter valores de reais para outras moedas, realmente não seria necessário incluir o Real dentro dos Enums, já que a conversão sempre parte do Real para outra moeda.
Uma alternativa ao exercício poderia ser modificar o método converterPara
para que ele receba a moeda de destino, permitindo assim a conversão entre quaisquer duas moedas. Isso tornaria o enum mais flexível e útil em diferentes contextos. A implementação ficaria assim:
public enum Moeda {
DOLAR(5.1),
EURO(5.5),
REAL(1.0);
private final Double base;
Moeda(Double base) {
this.base = base;
}
public double convertePara(Double valor, Moeda moedaDestino) {
return (moedaDestino.base / this.base) * valor;
}
}
Com essa abordagem, você poderia converter entre qualquer par de moedas, não apenas de Real para outra moeda. Por exemplo:
double valorEmDolares = Moeda.REAL.convertePara(100.0, Moeda.DOLAR);
double valorEmEuros = Moeda.DOLAR.convertePara(100.0, Moeda.EURO);
Bons estudos!