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());
}

Documentos relacionados