[MUSIC] Hola nuevamente. Durante este módulo you hemos tratado los temas de expresiones booleanas e instrucciones condicionales. Los cuales nos servirán a lo largo de todo el curso. Ahora revisamos el tema de arreglos en una dimensión, y nos centraremos en los arreglos de tamaño fijo. Para esto volvamos a revisar nuestro problema de la pizzería. Recordemos que la pizzería tenía varios cocineros y que cada cocinero puede preparar cierta cantidad de pizzas. Sabemos que tenemos una pizzería y diremos que esta puede contratar máximo cuatro cocineros. Sin embargo, no sabemos qué cantidad de pizzas puede preparar cada uno de los cocineros. Con lo que hemos aprendido hasta ahora ¿cómo sería nuestra solución? Por una parte, en la clase Pizzeria tendríamos cuatro relaciones con la clase Cocinero. Teniendo esto, por ejemplo ¿cómo responderíamos la pregunta a cómo saber cuántas pizzas se han producido? Fácil, le preguntaríamos a cada cocinero. Sin embargo, esto puede no ser muy útil cuando tengamos diez o muchos más cocineros. Ahora, por otra parte tendríamos la clase Cocinero. Allí también tendríamos relaciones con la clase pizza. Pero no sabríamos si tendríamos una o dos o tres o cuántas relaciones dado que no sabemos cuántas pizzas puede preparar cada cocinero. Con el fin de resolver este problema utilizaremos los arreglos de una dimensión. Los arreglos son colecciones de datos organizados de forma lineal. Es decir, uno detrás de otro. Sabiendo esto, pensemos nuevamente en nuestro problema de la pizzería. Ahora lo que tendrá nuestra pizzería es un solo arreglo de cocineros. Y cada cocinero tendrá un solo arreglo de pizzas. Como vimos en nuestro ejemplo. El arreglo de cocineros será de tamaño fijo, dado que dijimos que la pizzería sólo puede contratar cuatro cocineros. Por su parte, los arreglos de pizzas serán de tamaño variable. Dado que no sabemos cuál es la cantidad de pizzas que puede preparar cada uno de los cocineros. En esta sesión nos centraremos en el arreglo de cocineros. Es decir en el arreglo de tamaño fijo. Veamos cómo se declaran los arreglos de tamaño fijo en Java. Para declararlos iniciaremos definiendo una visibilidad. Esta es opcional dependiendo de si estamos declarando un atributo o una variable. Posteriormente indicaremos el tipo de dato de los elementos que guardará el arreglo. A continuación, con paréntesis cuadrados, indicaremos que estamos declarando un arreglo de tamaño fijo. Y finalmente, indicaremos un nombre para el arreglo. Veamos cómo podemos utilizar esto en la declaración de nuestra clase pizzería. Para eso traigamos lo que you habíamos construido. Que son cuatro relaciones con la clase cocinero. Tratemos de transformar esto en un arreglo. Para esto diremos que la visibilidad es privada porque nuestro arreglo también será un atributo. El tipo de datos de los elementos que guarda arreglo será Cocinero. Con paréntesis cuadrado indicaremos que es un arreglo fijo. Y como nombre podemos poner por ejemplo cocineros. Con esta declaración podemos prescindir de la declaración de las cuatro relaciones con la clase cocinero. Ahora veamos cómo se inicializan estos arreglos. Para inicializarlos debemos poner el nombre del arreglo igual a New, dado que siempre que estamos creando algo en Java debemos poner esta instrucción. Posteriormente pondremos el tipo de dato de los elementos que guarda el arreglo. Y finalmente, el tamaño del arreglo entre paréntesis cuadrados. Utilicemos esto en la declaración de nuestra clase pizzería. Para esto traigamos lo que you habíamos construido que era un atributo que es un arreglo de cocineros. En el constructor inicializaremos nuestro arreglo. Para esto pondremos el nombre de nuestro arreglo que es cocineros. Tenemos que es igual a un new. Pondremos el tipo de datos de los elementos que guarda el arreglo, en este caso cocinero. Y pondremos el tamaño del arreglo entre paréntesis cuadrados. Según nuestro ejemplo, es cuatro. Pero ahora pensemos que en el momento quisiéramos modificar este 4 a 5 o 6. Porque la pizzería ha crecido. O que eventualmente necesitamos usar este valor en otra parte del código. Y si lo cambiamos puede ser complicado actualizarlo posteriormente. Para evitar este problema podemos utilizar las constantes. Una constante nos permite definir valores que nunca cambian o que cambian muy rara vez. Por ejemplo, el número de países en el mundo. Y a su vez nos permite definir dominios de datos por extensión. Por ejemplo, los estados civiles de una persona, que pueden ser soltero, casado, viudo o divorciado. Veamos cómo se declaran las constantes en Java. Para hacerlo debemos definir una visibilidad, una modificabilidad y una accesibilidad. Posteriormente indicaremos el tipo de dato de la constante. Indicaremos un nombre para la constante, y por convención, si la constante tiene varias palabras en su nombre la separaremos. Por una línea al piso. Y finalmente indicaremos el valor de la constante. Veamos cómo podemos usar esto en la inicialización de nuestro arreglo. Volvamos a traer lo que you habíamos construido, que era nuestro arreglo de cocineros y la inicialización en el método constructor en la clase pizzería. Tratemos de reemplazar el 4 por una constante. Diremos entonces que la visibilidad de la constante es pública, su modificabilidad es final y su accesibilidad es estática, eso quiere decir que es un valor que nunca va a cambiar, es un valor que siempre está estático o constante. Diremos que el tipo de dato es entero. Pondremos un nombre a la constante. Por ejemplo, cantidad de cocineros. Y el valor, según nuestro ejemplo, será 4. Teniendo esta constante, podemos ir a nuestra inicialización. Y reemplazar. Diciendo que el tamaño del arreglo es CANTIDAD_COCINEROS. you tenemos los arreglos, pero no sabemos cómo podemos referirnos a los objetos dentro de ellos. Para hacerlo utilizaremos la posición de los elementos dentro del arreglo. En Java iniciaremos a numerar la posiciones desde cero. Es decir que en nuestro ejemplo los cocineros están numerados del cero al tres. Sabiendo esto veamos cómo podemos agregar un objeto a un arreglo. Para esto pondremos el nombre del arreglo, la posición donde lo queremos agregar y diremos que es igual al objeto que queremos agregar. Veamos un ejemplo. Nuevamente en nuestro constructor de la clase pizzería. Es importante aclarar que con lo que hemos hecho en este momento, hemos creado un arreglo de 4 posiciones donde todas las posiciones tienen null. Dado que no hemos puesto ningún objeto dentro de ellas. Por ejemplo, tratemos de poner un objeto en la posición 0 de nuestro arreglo. Para esto pondremos el nombre de nuestro arreglo que es cocineros, la posición que es cero y dentro de esta posición pondremos un nuevo cocinero. Entonces igualamos la posición cero a un new cocinero. Con esto hemos reemplazado el null de la posición cero con un objeto de tipo cocinero. Ahora veamos cómo podemos acceder a la información de los objetos dentro de un arreglo. Para eso utilizaremos una técnica similar. Pondremos el nombre del arreglo y la posición a la que queremos acceder. Veamos un ejemplo. Digamos que quisiéramos consultar cuantas unidades se han producido dentro de la pizzeria. Para lograr hacer esto tenemos que preguntarle al cocinero en la posición cero las unidades producidas, al de la posición uno, al de la posición dos y al de la posición tres. Veamos cómo podemos hacer esto en código. Traigamos nuevamente la declaración de la clase pizzería donde tendríamos nuestra constante y nuestro atributo que es un arreglo de cocineros. Y construyamos el método darTotalUnidadesProducidas. Para esto entonces sabemos que tenemos que construir una suma y que al final debemos devolverla. A la suma le agregaremos las unidades que ha producido el cocinero de la posición cero. Entonces le preguntaremos al cocinero de la posición cero cuántas unidades ha producido y lo mismo repetiremos para los cocineros de la posición uno, dos y tres. Ahora bien, tenemos que tener que cuenta que puede que los cocineros existan o no existan. Recordemos que si no hemos puesto head dentro de nuestro arreglo las posiciones pueden tener nula dentro. Y por lo tanto, no le podemos preguntar nada a algo que no existe. Para resolver este problema podemos hacer una pequeña mejora al método anterior. Volvamos a traer el método. Y lo que haremos ahora es, antes de hacer la pregunta al cocinero de cuántas unidades o cantidades ha producido, haremos primero la pregunta de si el cocinero es diferente a null. Con esto hemos terminado el tema de arreglos en una dimensión. En la próxima sesión trataremos el tema de instrucciones repetitivas.