1 00:00:00,620 --> 00:00:04,780 Si estudiarais más en casa 2 00:00:04,780 --> 00:00:07,160 Podríamos no repetir tanto 3 00:00:07,160 --> 00:00:08,220 Hacer más cosas 4 00:00:08,220 --> 00:00:09,679 Y sería todo más entretenido 5 00:00:09,679 --> 00:00:11,320 Y no nos dormirían 6 00:00:11,320 --> 00:00:15,279 Nos dormimos porque estamos repitiendo 7 00:00:15,279 --> 00:00:16,760 Todo el rato una y otra vez 8 00:00:16,760 --> 00:00:25,640 Pues yo tengo ya un aburrimiento 9 00:00:25,640 --> 00:00:26,839 Venga 10 00:00:26,839 --> 00:00:28,780 Las figuras estas 11 00:00:28,780 --> 00:00:30,600 Manejador de figuras 12 00:00:30,600 --> 00:00:32,539 Contiene el array y un método 13 00:00:32,539 --> 00:00:34,140 para calcular 14 00:00:34,140 --> 00:00:36,539 manejador de figuras. 15 00:00:37,359 --> 00:00:38,780 Un método para calcular 16 00:00:38,780 --> 00:00:40,140 el perímetro total 17 00:00:40,140 --> 00:00:42,859 de todas 18 00:00:42,859 --> 00:00:43,520 las figuras. 19 00:00:44,920 --> 00:00:46,659 Entonces, no es que esté muy bien 20 00:00:46,659 --> 00:00:48,859 definido. Aquí es cuando nosotros tendríamos que ir al cliente 21 00:00:48,859 --> 00:00:50,979 y decirle, pero la suma 22 00:00:50,979 --> 00:00:52,020 de los perímetros de todas, 23 00:00:52,539 --> 00:00:54,320 o mostrármelos por consola, 24 00:00:54,320 --> 00:00:55,759 o qué quieres hacer. 25 00:00:55,859 --> 00:00:56,719 ¿Qué sentido tiene esto? 26 00:00:57,640 --> 00:01:00,200 Vamos a hacerlo. Que nos devuelva 27 00:01:00,200 --> 00:01:02,320 un array 28 00:01:02,320 --> 00:01:04,859 de números enteros con todos y cada uno 29 00:01:04,859 --> 00:01:06,640 de los perímetros de todas y cada una 30 00:01:06,640 --> 00:01:08,840 de las figuras en el mismo orden 31 00:01:08,840 --> 00:01:10,840 en el que han llegado a la raíz 32 00:01:10,840 --> 00:01:11,920 de la clase 33 00:01:11,920 --> 00:01:14,519 ¿vale? método de 34 00:01:14,519 --> 00:01:17,159 mediados de octubre 35 00:01:17,159 --> 00:01:18,980 o primeros de noviembre 36 00:01:18,980 --> 00:01:19,920 pues venga 37 00:01:19,920 --> 00:01:21,840 ese método 38 00:01:21,840 --> 00:01:23,480 en un pispas 39 00:01:23,480 --> 00:01:26,760 ¿vale? pues a ver, habréis hecho algo así 40 00:01:26,760 --> 00:01:28,739 además a toda velocidad porque esto es 41 00:01:28,739 --> 00:01:29,620 muy rápido de hacer 42 00:01:29,620 --> 00:01:32,400 que tenemos que devolver un array de enteros 43 00:01:32,400 --> 00:01:34,540 con los perímetros 44 00:01:34,540 --> 00:01:37,019 de las figuras 45 00:01:37,019 --> 00:01:40,680 parámetro de entrada, no porque ya está ahí 46 00:01:40,680 --> 00:01:42,200 el array a devolver 47 00:01:42,200 --> 00:01:44,640 ¿cuántas posiciones tendrá? tantas como el array 48 00:01:44,640 --> 00:01:46,260 y más, luego nos hacemos 49 00:01:46,260 --> 00:01:48,579 el array de perímetros 50 00:01:48,579 --> 00:01:52,560 que tenga 51 00:01:52,560 --> 00:01:57,920 cuántas posiciones 52 00:01:57,920 --> 00:02:01,120 que tenga tantas posiciones como el de figuras 53 00:02:01,120 --> 00:02:02,659 pues esto es lo que habréis hecho 54 00:02:02,659 --> 00:02:05,500 figuras.led 55 00:02:05,500 --> 00:02:06,540 y ahora ya 56 00:02:06,540 --> 00:02:08,099 habréis recorrido 57 00:02:08,099 --> 00:02:09,979 el array de figuras 58 00:02:09,979 --> 00:02:13,020 para cada figura geométrica 59 00:02:13,020 --> 00:02:15,039 en mi array 60 00:02:15,039 --> 00:02:16,159 de figuras 61 00:02:16,159 --> 00:02:19,860 pues 62 00:02:19,860 --> 00:02:25,990 ¿lo habéis hecho así con un for each? 63 00:02:26,389 --> 00:02:26,710 ¿a que no? 64 00:02:27,590 --> 00:02:29,129 claro, porque si lo habéis hecho con un for each 65 00:02:29,129 --> 00:02:31,349 como yo lo estaba empezando a arrancar a hacer toda chula 66 00:02:31,349 --> 00:02:33,129 pues tendría que ponerme una variable 67 00:02:33,129 --> 00:02:34,550 adicional que fuera 68 00:02:34,550 --> 00:02:36,729 el contador de posiciones, porque 69 00:02:36,729 --> 00:02:38,810 la primera FG a la 0 70 00:02:38,810 --> 00:02:41,469 la segunda FG perímetro a la 1 71 00:02:41,469 --> 00:02:43,169 entonces me tendría que poner aquí una variable 72 00:02:43,169 --> 00:02:44,509 adicional que se fuera incrementando 73 00:02:44,509 --> 00:02:47,110 pues ya que voy a usar una variable, pues ya 74 00:02:47,110 --> 00:02:49,189 me pongo un for de índice 75 00:02:49,189 --> 00:02:50,849 y ya está 76 00:02:50,849 --> 00:02:54,250 seguro que no 77 00:02:54,250 --> 00:03:09,169 De todas formas, yo creo que Pablo 78 00:03:09,169 --> 00:03:09,889 en el fondo 79 00:03:09,889 --> 00:03:12,169 le está echando de menos. 80 00:03:13,090 --> 00:03:14,210 Lo que pasa es que se está haciendo duro. 81 00:03:16,710 --> 00:03:18,689 Y estoy segura de que los fines de semana 82 00:03:18,689 --> 00:03:20,210 le escribes y le dices cosas. 83 00:03:27,930 --> 00:03:41,629 Yo creo que no 84 00:03:41,629 --> 00:03:43,810 Es odio-pena 85 00:03:43,810 --> 00:03:49,710 Eso no pega 86 00:03:49,710 --> 00:03:51,650 Venga 87 00:03:51,650 --> 00:03:53,409 Esto es lo que habréis hecho, ¿verdad? 88 00:03:53,409 --> 00:03:55,469 Más fácil imposible 89 00:03:55,469 --> 00:03:59,550 no, es que a mí me da pena 90 00:03:59,550 --> 00:04:01,650 porque algunos, seguro que se aburren 91 00:04:01,650 --> 00:04:03,389 ¿a que sí? por ir a esta velocidad 92 00:04:03,389 --> 00:04:04,490 y en este plan 93 00:04:04,490 --> 00:04:08,069 ¿pero por qué voy a poner llaves? 94 00:04:08,129 --> 00:04:09,610 ya hemos superado esa fase 95 00:04:09,610 --> 00:04:15,629 pues hay que madrugar 96 00:04:15,629 --> 00:04:17,449 uy, que madrugar, no, que madurar 97 00:04:17,449 --> 00:04:22,730 madrugar vamos a dejarlo 98 00:04:22,730 --> 00:04:26,569 venga 99 00:04:26,569 --> 00:04:30,029 ya tenemos la clase manejador figuras 100 00:04:30,029 --> 00:04:30,769 vale 101 00:04:30,769 --> 00:04:33,970 ahora nos dicen 102 00:04:33,970 --> 00:04:34,350 oye 103 00:04:34,350 --> 00:04:36,709 ahora nos dicen 104 00:04:36,709 --> 00:04:40,350 cuidadín que los círculos 105 00:04:40,350 --> 00:04:42,509 van a tener un tratamiento 106 00:04:42,509 --> 00:04:44,110 perdón y los cuadrados 107 00:04:44,110 --> 00:04:46,430 van a tener un tratamiento 108 00:04:46,430 --> 00:04:47,389 especial 109 00:04:47,389 --> 00:04:49,769 entonces de los cuadrados 110 00:04:49,769 --> 00:04:51,810 además se va a querer hacer el área 111 00:04:51,810 --> 00:04:54,750 y de los círculos también se va a querer hacer el área 112 00:04:54,750 --> 00:04:57,069 entonces vamos a hacer un manejador específico 113 00:04:57,069 --> 00:04:57,709 para ellos 114 00:04:57,709 --> 00:04:59,930 un manejador específico 115 00:04:59,930 --> 00:05:02,230 que además me calcule el área 116 00:05:02,230 --> 00:05:03,449 de los cuadrados 117 00:05:03,449 --> 00:05:06,629 solo de los cuadrados 118 00:05:06,629 --> 00:05:08,389 entonces vamos a hacernos 119 00:05:08,389 --> 00:05:09,629 un manejador de cuadrados 120 00:05:09,629 --> 00:05:26,240 este manejador 121 00:05:26,240 --> 00:05:28,759 va a ser un manejador que nos va a interesar 122 00:05:28,759 --> 00:05:31,019 instanciar solo 123 00:05:31,019 --> 00:05:34,360 cuando de esas figuras que tengamos 124 00:05:34,360 --> 00:05:36,680 nos interesen solo los cuadrados, 125 00:05:37,319 --> 00:05:37,500 ¿vale? 126 00:05:37,540 --> 00:05:38,740 De las figuras que tengamos, 127 00:05:39,459 --> 00:05:41,180 de todo el total de figuras que tengamos 128 00:05:41,180 --> 00:05:45,800 en la parte de la aplicación en la que esté o lo que sea. 129 00:05:46,740 --> 00:05:47,220 Entonces, 130 00:05:48,040 --> 00:05:50,319 este manejador de cuadrados 131 00:05:50,319 --> 00:05:53,540 va a tener las figuras también, 132 00:05:53,720 --> 00:05:55,540 aunque solo le va a interesar manejar los cuadrados, 133 00:05:55,639 --> 00:05:56,259 va a tener las figuras. 134 00:05:56,800 --> 00:05:59,100 Entonces, en lugar de volver a declarar aquí 135 00:05:59,100 --> 00:06:00,980 toda la raíz de figuras, 136 00:06:01,019 --> 00:06:03,620 nos dicen el diseño que ya está hecho, 137 00:06:04,519 --> 00:06:08,040 que es tienda de manejador de figuras, 138 00:06:08,360 --> 00:06:09,720 que es tienda de aquí. 139 00:06:10,459 --> 00:06:10,579 Vale. 140 00:06:13,220 --> 00:06:14,920 Pues entonces el manejador de figuras, 141 00:06:15,420 --> 00:06:17,019 el manejador de cuadrados, perdón, 142 00:06:17,879 --> 00:06:19,000 tendrá sus figuras ahí, 143 00:06:20,160 --> 00:06:21,360 heredadas de este. 144 00:06:24,819 --> 00:06:26,699 Y como las tiene heredadas, 145 00:06:27,600 --> 00:06:29,699 ese array es un array de figuras, 146 00:06:30,180 --> 00:06:31,879 con lo cual en este array que está aquí, 147 00:06:31,879 --> 00:06:32,800 aunque no lo veamos, 148 00:06:32,920 --> 00:06:33,779 aunque no lo veamos, 149 00:06:33,779 --> 00:06:36,360 ese array es un array que puede tener de todo 150 00:06:36,360 --> 00:06:38,439 puede tener cuadrados, círculos, etc 151 00:06:38,439 --> 00:06:41,779 pero cuando instanciemos esta versión 152 00:06:41,779 --> 00:06:45,779 solo vamos a querer hacer cosas con los cuadrados 153 00:06:45,779 --> 00:06:46,480 solo 154 00:06:46,480 --> 00:06:51,100 entonces va a tener un método propio suyo 155 00:06:51,100 --> 00:06:53,480 para obtener el área de los cuadrados 156 00:06:53,480 --> 00:06:57,079 pues vamos a hacer un método 157 00:06:57,079 --> 00:06:59,100 que obtenga todas las áreas 158 00:06:59,100 --> 00:07:02,439 y vamos a hacerlo así, de esta manera 159 00:07:02,439 --> 00:07:09,550 que me obtenga todas las áreas 160 00:07:09,550 --> 00:07:11,470 de todo lo que sea cuadrado 161 00:07:11,470 --> 00:07:13,569 de ese pack de figuras que tiene 162 00:07:13,569 --> 00:07:14,250 ese manejador 163 00:07:14,250 --> 00:07:17,230 venga, pues ahora sí, ¿cómo 164 00:07:17,230 --> 00:07:18,490 hace de este método? 165 00:07:19,610 --> 00:07:21,490 que este ya es un pelín más complicado 166 00:07:21,490 --> 00:07:23,430 porque aquí sólo 167 00:07:23,430 --> 00:07:25,850 hay que extraer los cuadrados 168 00:07:25,850 --> 00:07:27,290 del array 169 00:07:27,290 --> 00:07:29,129 heredado 170 00:07:29,129 --> 00:07:30,230 que es este 171 00:07:30,230 --> 00:07:32,709 sí 172 00:07:32,709 --> 00:07:35,889 pongo public 173 00:07:35,889 --> 00:07:38,529 pues venga 174 00:07:38,529 --> 00:07:40,569 vale 175 00:07:40,569 --> 00:07:43,430 pues habéis hecho algo como esto 176 00:07:43,430 --> 00:07:43,730 ¿verdad? 177 00:07:44,930 --> 00:07:46,250 ¿cuál es el problema? 178 00:07:48,129 --> 00:07:49,230 ese es el problema, vale 179 00:07:49,230 --> 00:07:50,250 ahora 180 00:07:50,250 --> 00:07:52,829 una vez solucionado ese problema 181 00:07:52,829 --> 00:07:54,470 ¿cuál es el otro problema? 182 00:07:54,949 --> 00:07:56,110 que aquí 183 00:07:56,110 --> 00:07:58,589 a la hora de declarar el array 184 00:07:58,589 --> 00:08:00,550 de áreas para devolverlo después 185 00:08:00,550 --> 00:08:02,709 exactamente igual 186 00:08:02,709 --> 00:08:03,829 porque hay pocas alternativas 187 00:08:03,829 --> 00:08:06,029 A la hora 188 00:08:06,029 --> 00:08:07,970 Bueno, con lo que sabemos nosotros 189 00:08:07,970 --> 00:08:08,589 Muy pocas 190 00:08:08,589 --> 00:08:10,810 Con un poquito más de conocimiento más adelante 191 00:08:10,810 --> 00:08:12,230 Hay para hacerlo en una línea 192 00:08:12,230 --> 00:08:17,470 Dentro de un tiempo 193 00:08:17,470 --> 00:08:18,410 Lo podemos hacer en una línea 194 00:08:18,410 --> 00:08:19,730 Con streams de Java 195 00:08:19,730 --> 00:08:22,769 Y funciones Lambda 196 00:08:22,769 --> 00:08:24,649 Pero ahora no podemos 197 00:08:24,649 --> 00:08:26,889 Señor, señor 198 00:08:26,889 --> 00:08:28,610 Vale 199 00:08:28,610 --> 00:08:30,730 El problema aquí es que 200 00:08:30,730 --> 00:08:33,629 No sabemos cuántos cuadrados hay 201 00:08:33,629 --> 00:08:36,250 en la propiedad figuras de manejador cuadrados 202 00:08:36,250 --> 00:08:38,429 esta propiedad que hemos heredado 203 00:08:38,429 --> 00:08:39,710 que está aquí y que no la vemos 204 00:08:39,710 --> 00:08:41,409 no sabemos cuantas hay 205 00:08:41,409 --> 00:08:44,389 entonces este array no sabemos de cuantas posiciones hacerlo 206 00:08:44,389 --> 00:08:45,870 menudo rollo 207 00:08:45,870 --> 00:08:47,429 ojalá tuviéramos una colección 208 00:08:47,429 --> 00:08:49,450 que no sea un array 209 00:08:49,450 --> 00:08:52,169 pero ya espero que en un par de semanas 210 00:08:52,169 --> 00:08:52,830 las tengamos 211 00:08:52,830 --> 00:08:54,909 pues entonces 212 00:08:54,909 --> 00:08:57,470 ¿qué es lo que tenemos que hacer? 213 00:08:57,529 --> 00:08:59,429 primero contar cuantos cuadrados hay 214 00:08:59,429 --> 00:09:01,450 vamos a contar cuantos cuadrados hay 215 00:09:01,450 --> 00:09:03,289 pues facilísimo 216 00:09:03,289 --> 00:09:13,730 Vamos a contar con un contador recorriendo nuestro array de figuras a ver cuántas de esas instancias que están en el array realmente son objetos cuadrados. 217 00:09:15,389 --> 00:09:20,850 Esta primera parte para contar cuántas de las instancias de mi array de figuras son objetos cuadrados. 218 00:09:21,470 --> 00:09:22,129 Ya las tengo. 219 00:09:22,370 --> 00:09:22,990 Estas son. 220 00:09:23,769 --> 00:09:24,309 Muy bien. 221 00:09:24,809 --> 00:09:25,950 Ahora ya me puedo declarar el array. 222 00:09:26,710 --> 00:09:28,070 Mi array de áreas va a ser este. 223 00:09:28,330 --> 00:09:28,769 Fenomenal. 224 00:09:28,850 --> 00:09:29,110 Ya está. 225 00:09:29,110 --> 00:09:40,210 Y ahora ya recorro todo mi array de figuras y cada vez que me encuentre una que es un cuadrado, calculo su área y lo guardo en la posición que toque. 226 00:09:40,710 --> 00:09:43,470 Dejaré la incrementada para la siguiente y ya está. 227 00:09:44,009 --> 00:09:49,710 Ahora ya figuras y áreas no van en paralelo. 228 00:09:49,850 --> 00:09:51,649 Áreas es más pequeñito, figuras es más grande. 229 00:09:52,509 --> 00:09:56,970 Por eso me cojo un índice específico para áreas. 230 00:09:56,970 --> 00:10:04,470 Entonces, aquí ya me daba igual hacerlo con un for de índice que no, porque voy a tener que necesitar un segundo índice, porque los arrays no van en paralelo. 231 00:10:04,649 --> 00:10:16,690 Entonces, como ya voy a necesitar un segundo índice, pues lo pongo aquí, voy recorriendo todo el array de figuras y voy rellenando las posiciones que tocan, dejándola incrementada para la siguiente con las áreas. 232 00:10:17,789 --> 00:10:25,230 Y se acabó, porque esto es lo que hemos hecho mil millones de veces desde un mes y pico antes de Navidades. 233 00:10:25,230 --> 00:10:27,750 Rellenar un array con valores de otro 234 00:10:27,750 --> 00:10:28,789 Que cumplen una condición 235 00:10:28,789 --> 00:10:31,029 Cuando una variable adicional 236 00:10:31,029 --> 00:10:32,129 Que se va incrementando 237 00:10:32,129 --> 00:10:34,529 La misma estructura de siempre 238 00:10:34,529 --> 00:10:36,389 Repetimos lo mismo una y otra vez 239 00:10:36,389 --> 00:10:38,210 Vale, pues entonces 240 00:10:38,210 --> 00:10:45,309 ¿Alguien está copiando todavía? 241 00:10:45,909 --> 00:10:46,590 ¿No? 242 00:10:51,590 --> 00:10:55,549 Bueno, pues entonces 243 00:10:55,549 --> 00:11:05,889 me habíais dicho que no estabais copiando 244 00:11:05,889 --> 00:11:21,440 no, porque quiero 245 00:11:21,440 --> 00:11:22,639 llevarte al límite 246 00:11:22,639 --> 00:11:29,840 arriba a dónde 247 00:11:29,840 --> 00:11:32,820 pero qué podría poner 248 00:11:32,820 --> 00:11:34,100 si no es cuadrado 249 00:11:34,100 --> 00:11:35,980 Si estamos contando cuadrados 250 00:11:35,980 --> 00:11:37,179 En un manejador de cuadrados 251 00:11:37,179 --> 00:11:39,779 ¿Qué podría poner? 252 00:11:44,360 --> 00:11:45,659 Venga, pues entonces 253 00:11:45,659 --> 00:11:46,899 Ya habéis dejado de copiar, ¿verdad? 254 00:11:47,759 --> 00:11:49,679 Pero John, hijo mío, qué lento eres 255 00:11:49,679 --> 00:11:57,559 Paciencia 256 00:11:57,559 --> 00:11:59,080 John, ya 257 00:11:59,080 --> 00:12:02,440 Ay, qué bien copiáis 258 00:12:02,440 --> 00:12:04,279 De verdad, sois lo mejor copiando 259 00:12:04,279 --> 00:12:07,080 Sí, ¿para qué? 260 00:12:08,840 --> 00:12:13,860 O eliges bien a la fuente de tu copia 261 00:12:13,860 --> 00:12:14,960 O no te va a valer de nada 262 00:12:14,960 --> 00:12:17,659 Venga, a ver 263 00:12:17,659 --> 00:12:19,059 Manejador círculos 264 00:12:19,059 --> 00:12:21,820 Lo mismo, lo hacéis 265 00:12:21,820 --> 00:12:23,720 Y ahora vamos a hacer el main simplemente 266 00:12:23,720 --> 00:12:25,360 Para poner esto en práctica y se acabó 267 00:12:25,360 --> 00:12:27,519 Manejador círculos, vale 268 00:12:27,519 --> 00:12:28,559 Pues ahora vamos a hacer un main 269 00:12:28,559 --> 00:12:30,340 Venga 270 00:12:30,340 --> 00:12:34,419 Vosotros, porque es igual que el otro 271 00:12:34,419 --> 00:12:37,460 Pues eso, exactamente 272 00:12:37,460 --> 00:12:39,720 vale, el main 273 00:12:39,720 --> 00:12:41,100 vamos a hacer un main 274 00:12:41,100 --> 00:12:45,690 ya no el de pruebas que habíamos 275 00:12:45,690 --> 00:12:47,730 usado para irlo de la clase abstracta 276 00:12:48,870 --> 00:12:53,129 nos hacemos nuestro main 277 00:12:53,129 --> 00:12:54,590 con método main 278 00:12:54,590 --> 00:12:56,490 vale 279 00:12:56,490 --> 00:13:04,330 y ahora ya simplemente el main dice 280 00:13:04,330 --> 00:13:05,230 venga 281 00:13:05,230 --> 00:13:08,330 como vamos a trabajar con un montón de figuras 282 00:13:08,330 --> 00:13:10,330 hazte un 283 00:13:10,330 --> 00:13:12,610 manejador de figuras 284 00:13:12,610 --> 00:13:16,940 bueno, a ver, una cosa que no he dicho 285 00:13:16,940 --> 00:13:18,159 cuando estaba haciendo esto de aquí 286 00:13:18,159 --> 00:13:19,840 el manejador de cuadrados 287 00:13:19,840 --> 00:13:22,840 aquí para poder acceder directamente 288 00:13:22,840 --> 00:13:24,179 a la propiedad figuras 289 00:13:24,179 --> 00:13:26,779 de aquí, la he cambiado 290 00:13:26,779 --> 00:13:27,299 a protected 291 00:13:27,299 --> 00:13:29,919 vale, porque si no 292 00:13:29,919 --> 00:13:31,639 tenemos que hacerlo con el get 293 00:13:31,639 --> 00:13:35,120 vale, pero vamos que lo normal 294 00:13:35,120 --> 00:13:36,519 es que tú pongas protected 295 00:13:36,519 --> 00:13:38,919 para que si alguien te hereda, pues no tengas que tirar 296 00:13:38,919 --> 00:13:40,419 del get, etcétera, etcétera 297 00:13:40,419 --> 00:13:40,919 hola 298 00:13:40,919 --> 00:13:45,139 Ah, vale 299 00:13:45,139 --> 00:13:46,600 No pasa nada, nosotros no lo usamos 300 00:13:46,600 --> 00:13:47,659 Gracias 301 00:13:47,659 --> 00:13:50,080 Ostras 302 00:13:50,080 --> 00:13:55,220 Venga, pues vamos a arrancar el mail 303 00:13:55,220 --> 00:13:59,059 Y en el mail 304 00:13:59,059 --> 00:14:00,360 Vale, decía 305 00:14:00,360 --> 00:14:02,799 Crear una 306 00:14:02,799 --> 00:14:05,159 ¿Dónde estás? 307 00:14:08,080 --> 00:14:08,580 Ah, aquí 308 00:14:08,580 --> 00:14:11,220 Créate tu manejador de figuras 309 00:14:11,220 --> 00:14:13,139 Vale, un manejador de figuras 310 00:14:13,139 --> 00:14:13,919 Que por ahora 311 00:14:13,919 --> 00:14:16,539 Inicializa Danube 312 00:14:16,539 --> 00:14:20,879 Pues venga, nuestro main que está aquí 313 00:14:20,879 --> 00:14:23,500 Instancia 314 00:14:23,500 --> 00:14:24,919 O sea, no instancias 315 00:14:24,919 --> 00:14:27,019 Créate, declarate una referencia 316 00:14:27,019 --> 00:14:29,080 Manejador figuras 317 00:14:29,080 --> 00:14:40,500 Tenemos esa referencia 318 00:14:40,500 --> 00:14:42,519 Por ahora no tiene ninguna instancia 319 00:14:42,519 --> 00:14:43,440 Dentro, vale 320 00:14:43,440 --> 00:14:47,169 Ahora 321 00:14:47,169 --> 00:14:50,250 Utilizas un bucle para de forma 322 00:14:50,250 --> 00:14:51,529 Indefinida 323 00:14:51,529 --> 00:14:56,250 instanciar la variable anterior como manejador de círculos con tres círculos. 324 00:14:56,649 --> 00:14:58,889 Vale, entonces, este bucle va a estar todo el rato. 325 00:14:59,809 --> 00:15:01,909 Vale, pidiendo todo el rato. 326 00:15:02,610 --> 00:15:06,789 Dame tres círculos, dame tres círculos y te muestro el área. 327 00:15:07,330 --> 00:15:10,330 Y ahora dame tres cuadrados y te muestro el área. 328 00:15:13,009 --> 00:15:15,169 Vale, pero el manejador cuadrados, aunque no mucho, tiene áreas. 329 00:15:15,289 --> 00:15:16,190 Entonces, va a estar todo el rato. 330 00:15:16,649 --> 00:15:18,649 Dame tres círculos, te muestro las áreas. 331 00:15:19,149 --> 00:15:21,110 Dame tres cuadrados, te muestro las áreas. 332 00:15:21,529 --> 00:15:43,309 ¿Vale? Entonces para eso va a tener que instanciar manejador de círculos, porque es el que es capaz de calcular las áreas de círculos y manejador de cuadrados, pero como ambas heredan de manejador figuras, vamos a utilizar la única referencia y esta referencia va a ir rotando, a veces va a ser manejador cuadrados, a veces va a ser manejador de círculos. 333 00:15:43,309 --> 00:15:45,750 entonces dice, bucle indefinido 334 00:15:45,750 --> 00:15:47,110 bucle indefinido, venga, aunque 335 00:15:47,110 --> 00:15:51,769 vamos a poner esto con un par 336 00:15:51,769 --> 00:15:53,629 hombre, nunca jamás 337 00:15:53,629 --> 00:15:55,110 hagáis esto, vale 338 00:15:55,110 --> 00:15:57,610 porque de este bucle no salimos 339 00:15:57,610 --> 00:15:58,850 nunca, nada más que pum 340 00:15:58,850 --> 00:16:01,250 matando el proceso ahí, vale 341 00:16:01,250 --> 00:16:02,909 venga, pues ahora 342 00:16:02,909 --> 00:16:05,389 le vamos a decir, oye 343 00:16:05,389 --> 00:16:05,870 mete 344 00:16:05,870 --> 00:16:08,309 tres 345 00:16:08,309 --> 00:16:10,830 radios de círculo 346 00:16:10,830 --> 00:16:15,450 Y me voy a dar el gustazo 347 00:16:15,450 --> 00:16:16,889 De meterle un break 348 00:16:16,889 --> 00:16:19,429 Porque hombre 349 00:16:19,429 --> 00:16:20,750 Me lo he ganado por edad 350 00:16:20,750 --> 00:16:22,169 A ver 351 00:16:22,169 --> 00:16:25,049 Tenemos aquí ya la clase leer 352 00:16:25,049 --> 00:16:25,870 Yo sí que la tenía 353 00:16:25,870 --> 00:16:28,409 Entonces ya podemos hacer 354 00:16:28,409 --> 00:16:30,250 In radio 355 00:16:30,250 --> 00:16:33,590 Uno va a ser igual 356 00:16:33,590 --> 00:16:35,850 A leer punto 357 00:16:35,850 --> 00:16:37,610 Entero 358 00:16:37,610 --> 00:16:38,730 Como estamos con entero 359 00:16:38,730 --> 00:16:41,710 Como son tres círculos 360 00:16:41,710 --> 00:16:42,649 Pues tres radios 361 00:16:42,649 --> 00:16:55,039 vale, vale lo mismo 362 00:16:55,039 --> 00:17:03,350 vale, entonces 363 00:17:03,350 --> 00:17:06,150 esto lo tendremos que meter en algún array de figuras 364 00:17:06,150 --> 00:17:08,650 porque nuestros manejadores trabajan con array de figuras 365 00:17:08,650 --> 00:17:09,950 ¿verdad? pues vamos a hacernos 366 00:17:09,950 --> 00:17:12,230 un array, vamos a hacernos 367 00:17:12,230 --> 00:17:14,130 un array de figuras geométricas 368 00:17:14,130 --> 00:17:23,500 de hecho para que quede lo vamos a hacer al principio 369 00:17:23,500 --> 00:17:25,740 del array para decir aquí van a ir las figuras 370 00:17:25,740 --> 00:17:26,619 geométricas 371 00:17:26,619 --> 00:17:29,660 un array de figuras geométricas 372 00:17:29,660 --> 00:17:44,740 ¿vale? y vamos a 373 00:17:44,740 --> 00:17:47,039 como el bucle va a estar todo el rato 374 00:17:47,039 --> 00:17:49,299 tres círculos, haz lo que sea 375 00:17:49,299 --> 00:17:51,059 tres cuadrados, haz lo que sea 376 00:17:51,059 --> 00:17:52,740 pues vamos a 377 00:17:52,740 --> 00:17:54,440 hacerlo de tal manera que el bucle 378 00:17:54,440 --> 00:17:55,980 meta en ese mismo array 379 00:17:55,980 --> 00:17:59,019 los tres círculos primero y los tres cuadrados 380 00:17:59,019 --> 00:17:59,420 después 381 00:17:59,420 --> 00:18:03,119 como en ese array de figuras geométricas 382 00:18:03,119 --> 00:18:04,680 caben círculos cuadrados, lo que sea 383 00:18:04,680 --> 00:18:07,299 vale, pues entonces ahora ya 384 00:18:07,299 --> 00:18:08,900 en este array de figuras 385 00:18:08,900 --> 00:18:15,440 en lugar de hacer esto así 386 00:18:15,440 --> 00:18:16,339 que es un poco cutre 387 00:18:16,339 --> 00:18:18,599 al haber declarado el array antes 388 00:18:18,599 --> 00:18:19,819 lo vamos a hacer ya en un bucle 389 00:18:19,819 --> 00:18:22,900 desde i igual a 0 390 00:18:22,900 --> 00:18:24,640 mientras i sea menor que 3 391 00:18:24,640 --> 00:18:26,500 incrementando i 392 00:18:26,500 --> 00:18:28,019 pues en lugar de meterlo aquí 393 00:18:28,019 --> 00:18:30,700 lo que hacemos es lo siguiente 394 00:18:30,700 --> 00:18:36,579 figuras de i 395 00:18:36,579 --> 00:18:41,180 que sea igual a new 396 00:18:41,180 --> 00:18:44,440 círculo 397 00:18:44,440 --> 00:18:47,740 con el radio correspondiente. 398 00:18:50,470 --> 00:18:50,589 ¿Vale? 399 00:18:51,569 --> 00:18:56,160 Entonces, aquí 400 00:18:56,160 --> 00:19:01,299 me da el error porque en su momento 401 00:19:01,299 --> 00:19:03,000 yo seguramente en la clase círculo 402 00:19:03,000 --> 00:19:04,640 no hemos declarado un constructor 403 00:19:04,640 --> 00:19:07,339 con el valor de radio. 404 00:19:08,019 --> 00:19:08,180 ¿Verdad? 405 00:19:08,180 --> 00:19:10,579 entonces, vamos a ver 406 00:19:10,579 --> 00:19:11,460 en círculo 407 00:19:11,460 --> 00:19:14,599 los únicos constructores que tenemos 408 00:19:14,599 --> 00:19:16,279 tenemos 409 00:19:16,279 --> 00:19:19,099 uno solo que tiene que recibir los tres parámetros 410 00:19:19,099 --> 00:19:21,140 por comodidad 411 00:19:21,140 --> 00:19:22,519 vamos a hacernos 412 00:19:22,519 --> 00:19:24,759 o nos creamos el círculo dando un nombrecito 413 00:19:24,759 --> 00:19:25,599 círculo 1 414 00:19:25,599 --> 00:19:27,400 o nos hacemos un constructor 415 00:19:27,400 --> 00:19:30,400 como nos lo pide el cuerpo la aplicación 416 00:19:30,400 --> 00:19:32,779 venga, me viene muy bien un constructor solo con el radio 417 00:19:32,779 --> 00:19:33,559 y el nombre 418 00:19:33,559 --> 00:19:36,059 como no lo está usando la aplicación 419 00:19:36,059 --> 00:19:37,819 paso de él y no sé qué, pues ya está 420 00:19:37,819 --> 00:19:39,759 es el momento este de incorporarlo 421 00:19:39,759 --> 00:19:43,460 círculo 422 00:19:43,460 --> 00:19:45,039 int radio 423 00:19:45,039 --> 00:19:55,640 ala 424 00:19:55,640 --> 00:20:07,380 ah vale 425 00:20:07,380 --> 00:20:08,099 porque no he puesto 426 00:20:08,099 --> 00:20:08,720 vale 427 00:20:08,720 --> 00:20:15,630 ¿por qué me da aquí este error? 428 00:20:16,309 --> 00:20:17,289 ¿vale? me da aquí este error 429 00:20:17,289 --> 00:20:19,930 porque yo al no haber puesto 430 00:20:19,930 --> 00:20:23,390 el super ahí arriba 431 00:20:23,390 --> 00:20:26,069 o sea esta clase círculo, recordad que círculo 432 00:20:26,069 --> 00:20:27,089 hereda 433 00:20:27,089 --> 00:20:29,269 ¿Dónde está círculo? 434 00:20:29,349 --> 00:20:31,009 Círculo hereda de figura geométrica 435 00:20:31,009 --> 00:20:31,769 ¿Vale? 436 00:20:32,069 --> 00:20:34,509 Figura geométrica solo tiene este constructor 437 00:20:34,509 --> 00:20:36,690 Entonces al tener solo este constructor 438 00:20:36,690 --> 00:20:39,329 Yo ya he hecho desaparecer 439 00:20:39,329 --> 00:20:40,549 El constructor sin parámetros 440 00:20:40,549 --> 00:20:42,569 Entonces aquí implícitamente 441 00:20:42,569 --> 00:20:44,130 Implícitamente 442 00:20:44,130 --> 00:20:45,690 ¿Vale? 443 00:20:46,430 --> 00:20:48,369 Al no haber puesto yo nada 444 00:20:48,369 --> 00:20:49,849 Él implícitamente asume 445 00:20:49,849 --> 00:20:51,809 Que estamos llamando a este 446 00:20:51,809 --> 00:20:53,950 ¿Vale? 447 00:20:53,950 --> 00:20:55,710 Y el constructor sin parámetros 448 00:20:55,710 --> 00:20:57,849 no existe para manejador de figuras 449 00:20:57,849 --> 00:21:00,049 entonces vamos a hacer un constructor 450 00:21:00,049 --> 00:21:01,750 sin parámetros en manejador de figuras 451 00:21:01,750 --> 00:21:03,250 que es lo que normalmente hacemos 452 00:21:03,250 --> 00:21:05,549 entonces normalmente hacemos 453 00:21:05,549 --> 00:21:07,970 constructor con parámetros, sin parámetros 454 00:21:07,970 --> 00:21:09,829 eso lo hacemos por sistema 455 00:21:09,829 --> 00:21:10,990 ¿por qué? 456 00:21:11,990 --> 00:21:13,789 ahora empezamos a ver algunas razones 457 00:21:13,789 --> 00:21:15,549 una la más importante es que cuando 458 00:21:15,549 --> 00:21:16,970 nuestras clases las usan otros 459 00:21:16,970 --> 00:21:19,930 esos otros a veces nos pueden instanciar de muchas maneras 460 00:21:19,930 --> 00:21:21,269 pues yo le ofrezco todas y ya está 461 00:21:21,269 --> 00:21:23,250 y otra es porque cuando 462 00:21:23,250 --> 00:21:25,210 nos metemos en una jerarquía de herencia 463 00:21:25,210 --> 00:21:26,609 Pasan estas cosas con el super 464 00:21:26,609 --> 00:21:29,069 Pues venga, hacemos un constructor 465 00:21:29,069 --> 00:21:30,470 Sin parámetros 466 00:21:30,470 --> 00:21:38,200 Que no haga nada 467 00:21:38,200 --> 00:21:39,940 ¿Vale? Y ya está 468 00:21:39,940 --> 00:21:42,039 Y mi constructor círculo se queda tan tranquilo 469 00:21:42,039 --> 00:21:44,200 Vale, y ahora ya me voy al main 470 00:21:44,200 --> 00:21:46,440 Y ya hago los tres circulitos 471 00:21:46,440 --> 00:21:46,839 Con los 472 00:21:46,839 --> 00:21:49,380 Vale, y ahora me dice 473 00:21:49,380 --> 00:21:50,039 Oye 474 00:21:50,039 --> 00:21:54,200 Muéstrame las áreas de los círculos 475 00:21:54,200 --> 00:21:56,359 Para eso tengo un manejador 476 00:21:56,359 --> 00:21:58,000 No hace falta que recorra yo otra vez el array 477 00:21:58,000 --> 00:21:58,819 Tengo un manejador 478 00:21:58,819 --> 00:22:03,579 Pero el manejador que muestra solo las áreas de los círculos es manejador de círculos 479 00:22:03,579 --> 00:22:06,839 Luego entonces esta referencia, este handler figuras que yo he hecho aquí 480 00:22:06,839 --> 00:22:12,000 Este handler figuras lo voy a instanciar ahora como manejador de círculos 481 00:22:12,000 --> 00:22:20,430 Lo instancio como manejador de círculos 482 00:22:20,430 --> 00:22:25,690 No tiene constructores, puede que no tenga constructores sin parámetros 483 00:22:25,690 --> 00:22:29,069 O que no 484 00:22:29,069 --> 00:22:32,269 Manejador círculos 485 00:22:32,269 --> 00:22:33,309 Es que no lo he llamado así 486 00:22:33,309 --> 00:22:34,349 Manejador círculos 487 00:22:34,349 --> 00:22:37,549 Ah, vale, es que me he hecho el 488 00:22:37,549 --> 00:22:42,430 Ah, es que he hecho el de cuadrado 489 00:22:42,430 --> 00:22:44,589 Creía que había hecho el de círculos en vez del de cuadrados 490 00:22:44,589 --> 00:22:46,349 Y he hecho el de cuadrados 491 00:22:46,349 --> 00:22:46,930 Vale 492 00:22:46,930 --> 00:22:49,390 Venga, pues entonces 493 00:22:49,390 --> 00:22:52,029 Vale 494 00:22:52,029 --> 00:22:53,529 No pasa nada 495 00:22:53,529 --> 00:22:55,049 Vamos a hacer primero los cuadrados 496 00:22:55,049 --> 00:22:57,869 Metré tres lados de cuadrados 497 00:22:57,869 --> 00:23:02,730 ya está, y el otro sería igual, mete tres lados de cuadrados 498 00:23:02,730 --> 00:23:05,849 y ahora figura nu cuadrado 499 00:23:05,849 --> 00:23:11,150 y ahora cuadrado le pasa lo mismo, que necesita un constructor 500 00:23:11,150 --> 00:23:14,869 solo con el lado, y aquí será manejador 501 00:23:14,869 --> 00:23:18,829 cuadrados, vale, y cuadrado necesita 502 00:23:18,829 --> 00:23:24,400 ahora un cuadrado 503 00:23:24,400 --> 00:23:28,519 necesita un constructor solo con el lado, pues ya está 504 00:23:28,519 --> 00:23:37,299 vale, dispunto 505 00:23:37,299 --> 00:23:39,599 lado, igual a 506 00:23:39,599 --> 00:23:41,839 lado 507 00:23:41,839 --> 00:23:44,660 y aquí int lado 508 00:23:44,660 --> 00:23:52,369 vale, y ahora mi handler se convierte 509 00:23:52,369 --> 00:23:53,630 en manejador cuadrados 510 00:23:53,630 --> 00:23:55,390 se convierte en manejador cuadrados 511 00:23:55,390 --> 00:23:58,390 porque voy a manejar los cuadrados 512 00:23:58,390 --> 00:23:58,970 solamente 513 00:23:58,970 --> 00:24:01,470 bueno, pues ahora 514 00:24:01,470 --> 00:24:04,309 pero para que el manejador cuadrados pueda manejar 515 00:24:04,309 --> 00:24:06,529 los cuadrados, tiene que tener las figuras dentro de él 516 00:24:06,529 --> 00:24:08,230 vale, tiene que tener las figuras 517 00:24:08,230 --> 00:24:11,710 dentro de él, pues entonces vamos a meter 518 00:24:11,710 --> 00:24:14,170 a manejador cuadrados 519 00:24:14,170 --> 00:24:17,970 vamos a meter a manejador cuadrados 520 00:24:17,970 --> 00:24:28,890 figuras, este array que acabo de leer 521 00:24:28,890 --> 00:24:33,660 entonces 522 00:24:33,660 --> 00:24:38,480 esto, esta aplicación va a tener 523 00:24:38,480 --> 00:24:42,559 más sentido si creamos ya el array de figuras completo con los círculos y los 524 00:24:42,559 --> 00:24:45,920 cuadrados, no tenía que haber borrado lo anterior porque ahora 525 00:24:45,920 --> 00:24:48,680 vamos a crear 526 00:24:48,680 --> 00:24:51,680 el array con todo 527 00:24:51,680 --> 00:24:52,619 primero metemos 528 00:24:52,619 --> 00:24:54,880 radios de 529 00:24:54,880 --> 00:24:57,119 círculos 530 00:24:57,119 --> 00:25:01,960 estamos haciendo el array primero completo 531 00:25:01,960 --> 00:25:02,920 con las 6 figuras 532 00:25:02,920 --> 00:25:05,339 mete 3 radios de círculos 533 00:25:05,339 --> 00:25:06,160 y ahora ya 534 00:25:06,160 --> 00:25:08,940 desde i igual a 535 00:25:08,940 --> 00:25:12,319 3 mientras i sea menor que 6 536 00:25:12,319 --> 00:25:19,160 que son y 17 ya 537 00:25:19,160 --> 00:25:21,740 vale pues entonces 538 00:25:21,740 --> 00:25:22,819 que he hecho al principio 539 00:25:22,819 --> 00:25:24,079 me he construido el array 540 00:25:24,079 --> 00:25:26,299 las 3 primeras posiciones el cuadrado 541 00:25:26,299 --> 00:25:29,019 las 3 siguientes de la 3 a la 5 542 00:25:29,019 --> 00:25:30,980 el círculo 543 00:25:30,980 --> 00:25:32,619 los círculos 544 00:25:32,619 --> 00:25:35,859 vale ya tengo 545 00:25:35,859 --> 00:25:37,279 mis 6 figuras 546 00:25:37,279 --> 00:25:38,279 y ahora ya 547 00:25:38,279 --> 00:25:41,960 instanciaría manejador de figuras 548 00:25:41,960 --> 00:25:44,720 le pondré estas figuras 549 00:25:44,720 --> 00:25:45,759 y llamaré al método 550 00:25:45,759 --> 00:25:48,240 y luego a handler figuras le instanciaré 551 00:25:48,240 --> 00:25:50,279 como manejador de círculos 552 00:25:50,279 --> 00:25:52,299 le fijaré las figuras suyas 553 00:25:52,299 --> 00:25:54,079 las figuras otra vez, las mismas 554 00:25:54,079 --> 00:25:56,519 y llamaré al método y punto pelota 555 00:25:56,519 --> 00:25:57,180 ¿vale? 556 00:25:58,480 --> 00:26:00,099 pues lo completáis 557 00:26:00,099 --> 00:26:07,680 efectivamente