Utilizar constructores y destructores para resolver un problema con objetos
compuestos.
Un semáforo se compone de tres focos uno rojo, otro amarillo y otro verde. Cada foco tiene un color y puede estar encendido o apagado, y en todo momento se puede encender o apagar. Al semáforo se le puede pedir que cambie. Al cambiar de color el semáforo pasa de Verde a Amarillo, de Amarillo a Rojo y de Rojo pasa directamente a Verde.
En las intersecciones de dos calles de doble via, se puede controlar el paso con un semáforo compuesto de cuatro semáforos simples.
Solamente se dará el paso a una de las cuatro entradas a la vez.
Haga un programa con un semáforo compuesto para una intersección
que muestre su estado cada vez que se le pide que cambie.
Haga un método llamado toString() para cada clase para mostrar un String con su estado.
Para simplificar se utilizará la siguiente simbología:
[X] Foco apagado
[R] Foro rojo encendido
[A] Foro amarillo encendido
[V] Foco verde encendido
[[R][X][X]] Es un semáforo en rojo
[[X][A][X]] Es un semáforo en amarillo
[[X][X][V]] Es un semáforo en verde
El de intersección se representa con cuatro de estos semáforos juntos.
El estudiante debe presentar una explicación de la solución del ejercicio acompañada del código fuente y las pantallas de salida que produce su programa para los casos de prueba derivados del enunciado.