[Música] Hola y bienvenidos nuevamente, para terminar nuestro trabajo revisaremos el caso de estudio y las líneas telefónicas. Para revisar el caso de estudios, seguiremos este plan de temas revisaremos dónde se usa el concepto de clase, atributo y asociación. Revisaremos los métodos de instrucciones del caso de estudio, dónde se hace llamado de métodos y dónde se utiliza la instrucción de creación de objetos. Iniciemos revisando las clases, atributos y asociaciones del caso de estudio, para esto veamos que en el modelo del mundo existen dos clases, la clase "Empresa" y la clase "Línea Telefónica" La relación que existe entre ellas, es que la clase empresa tiene tres líneas telefónicas. Revisemos la declaración de la clase Línea Telefónica, veamos que es pública, se utiliza la palabra [Inglés] class para indicar que es una clase y se indica su nombre, "Línea Telefónica". Además, se abren y se cierran corchetes entre los cuales se pondrán posteriormente los atributos y métodos de la clase. Veamos ahora los atributos de la clase Línea Telefónica, recordemos que los atributos siempre deben tener una visibilidad, en nuestro caso será privada, un tipo, que para este ejemplo puede ser into double, y un nombre, en este caso los nombres de los tres atributos de la clase Línea Telefónica son "número llamadas" "numero de minutos" y "costo de llamadas" Ahora revisemos la declaración de la clase Empresa. Veamos que nuevamente se indica que es pública, se usa la palabra [Inglés] class, para decir que es una clase y se indica su nombre, en este caso Empresa y se abren y se cierran corchetes para poner posteriormente sus atributos y métodos allí. Ahora revisemos donde se declaran las asociaciones que existen entre las dos clases. Primero recordemos que son tres que van desde la clase empresa hacia la clase Línea Telefónica y que se llaman respectivamente "línea uno", "línea dos" y "línea tres". Como van de la clase Empresa a la clase Línea Telefónica las debemos declarar en la clase empresa. Recordemos que las asociaciones también serán privadas que su tipo es el tipo, es la clase a la que llegan, es decir, en este caso Línea Telefónica y su nombre es el que se indica en el modelo "el mundo", en este caso, "línea uno", "línea dos" o "línea tres". Veamos ahora algunos métodos de instrucciones utilizados en el caso estudio. [Pausa] Iniciemos con algunos métodos de la clase Línea Telefónica, en particular con el método "inicializar". Si revisamos el contrato del método, este nos dice que su responsabilidad es inicializar con valores en cero los atributos de la línea telefónica, es decir, que lo único que debemos hacer es hacer instrucciones de asignación poniendo a todos los atributos el valor de cero. Sabiendo esto, ¿Cómo sería el método "reiniciar"? Revisemos ahora el método "dar costos llamadas". En este caso el contrato nos indica que debemos devolver el costo de las llamadas realizadas por esta línea, por lo tanto lo único que debemos hacer es una instrucción de retorno donde devolvemos el atributo que guarda este valor es decir, el atributo "costos llamadas". Entonces ¿Cómo serian los métodos dar número llamadas y dar número minutos? Veamos ahora el método "agregar llamada a larga distancia", ese es un poco más complejo. Revisemos el contrato. recibimos un parámetro, llamado "minutos" el cual nos indica cuantos minutos duró la llamada y además al terminar el método, se debe cumplir que hemos incrementado el número llamadas en uno que el número de minutos ha aumentado en el número minutos que llega por parámetro, y que el costo de llamadas ha aumentado en función de los minutos por 380, que es el costo del minuto de larga distancia en la línea telefónica. Iniciemos aumentando la cantidad de llamadas en uno. Para esto podemos usar la instrucción ++, que recordemos que equivale a una construcción de asignación donde estamos aumentando una unidad. Aumentemos ahora la cantidad de minutos, como no podemos perder el valor anterior diremos que "número minutos" es igual al número de minutos más los minutos que llegan por parámetro. Finalmente aumentemos el costo llamadas, según se nos indica en el contrato, es decir, que ahora el costo llamadas aumentará en función de los minutos por 380 que es el precio del minuto para este tipo de llamada. Saliendo de esto, ¿Cómo sería el método "agregar llamada celular"? Revisemos ahora, algunos métodos de la clase empresa. [Pausa] Iniciemos por el método que devuelve la línea uno, veamos que originalmente este método devuelve la palabra [inglés] null. Esta palabra lo que hace es referirse al objeto que no existe, pero como nosotros queremos devolver algo que sí existe, en particular la asociación con la línea uno, lo que haremos es reemplazar la palabra [inglés] null por el atributo "línea uno" y la estamos devolviendo la línea uno. Entonces ¿Cómo serían los métodos dar línea dos y dar línea tres? Revisemos ahora algunos métodos donde se utilice el llamado a otros métodos, para esto veamos algunos métodos de la clase empresa. Empecemos por el método "agregar llamada local a la línea dos" como el nombre del método lo indica y también el contrato, debemos trabajar sobre la línea dos. Y lo que debemos hacer sobre esta línea es agregar una llamada local, es decir, debemos llamar a un método que está en la clase de Línea Telefónica. Para poder llamar a un método recordemos que debemos indicar el objeto en el que le llamaremos el método y el método que llamaremos. En este caso el objeto es la línea dos y el método que llamaremos es "agregar llamada local" y recordemos que a este método debemos incluirle el parámetro de cuantos minutos duro la llamada, que es el mismo parámetro que recibe el método de la clase empresa. Sabiendo esto ¿Cómo serían los otros métodos de agregar llamadas? Veamos ahora el método que da el total de costos de las llamadas, es decir, el costo total de las tres líneas. Para hacer esto, debemos consultar el costo de llamada de la línea uno, el costo de llamada de la línea dos, y el costo de llamada de la línea tres. Posteriormente, debemos sumar estos valores y finalmente debemos retornar a devolver el resultado. Para consultar el costo de llamadas de la línea uno haremos un llamado de un método, ¿A quién? a la línea uno, entonces podremos línea uno, punto, dar costos llamadas. Repetiremos la misma tarea para la línea dos, es decir, línea dos, punto, dar costos llamadas y para la línea tres. Sumaremos los valores y finalmente devolveremos el resultado. Veamos ahora el método "dar costos promedio minuto", para poder cumplir esta tarea lo primero que debemos hacer es calcular el costo de llamadas de las tres líneas. Para eso tenemos dos opciones, podemos preguntar a cada línea cuál ha sido el costo de llamada o podemos usar el método que acabamos de construir que ya sabe hacer esta tarea. Aprovechemos el método que ya construimos para que sea más simple. Pondremos entonces "dar total costos llamadas". Ahora debemos calcular los minutos consumidos en las tres líneas. Nuevamente tenemos dos opciones, preguntarle a cada línea, sumar los valores o aprovechar el método que ya lo hace, para que nuestro trabajo sea más sencillo, aprovechemos el método que ya lo hace. Llamaremos entonces al método "dar minutos". Recordemos que como estos dos métodos están en las misma clase empresa, lo único que debemos hacer es poner su nombre e indicar los parámetros que reciben, en caso de que estos lo tengan. Ahora debemos calcular el promedio, esto simplemente es hacer la división entre los dos valores y finalmente debemos devolver el valor que resulta de la división, por lo tanto salimos de una instrucción de retorno. Finalmente, veamos dónde se hace la creación de objetos. Para esto vamos al método "inicializar" de la clase Empresa, veamos que ya los entrega en la forma de inicializar la línea uno, están usando la instrucción [Inglés] new y llamando al método constructor de Línea Telefónica y posteriormente, se llama al método "inicializar" sobre esa línea. Nosotros tenemos que hacer la misma tarea sobre la línea dos es decir, crear el objeto línea dos y posteriormente inicializarlo, para crearlo entonces diremos que la línea dos es igual a un objeto, nuevo de tipo Línea Telefónica y posteriormente llamaremos al método "inicializar" y repetiremos la misma tarea para la línea tres. Con esto hemos terminado la revisión del caso de estudio, nos vemos en una próxima ocasión para revisar otros temas. [Música]