Solución A
Transcripción
Solución A
Solución A • • La bombilla tiene estado, el interruptor tiene estado y ambos deben estar coordinados. El interruptor controla la bombilla Bombilla.java public class Bombilla { final static boolean encendida = true; final static boolean apagada =false; private boolean estado = false; // la bombilla empieza estando apagada public Bombilla () { } public Bombilla (boolean e){ estado = e; } public void encender (){ estado = encendida; } public void apagar (){ estado = apagada; } } Interruptor.,java public class Interruptor { final static boolean pasa = true; final static boolean nopasa = false; private boolean posicion = false; // la corriente pasa por el interruptor private Bombilla bombilla; // El interruotor controla una bombilla public Interruptor (Bombilla b){ //Ojo coordinar el estado de la bombilla y del interruptor // Hemos decidido que el interruptor adopta el estado de la bombilla bombilla = b; if (b.estaEncendida()){ posicion = pasa; } else { posicion = nopasa; } } public boolean estado() { return posicion; } public void pulsar (){ posicion = ! posicion; if (posicion == pasa) { bombilla.encender(); } else { bombilla.apagar (); } } } Habitacion.java public class Habitacion { public static void main (String [] args){ Bombilla b1 = new Bombilla (Bombilla.apagada); Bombilla b2 = new Bombilla (Bombilla.encendida); Bombilla b3 = new Bombilla (Bombilla.encendida); Interruptor i1 = new Interruptor (b1); Interruptor i2 = new Interruptor (b2); Interruptor i3 = new Interruptor (b3); b1.encender(); b2.encender(); System.out.println ("Bombilla 1: " + b1.estaEncendida()); System.out.println ("Bombilla 2: " + b2.estaEncendida()); System.out.println ("Bombilla 3: " + b3.estaEncendida()); i1.pulsar (); i2.pulsar (); i3.pulsar (); System.out.println ("Bombilla 1: " + b1.estaEncendida()); System.out.println ("Bombilla 2: " + b2.estaEncendida()); System.out.println ("Bombilla 3: " + b3.estaEncendida()); }