| Creación de un Televisor estándar |
| Paso 13: Operativa |
Recorrer los televisores a través de una matriz con la sentencia de control for
En una tienda de nuestra ciudad hay varios televisores en exposición en el escaparate. El dueño de la tienda cree que la mejor forma para que sus clientes puedan comparar la calidad de imagen de los diferentes televisores expuestos es que todos los televisore muestren a la vez el mismo canal.
- para conseguir tal cometido, hay una persona en la tienda que se encargada de cambiar los canales.
- cuando este señor realiza dichos cambios, lo hace de forma paulatina
- es decir empieza cambiando el canal del primer televisor, después el segundo y así sucesivamente hasta que termina.
Si este planteamiento lo extrapolamos al mundo de los Objetos, nos encontramos con un nuevo paquete llamado paqtienda y una Clase llamada Aplicacion que simula ser la persona encargada de cambiar los canales de todos los televisores. Estos son los diagramas de Clases de diseño con los diferentes paquetes que intervienen en la aplicación


Nos vamos a crear una matriz que va a contener cuatro televisores. Cada una de las unidades de la matriz tiene un puntero de apunta a la dirección de memoria de cada uno de los televisores
Aquí tenemos el código correspondiente de la Clase Aplicacion del paquete paqtienda que representa al encargado que cambia los canales de 4 televisores expuestos en el escaparate de la tienda
package paqtienda;
import paqtvestandar.Televisor;
import paqtvestandar.TelevisorVirtual;
import paqtvfabricante.TelevisorPlasma;
public class Aplicacion {
public static void main(String[] args) {
Televisor tv1 = new TelevisorVirtual();
Televisor tv2 = new TelevisorVirtual();
Televisor tv3 = new TelevisorPlasma();
Televisor tv4 = new TelevisorPlasma();
Televisor matrizTelevisores[];
matrizTelevisores = new Televisor[4];
matrizTelevisores[0] = tv1;
matrizTelevisores[1] = tv2;
matrizTelevisores[2] = tv3;
matrizTelevisores[3] = tv4;
for (int i = 0; i < matrizTelevisores.length; i++) {
matrizTelevisores[i].setCanal(8);
}
for (int i = 0; i < matrizTelevisores.length; i++) {
System.out.println("El canal seleccionado es el: " + matrizTelevisores[i].getCanal());
}
}
}
|
- Televisor tv1 = new TelevisorVirtual();
Televisor tv2 = new TelevisorVirtual();
- creamos dos instancias de nuestros televisores virtuales tv1 y tv2
- Televisor tv3 = new TelevisorPlasma();
Televisor tv4 = new TelevisorPlasma();
- y también creamos dos instancias de dos televisores de plasma tv3 y tv4
- Televisor matrizTelevisores[];
- esta es la declaración de la matriz
- fijémonos que estamos declarando una matriz que contendrá Objetos de tipo Televisor
- en vez de declarar dos matrices. Una de Objetos de tipo TelevisorVirtual y la otra de Objetos de tipo TelevisorPlasma
- matrizTelevisores = new Televisor[4];
- esta es la creación de la matriz
- con esta línea de código estamos indicando que estamos creando una Matriz de 4 elementos
- matrizTelevisores[0] = tv1;
matrizTelevisores[1] = tv2;
matrizTelevisores[2] = tv3;
matrizTelevisores[3] = tv4;
- y esta es la inicialización de la matriz
- cada elemento de la matriz está referenciando a un Objeto de tipo Televisor (de echo TelevisorVirtual y TelevisorPlasma)
- for (int i = 0; i < matrizTelevisores.length; i++) {
matrizTelevisores[i].setCanal(8);
}
- ahora recorremos la matriz con una sentencia de control for. Esta es su sintaxis
for (inicialización; condición; iteración) {
cuerpo
}
|
- inicialización
- es una expresión que asigna un valor a la variable de control del bucle, que actúa como contador para controlar el bucle
- condición
- debe ser una expresión booleana
- si la expresión es verdadera, entonces se ejecuta el cuerpo del bucle
- si la expresión es falsa, el bucle termina
- iteración
- suele ser una expresión que incrementa o decrementa la variable de control del bucle
- en nuestro caso inicializamos la variable de control del bucle a cero y vamos recorriendo la matriz hasta que llegamos hasta el final de ésta
- a cada uno de los elementos recorridos le asignamos el canal 8
- for (int i = 0; i < matrizTelevisores.length; i++) {
System.out.println("El canal seleccionado es el: " + matrizTelevisores[i].getCanal());
}
- volvemos a recorrer la Matriz para mostrar los canales que se están retransmitiendo en los televisores del escaparate de la tienda
Ahora lo ejecutamos y obtenemos el siguiente resultado