Variavel de controle numerica

[quote=rmendes08][quote]
o problema seria mais por conta de enxergar que por exemplo ao instanciar a classe do microondas ele so instanciar uma vez a classe potencia entre outras…
[/quote]

Mas você não pode fazer isso, cada microondas deve ter sua própria instância de Potencia. Imagine se o mundo real fosse assim, você ajusta a potência do seu microondas e a mudança é refletida nos microondas de todo mundo ?[/quote]

claro, eu n discordei, agora entendi, na verdade vc centraliza o controle e um objeto das demais composições…

interessante…

agora a noite irei trabalhar nessa questão

retrabalhei a classe potencia

package modelo;

import controle.ExcessaoPotenciaBaixa;
import controle.ExcessaoPotenciaMaxima;

public class Potencia {

	private int index = -1;

	public void aumentarPotencia() throws ExcessaoPotenciaMaxima {
		try {
			if (Tipo.getTipo(index) == Tipo.MÁXIMA) {
				throw new ExcessaoPotenciaMaxima();
			}
			index++;
			mostrar();
		} catch (ExcessaoPotenciaMaxima e) {
			System.out.println(e.getMessage());
		}
	}

	public void diminuirPotencia() throws ExcessaoPotenciaBaixa {
		try {
			if (Tipo.getTipo(index) == Tipo.BAIXA) {
				throw new ExcessaoPotenciaBaixa();
			}
			index--;
			mostrar();
		} catch (ExcessaoPotenciaBaixa e) {
			System.out.println(e.getMessage());
		}
	}

	private void mostrar() {
		System.out.println("Potencia: " + Tipo.getTipo(index));
	}
}

enum Tipo {
	BAIXA(1), MÉDIA(2), ALTA(3), MÁXIMA(4);

	private int index;

	private Tipo(int index) {
		this.index = index;
	}

	public static Tipo getTipo(int index) {
		for (Tipo tipo : Tipo.values()) {
			if (index == tipo.ordinal()) {
				return tipo;
			}
		}
		return null;
	}
}