1 00:00:00,000 --> 00:00:01,439 Venga 2 00:00:01,439 --> 00:00:04,559 Pues nada, los magos y las magas 3 00:00:04,559 --> 00:00:08,439 Yo es que soy muy mágica 4 00:00:08,439 --> 00:00:10,220 Venga 5 00:00:10,220 --> 00:00:15,039 Lo hacemos todo entre los dos 6 00:00:15,039 --> 00:00:16,160 No tengas la mínima duda 7 00:00:16,160 --> 00:00:20,980 Nos compenetramos a la perfección 8 00:00:20,980 --> 00:00:21,620 Ya te lo digo 9 00:00:21,620 --> 00:00:24,339 Venga, a ver, el mago elemental 10 00:00:24,339 --> 00:00:34,899 Vale, aquí 11 00:00:34,899 --> 00:00:36,340 Teniendo en cuenta que esto 12 00:00:36,340 --> 00:00:39,159 hacer estas clases 13 00:00:39,159 --> 00:00:41,039 es facilísimo porque es hacer unas clases 14 00:00:41,039 --> 00:00:42,899 unas propiedades y unos métodos, con lo cual 15 00:00:42,899 --> 00:00:44,880 de alguna manera lo que se espera 16 00:00:44,880 --> 00:00:47,460 es que seáis capaces de extraer 17 00:00:47,460 --> 00:00:49,079 meta información 18 00:00:49,079 --> 00:00:51,299 meta información 19 00:00:51,299 --> 00:00:52,840 sí, que es 20 00:00:52,840 --> 00:00:54,500 algo más de lo que se dice 21 00:00:54,500 --> 00:00:56,759 es decir, tomar decisiones 22 00:00:56,759 --> 00:00:58,880 son clases abstractas, son interfaces 23 00:00:58,880 --> 00:01:00,299 eso es lo que se evalúa 24 00:01:00,299 --> 00:01:03,039 porque hacer una clase con propiedad tal y tal 25 00:01:03,039 --> 00:01:04,760 eso no se puede 26 00:01:04,760 --> 00:01:06,280 evaluar, eso es un cero 27 00:01:06,280 --> 00:01:07,560 porque es que te lo hace el eclipse. 28 00:01:07,760 --> 00:01:09,579 Lo que tenemos que evaluar es que sepáis capaces 29 00:01:09,579 --> 00:01:14,519 de extraer información extra, entre líneas, entre comillas, 30 00:01:14,620 --> 00:01:15,239 de una situación. 31 00:01:15,680 --> 00:01:20,019 Por ejemplo, en este caso, el mago elemental, este de aquí, 32 00:01:20,939 --> 00:01:23,939 la forma de lanzar el hechizo depende del mago que sea. 33 00:01:24,260 --> 00:01:27,120 Conclusión, ¿cómo lanza un hechizo el mago? 34 00:01:27,519 --> 00:01:28,299 No lo sabemos. 35 00:01:28,819 --> 00:01:30,359 Conclusión, clase abstracta. 36 00:01:30,799 --> 00:01:31,019 ¿Vale? 37 00:01:31,359 --> 00:01:33,700 Primera cosa que se evalúa. 38 00:01:33,700 --> 00:01:36,760 ¿clase abstracta o interfaz? 39 00:01:37,099 --> 00:01:38,640 hombre, pues clase abstracta 40 00:01:38,640 --> 00:01:40,659 porque tiene una propiedad nombre, luego no puede ser 41 00:01:40,659 --> 00:01:42,700 interfaz, luego aquí no hay tutía 42 00:01:42,700 --> 00:01:44,540 mago elemental, es una clase 43 00:01:44,540 --> 00:01:46,299 abstracta si yo hago un diseño 44 00:01:46,299 --> 00:01:48,739 acorde con la lectura 45 00:01:48,739 --> 00:01:50,099 que me están ofreciendo 46 00:01:50,099 --> 00:01:51,099 de la situación 47 00:01:51,099 --> 00:01:52,840 pues ya está 48 00:01:52,840 --> 00:01:54,900 esto era 49 00:01:54,900 --> 00:01:58,439 aprendizable 50 00:01:58,439 --> 00:02:00,120 sí, vale 51 00:02:00,120 --> 00:02:00,819 esto 52 00:02:00,819 --> 00:02:03,379 tú dijiste que por convención se sabían llamar 53 00:02:03,379 --> 00:02:05,140 sí, sí, sí, sí 54 00:02:05,140 --> 00:02:07,040 sí, tienes razón 55 00:02:07,040 --> 00:02:10,020 vale, entonces, bueno, paso de los get y los set 56 00:02:10,020 --> 00:02:11,060 porque eso da igual 57 00:02:11,060 --> 00:02:13,539 ahora mismo 58 00:02:13,539 --> 00:02:14,879 y como es mucho que vamos a ir rápido 59 00:02:14,879 --> 00:02:16,819 tiene una propiedad string nombre 60 00:02:16,819 --> 00:02:20,000 y aquí podéis poner constructores 61 00:02:20,000 --> 00:02:21,740 lo que os dé la gana, eso pues bueno 62 00:02:21,740 --> 00:02:22,680 podemos más o menos 63 00:02:22,680 --> 00:02:25,560 pero lo importante era darse cuenta 64 00:02:25,560 --> 00:02:27,599 de que es una clase abstracta y no interfaz 65 00:02:27,599 --> 00:02:28,539 porque tiene propiedad 66 00:02:28,539 --> 00:02:30,939 y que el método lanzar hechizo 67 00:02:30,939 --> 00:02:32,620 no puede tener un código 68 00:02:32,620 --> 00:02:34,259 pues ya está 69 00:02:34,259 --> 00:02:36,919 y es que ver subclases abajo 70 00:02:36,919 --> 00:02:39,000 es que estaba ya completamente ofrecido 71 00:02:39,000 --> 00:02:40,960 que eso tenía que ser una clase abstracta 72 00:02:40,960 --> 00:02:42,479 es que solo nos faltaba decir 73 00:02:42,479 --> 00:02:44,479 hacer una clase abstracta mago elemental 74 00:02:44,479 --> 00:02:47,060 pues venga 75 00:02:47,060 --> 00:03:01,710 a ver 76 00:03:01,710 --> 00:03:03,210 Cristian 77 00:03:03,210 --> 00:03:06,629 ¿cómo se escribe hechizo? 78 00:03:06,629 --> 00:03:10,490 y la primera de ellas 79 00:03:10,490 --> 00:03:10,949 ¿cuál es? 80 00:03:13,580 --> 00:03:13,939 vale 81 00:03:13,939 --> 00:03:17,319 ¿por qué no te diste cuenta de eso en el examen? 82 00:03:19,699 --> 00:03:21,580 ¿tú te crees que yo puedo encontrarme 83 00:03:21,580 --> 00:03:23,860 un examen así e irme a la cama 84 00:03:23,860 --> 00:03:24,460 tranquila? 85 00:03:34,259 --> 00:03:35,340 me echaste 86 00:03:35,340 --> 00:03:35,719 me echaste, vamos 87 00:03:35,719 --> 00:03:38,139 vale, pues esta clase 88 00:03:38,139 --> 00:03:39,699 con tener esto ya era suficiente 89 00:03:39,699 --> 00:03:42,120 que ponéis constructores, Getty Set 90 00:03:42,120 --> 00:03:43,919 para nombre, pues muy bien, lo ponéis 91 00:03:43,919 --> 00:03:49,419 sí, pero 92 00:03:49,419 --> 00:03:52,039 en defensa del jefe 93 00:03:52,039 --> 00:03:54,020 él puede decidir largarte cuando le dé la gana 94 00:03:54,020 --> 00:03:56,259 y estáis en el punto 95 00:03:56,259 --> 00:03:58,039 de mira, porque es que 96 00:03:58,039 --> 00:04:00,020 se os odia mucho en general a vuestra 97 00:04:00,020 --> 00:04:00,699 generación 98 00:04:00,699 --> 00:04:03,560 no lo sé, no lo sé, porque 99 00:04:03,560 --> 00:04:04,800 no lo sé, no es 100 00:04:04,800 --> 00:04:08,060 entonces, en cuanto os vean 101 00:04:08,060 --> 00:04:09,960 coger el teléfono para ir tenéis un mensaje 102 00:04:09,960 --> 00:04:11,680 ya estáis dando la excusa para decir 103 00:04:11,680 --> 00:04:14,080 otro que vive pegado a su teléfono, a la calle 104 00:04:14,080 --> 00:04:15,800 se vayan a la mierda 105 00:04:15,800 --> 00:04:17,560 sí, pero 106 00:04:17,560 --> 00:04:19,439 los que se van a la mierda son los que te van a pagar 107 00:04:19,439 --> 00:04:21,540 así que mejor que no se vayan a la mierda 108 00:04:21,540 --> 00:04:23,920 venga, entonces 109 00:04:23,920 --> 00:04:26,040 el fuego y el aire 110 00:04:26,040 --> 00:04:27,579 pues es que no tienen nada que 111 00:04:27,579 --> 00:04:29,100 que hacer 112 00:04:38,060 --> 00:04:45,360 vale, entonces como el mago fuego 113 00:04:45,360 --> 00:04:46,680 es el mago elemental 114 00:04:46,680 --> 00:04:49,459 tiene que implementar el método 115 00:04:49,459 --> 00:04:51,379 y este método dice aquí 116 00:04:51,379 --> 00:04:52,800 que ahora ya este sí que tiene cuerpo 117 00:04:52,800 --> 00:04:54,959 pero para eso necesita la propiedad adicional 118 00:04:54,959 --> 00:04:56,220 pues ya está 119 00:04:56,220 --> 00:04:59,339 el fuego superficie y el aire velocidad 120 00:04:59,339 --> 00:05:01,540 pues ya ves tú que complicación 121 00:05:01,540 --> 00:05:03,360 el fuego superficie 122 00:05:04,240 --> 00:05:17,199 con lo cual este pues ya está 123 00:05:17,199 --> 00:05:26,259 Todo esto 124 00:05:26,259 --> 00:05:30,759 Y con esto ya era suficiente 125 00:05:30,759 --> 00:05:32,759 Que luego además 126 00:05:32,759 --> 00:05:34,879 Lo rizáis bien, ponéis get set 127 00:05:34,879 --> 00:05:36,759 Ponéis modificadores de acceso 128 00:05:36,759 --> 00:05:38,279 Pues muy bien, muy bonito 129 00:05:38,279 --> 00:05:41,060 Vale, se supone que eso ya lo tenéis interiorizado 130 00:05:41,060 --> 00:05:41,939 Pero 131 00:05:41,939 --> 00:05:44,079 Con esto, esto es lo que evaluamos 132 00:05:44,079 --> 00:05:45,199 Ya ves tú que tontería 133 00:05:45,199 --> 00:05:46,800 El mago aire pues lo mismo 134 00:05:46,800 --> 00:05:58,029 El mago aire sin embargo 135 00:05:58,029 --> 00:05:59,769 Pues tenía la velocidad del viento 136 00:05:59,769 --> 00:06:16,259 Y al heredar del mago elemental, pues tiene que implementar su método. 137 00:06:24,660 --> 00:06:28,860 Empujo o soplo a esta velocidad. 138 00:06:28,860 --> 00:06:35,139 hala, tres clases hechas 139 00:06:35,139 --> 00:06:36,040 vale 140 00:06:36,040 --> 00:06:40,670 ahora, ¿qué más hay? 141 00:06:41,709 --> 00:06:43,930 este tiene capacidad de estudiar 142 00:06:43,930 --> 00:06:45,610 no tiene propiedades 143 00:06:45,610 --> 00:06:47,829 ni tiene nada, solo tiene comportamiento 144 00:06:47,829 --> 00:06:49,730 entonces 145 00:06:49,730 --> 00:06:51,629 aquí, pues el 146 00:06:51,629 --> 00:06:53,110 punto evaluable es 147 00:06:53,110 --> 00:06:55,490 decidir, darse cuenta 148 00:06:55,490 --> 00:06:57,750 de que esto se queda mejor representado 149 00:06:57,750 --> 00:06:59,550 en una interfaz, que es lo que solo tiene 150 00:06:59,550 --> 00:07:01,370 comportamiento, una interfaz 151 00:07:01,370 --> 00:07:03,790 ¿vale? entonces alguien puede comportarse 152 00:07:03,790 --> 00:07:04,550 como un aprendiz 153 00:07:04,550 --> 00:07:07,569 ¿vale? pero sin embargo, alguien 154 00:07:07,569 --> 00:07:09,449 no solo se comporta como un mago elemental 155 00:07:09,449 --> 00:07:11,649 sino que es un mago elemental 156 00:07:11,649 --> 00:07:13,470 porque tiene nombre, por eso 157 00:07:13,470 --> 00:07:14,649 es una clase abstracta 158 00:07:14,649 --> 00:07:17,290 pues venga, el aprendiz es una interfaz 159 00:07:17,290 --> 00:07:19,389 y ya está, ¿y qué comportamiento ofrece? 160 00:07:19,649 --> 00:07:20,610 pues el de estudiar 161 00:07:20,610 --> 00:07:23,310 ¿cuál? no sabemos, aquí ya decimos que no sabemos 162 00:07:23,310 --> 00:07:24,569 cuál es, por eso es una interfaz 163 00:07:24,569 --> 00:07:28,610 pues hacemos 164 00:07:28,610 --> 00:07:31,290 la interfaz 165 00:07:31,290 --> 00:07:36,149 aprendizable 166 00:07:36,149 --> 00:07:41,589 aprendizable, aprendible 167 00:07:41,589 --> 00:07:47,290 voy a estudiar 168 00:07:47,290 --> 00:07:51,189 a veces son amenas 169 00:07:51,189 --> 00:07:54,790 si la verdad es que a veces si ponéis alguna chorrada 170 00:07:54,790 --> 00:07:55,769 pues algo me entretengo 171 00:07:55,769 --> 00:08:00,949 si que no es tu caso 172 00:08:00,949 --> 00:08:04,069 es que lo recuerdo y no es tu caso 173 00:08:04,069 --> 00:08:07,550 ¿qué dices? 174 00:08:07,870 --> 00:08:10,170 ni de coña, obviamente no 175 00:08:10,170 --> 00:08:11,910 pues porque no 176 00:08:11,910 --> 00:08:13,870 porque los 3 RAs también tienen parte 177 00:08:13,870 --> 00:08:16,129 de lo anterior, que tienes que decir una colección 178 00:08:16,129 --> 00:08:17,689 tienes que decir, hombre a ver 179 00:08:17,689 --> 00:08:19,930 si con hacer esto apruebas 3 RAs que es casi 180 00:08:19,930 --> 00:08:22,089 la mitad del curso, ¿para qué estamos 181 00:08:22,089 --> 00:08:23,949 aquí nosotros? si es que esto se 182 00:08:23,949 --> 00:08:24,689 aprenden 183 00:08:24,689 --> 00:08:26,250 vale 184 00:08:26,250 --> 00:08:30,209 aprendiz a estudiar 185 00:08:30,209 --> 00:08:33,690 Y ahora, ¿qué más tenemos? 186 00:08:33,929 --> 00:08:35,330 Pues tenemos el mago estudiante 187 00:08:35,330 --> 00:08:37,850 y el mago estudiante puede estudiar 188 00:08:37,850 --> 00:08:39,730 y además es elemental, pues entonces ya no lo están 189 00:08:39,730 --> 00:08:41,149 diciendo, pues hereda e implementa. 190 00:08:41,690 --> 00:08:43,690 Entonces, si alguno había 191 00:08:43,690 --> 00:08:45,470 hecho esto como clase abstracta, 192 00:08:45,669 --> 00:08:47,909 ya esa información se lo hace cambiar a interfaz 193 00:08:47,909 --> 00:08:49,629 porque tú no puedes heredar de dos 194 00:08:49,629 --> 00:08:51,970 clases a la vez, entonces una tiene que ser interfaz. 195 00:08:52,350 --> 00:08:53,710 La primera no puede ser porque tiene 196 00:08:53,710 --> 00:08:54,950 un nombre, pues tiene que ser esta. 197 00:08:55,509 --> 00:08:57,509 Entonces, por cualquier parte que abordaras 198 00:08:57,509 --> 00:08:58,450 llegabas a esto. 199 00:08:58,450 --> 00:09:01,600 Entonces 200 00:09:01,600 --> 00:09:09,009 El mago 201 00:09:09,009 --> 00:09:11,110 Elemental 202 00:09:11,110 --> 00:09:12,110 Este de aquí 203 00:09:12,110 --> 00:09:15,029 Uy, perdón, no, el mago elemental no, mago estudiante 204 00:09:15,029 --> 00:09:19,879 Mago estudiante 205 00:09:19,879 --> 00:09:20,639 Vale 206 00:09:20,639 --> 00:09:23,059 El mago estudiante es elemental 207 00:09:23,059 --> 00:09:28,940 Y aparte 208 00:09:28,940 --> 00:09:30,840 Es aprendiz 209 00:09:30,840 --> 00:09:31,960 Implement 210 00:09:31,960 --> 00:09:34,220 Implementes 211 00:09:34,220 --> 00:09:42,889 Entonces, al tener las dos 212 00:09:42,889 --> 00:09:45,129 cosas, pues tiene que implementar 213 00:09:45,129 --> 00:09:46,029 los dos métodos. 214 00:09:46,389 --> 00:09:48,990 ¿Cómo los implementa? Pues como 215 00:09:48,990 --> 00:09:50,950 me dice aquí. Ya está. 216 00:10:08,340 --> 00:10:09,279 ¡Hala! Rapidito. 217 00:10:09,440 --> 00:10:11,299 Poniendo cualquier cosa. Vale. 218 00:10:11,620 --> 00:10:12,860 Y las clases ya están. 219 00:10:14,379 --> 00:10:17,059 Y ahora ya 220 00:10:17,059 --> 00:10:18,779 un main con 221 00:10:18,779 --> 00:10:20,960 tres magos. Con esto 222 00:10:20,960 --> 00:10:27,039 de aquí. Pues este 223 00:10:27,039 --> 00:10:27,460 main. 224 00:10:33,120 --> 00:10:33,720 ¡Ay! 225 00:10:57,019 --> 00:10:58,399 Ya no sé ni escribirlo. 226 00:10:59,620 --> 00:11:00,000 Vale. 227 00:11:04,470 --> 00:11:06,870 Vale, pues ya está 228 00:11:06,870 --> 00:11:08,590 Hacemos tres magos, una Rai 229 00:11:08,590 --> 00:11:10,149 De tres magos elementales 230 00:11:10,149 --> 00:11:12,309 Que alguno me dijo, una Rai, pero si yo no estudio a Rai 231 00:11:12,309 --> 00:11:15,309 Por Dios, pues eso es lo que no puede ocurrir 232 00:11:15,309 --> 00:11:16,309 Que de un examen a otro 233 00:11:16,309 --> 00:11:17,769 Se subieron las cosas 234 00:11:17,769 --> 00:11:20,950 Estaba claro que tú no ibas a ser de esos 235 00:11:20,950 --> 00:11:23,250 Porque en cuanto viste la opción 236 00:11:23,250 --> 00:11:25,370 De ver una Rai, dijiste, por fin se han acordado de mí 237 00:11:25,370 --> 00:11:27,389 Elemental 238 00:11:27,389 --> 00:11:29,730 Soy así, soy así 239 00:11:29,730 --> 00:11:30,990 Me dicen que por dentro de todo 240 00:11:30,990 --> 00:11:31,649 Pues viene a todo Rai 241 00:11:31,649 --> 00:11:44,509 Ala, tres magos elementales 242 00:11:44,509 --> 00:11:45,289 Pues nada 243 00:11:45,289 --> 00:11:49,009 El mago cero 244 00:11:49,009 --> 00:11:54,019 Tenemos 245 00:11:54,019 --> 00:11:57,879 Un estudiante, un aire y un fuego 246 00:11:57,879 --> 00:12:05,830 Aquí como no tengo ni constructora ni nada 247 00:12:05,830 --> 00:12:07,190 Le voy a dejar 248 00:12:07,190 --> 00:12:08,809 No, no le puedo dejar sin nombre 249 00:12:08,809 --> 00:12:15,120 magos 0 250 00:12:15,120 --> 00:12:16,820 punto 251 00:12:16,820 --> 00:12:18,840 a ver, lo estoy haciendo horrible todo 252 00:12:18,840 --> 00:12:21,179 por la rapidez que decíamos, no estoy poniendo 253 00:12:21,179 --> 00:12:23,179 ni, no, porque es que 254 00:12:23,179 --> 00:12:24,779 ni siquiera lo tengo como protete, venga 255 00:12:24,779 --> 00:12:25,679 vamos a hacer un constructor 256 00:12:25,679 --> 00:12:28,279 vale 257 00:12:28,279 --> 00:12:31,080 ya es que 258 00:12:31,080 --> 00:12:33,299 me ha dicho rápido, rápido, pues yo voy rápido 259 00:12:33,299 --> 00:12:34,940 vale, entonces 260 00:12:34,940 --> 00:12:36,179 hacemos en mago elemental 261 00:12:36,179 --> 00:12:39,379 un constructor rápidamente 262 00:12:39,379 --> 00:12:41,019 Que no se tarda nada 263 00:12:41,019 --> 00:12:44,850 Con el nombre 264 00:12:44,850 --> 00:12:49,029 Y ahora 265 00:12:49,029 --> 00:12:51,889 Los otros pues se han quedado 266 00:12:51,889 --> 00:12:53,029 Ahora ya rojitos 267 00:12:53,029 --> 00:12:57,330 Hacemos un constructor 268 00:12:57,330 --> 00:12:59,090 Para cada uno de ellos 269 00:12:59,090 --> 00:13:05,539 Este ya tiene 270 00:13:05,539 --> 00:13:07,480 El mago fuego ya lo tiene 271 00:13:07,480 --> 00:13:11,940 El mago aire también 272 00:13:11,940 --> 00:13:20,139 Y el mago estudiante 273 00:13:20,139 --> 00:13:22,799 necesita 274 00:13:22,799 --> 00:13:25,440 un constructor también 275 00:13:25,440 --> 00:13:27,700 vale 276 00:13:27,700 --> 00:13:30,980 ya tenemos constructores en los tres 277 00:13:30,980 --> 00:13:33,360 y así esto se queda 278 00:13:33,360 --> 00:13:35,080 ahora más sencillo 279 00:13:35,080 --> 00:13:35,820 en el main 280 00:13:35,820 --> 00:13:38,559 el mago estudiante no sé cómo se va a llamar 281 00:13:38,559 --> 00:13:39,399 pero lo llamamos bla 282 00:13:39,399 --> 00:13:55,600 el mago aire 283 00:13:55,600 --> 00:13:57,720 se llama me da igual 284 00:13:57,720 --> 00:14:00,779 y empuja 285 00:14:00,779 --> 00:14:01,679 76 286 00:14:01,679 --> 00:14:20,200 Y este me da igual como se llame 287 00:14:20,200 --> 00:14:21,580 Y quema 87 288 00:14:21,580 --> 00:14:24,159 Y ahora 289 00:14:24,159 --> 00:14:25,940 Tienen que hacer cosas 290 00:14:25,940 --> 00:14:28,320 Entonces claro, uno podría uno por uno 291 00:14:28,320 --> 00:14:30,200 Hacer el casting para que hagan las cosas 292 00:14:30,200 --> 00:14:32,200 Pero ya especificamos que eso no valía 293 00:14:32,200 --> 00:14:33,539 Había que recorrer 294 00:14:33,539 --> 00:14:35,860 Ya especificamos que eso no valía 295 00:14:35,860 --> 00:14:37,100 Entonces hay que recorrer 296 00:14:37,100 --> 00:14:38,500 Pues cada 297 00:14:38,500 --> 00:14:41,879 Para cada mago elemental 298 00:14:41,879 --> 00:14:43,480 En mi array de magos 299 00:14:43,480 --> 00:14:45,700 Hay que ver 300 00:14:45,700 --> 00:14:46,600 Vamos a ver 301 00:14:46,600 --> 00:14:48,080 ¿Eres estudiante? 302 00:14:48,679 --> 00:14:49,840 Pues primero estudias 303 00:14:49,840 --> 00:14:51,779 Pues eso es lo que habrá que ver 304 00:14:51,779 --> 00:14:53,000 ¿Cómo vemos si es estudiante? 305 00:14:53,159 --> 00:14:53,700 Oye tú 306 00:14:53,700 --> 00:14:57,899 ¿Eres estudiante? 307 00:15:01,240 --> 00:15:02,919 Pues si eres estudiante 308 00:15:02,919 --> 00:15:05,200 En ese caso te puedo hacer el casting 309 00:15:05,200 --> 00:15:07,820 Amago estudiante 310 00:15:07,820 --> 00:15:09,039 Porque eres estudiante 311 00:15:09,039 --> 00:15:13,200 Y te hago el casting 312 00:15:13,200 --> 00:15:14,659 Y después de hacerte el casting 313 00:15:14,659 --> 00:15:15,940 Pues ya no habrá problema 314 00:15:15,940 --> 00:15:17,700 En que estudies 315 00:15:17,700 --> 00:15:24,269 y ahora ya 316 00:15:24,269 --> 00:15:26,409 seas estudiante o no lo seas 317 00:15:26,409 --> 00:15:27,669 en el resto de los casos 318 00:15:27,669 --> 00:15:30,309 pues ya está, este era el main 319 00:15:30,309 --> 00:15:42,580 bueno, sobre esta 320 00:15:42,580 --> 00:15:43,659 ejercicio nadie tiene dudas 321 00:15:43,659 --> 00:15:59,029 vale, voy a ir 322 00:15:59,029 --> 00:16:01,210 copiando 323 00:16:01,210 --> 00:16:03,009 las clases del otro 324 00:16:03,009 --> 00:16:43,620 a ver, de todas maneras que lo voy a subir 325 00:16:43,620 --> 00:16:44,879 la solución a la virtual 326 00:16:44,879 --> 00:16:46,899 tampoco os obsesionéis con copiarlo 327 00:16:46,899 --> 00:16:49,600 porque vamos a intentar ir fluidos 328 00:16:49,600 --> 00:16:52,000 porque ahora en el otro de más 329 00:16:52,000 --> 00:16:53,320 que vamos a completar el código 330 00:16:53,320 --> 00:17:01,700 venga, pues a ver 331 00:17:01,700 --> 00:17:12,599 vale, pues a ver 332 00:17:12,599 --> 00:17:13,859 el otro ejercicio 333 00:17:13,859 --> 00:17:16,519 partía ya de 334 00:17:16,519 --> 00:17:18,720 estas clases 335 00:17:18,720 --> 00:17:24,359 una partícula con carga, masa y posición 336 00:17:24,359 --> 00:17:30,410 no tiene puesto ni igual 337 00:17:30,410 --> 00:17:30,990 ni tiene nada 338 00:17:30,990 --> 00:17:32,349 con la idea de que uno lo incorpore 339 00:17:32,349 --> 00:17:33,609 en la medida en que lo necesite 340 00:17:33,609 --> 00:17:36,190 el punto 341 00:17:36,190 --> 00:17:41,160 dos coordenadas 342 00:17:41,160 --> 00:17:42,960 lo mismo, no tiene 343 00:17:42,960 --> 00:17:45,200 equals ni nada, la espera de que si es 344 00:17:45,200 --> 00:17:46,319 necesario lo pongamos 345 00:17:46,319 --> 00:17:47,940 y el main 346 00:17:47,940 --> 00:17:52,970 entonces aquí todo el tiempo que se pierde, como no había 347 00:17:52,970 --> 00:17:54,569 mucho tiempo, porque solo había dos horas 348 00:17:54,569 --> 00:17:56,970 cortas, como siempre hay mucho tiempo escribiendo 349 00:17:56,970 --> 00:17:59,109 los escáner, patatín, pues por eso 350 00:17:59,109 --> 00:18:00,089 lo dimos todo hecho 351 00:18:00,089 --> 00:18:02,869 para que tuvierais solo que completarle 352 00:18:02,869 --> 00:18:04,869 imprescindible, vale 353 00:18:04,869 --> 00:18:06,609 pues este main simplemente 354 00:18:06,609 --> 00:18:08,950 la idea era que llamara al ejecutar 355 00:18:08,950 --> 00:18:10,609 que es el que ya hace las cosas 356 00:18:10,609 --> 00:18:12,710 y el ejecutar mostraba 357 00:18:12,710 --> 00:18:14,029 un menú, sin más 358 00:18:14,029 --> 00:18:16,609 y había que hacer estos cuatro métodos 359 00:18:16,609 --> 00:18:19,730 entonces 360 00:18:19,730 --> 00:18:24,390 de los cuales estaban 361 00:18:24,390 --> 00:18:25,869 hechos la parte de leer por teclado 362 00:18:25,869 --> 00:18:28,490 ¿vale? y luego el main que teníamos aquí 363 00:18:28,490 --> 00:18:30,289 que es llamar a ejecutar, si lo quería uno probar 364 00:18:30,289 --> 00:18:31,430 llamaba a ejecutar y se acabó 365 00:18:31,430 --> 00:18:34,690 entonces, uno se echa un vistazo a esto 366 00:18:34,690 --> 00:18:35,390 y 367 00:18:35,390 --> 00:18:40,250 y si miramos el enunciado 368 00:18:40,250 --> 00:18:41,710 pues lo primero que nos dice es 369 00:18:41,710 --> 00:18:43,849 ¿vale? 370 00:18:43,849 --> 00:18:46,170 hay un sistema donde interactúan 371 00:18:46,170 --> 00:18:47,930 partículas elementales 372 00:18:47,930 --> 00:18:50,289 entonces, claro que es lo primero 373 00:18:50,289 --> 00:18:51,589 que nos falta de este ejercicio 374 00:18:51,589 --> 00:18:53,470 los datos, donde meto los datos 375 00:18:53,470 --> 00:18:55,910 recordad que esto se trata 376 00:18:55,910 --> 00:18:58,089 no solo de hacer algoritmos 377 00:18:58,089 --> 00:18:59,269 programa que haga no se que 378 00:18:59,269 --> 00:19:01,289 sino de, de alguna manera 379 00:19:01,289 --> 00:19:03,089 pues extraer información 380 00:19:03,089 --> 00:19:05,930 en general, dentro de 381 00:19:05,930 --> 00:19:07,609 la práctica del desarrollo, que es 382 00:19:07,609 --> 00:19:09,769 hombre, si voy a modelar partículas 383 00:19:09,769 --> 00:19:11,390 y yo a las partículas 384 00:19:11,390 --> 00:19:14,309 añado una a la colección de partículas 385 00:19:14,309 --> 00:19:16,109 pues hombre, ¿dónde pongo yo 386 00:19:16,109 --> 00:19:17,650 mis datos? pues en una colección 387 00:19:17,650 --> 00:19:19,730 ¿me cuadra eso con lo que me dice? 388 00:19:20,190 --> 00:19:22,210 sí, sí, sí, porque yo tendré una colección 389 00:19:22,210 --> 00:19:24,150 de partículas a la que añado, busco dentro 390 00:19:24,150 --> 00:19:25,349 de esa colección, elimino 391 00:19:25,349 --> 00:19:27,890 pues parece que una única colección 392 00:19:27,890 --> 00:19:30,490 es el único dato que necesito 393 00:19:30,490 --> 00:19:31,750 una colección de partículas 394 00:19:31,750 --> 00:19:34,490 bueno, pues aquí os lo poníamos 395 00:19:34,490 --> 00:19:35,849 fácil porque la podíais elegir 396 00:19:35,849 --> 00:19:38,210 que fuera una lista, un conjunto, la que 397 00:19:38,210 --> 00:19:38,809 quisierais 398 00:19:38,809 --> 00:19:41,190 vale, pues bueno 399 00:19:41,190 --> 00:19:44,009 la que casi todos habéis elegido 400 00:19:44,009 --> 00:19:44,609 es una lista 401 00:19:44,609 --> 00:19:48,730 pero no era necesario 402 00:19:48,730 --> 00:19:49,869 ¿vale? una lista 403 00:19:49,869 --> 00:19:51,690 podía ser un conjunto, podía ser cualquiera 404 00:19:51,690 --> 00:19:53,849 pero pusiste arriba, importaste arriba la raíz 405 00:19:53,849 --> 00:19:56,230 y dijimos, ya que está importado 406 00:19:56,230 --> 00:19:59,009 ya, es que eso fue un fallo 407 00:19:59,009 --> 00:20:00,269 porque las pruebas 408 00:20:00,269 --> 00:20:02,750 pues las hicimos poniendo una lista cualquiera 409 00:20:02,750 --> 00:20:04,609 para ver que el programa entero 410 00:20:04,609 --> 00:20:05,190 tenía sentido 411 00:20:05,190 --> 00:20:07,690 claro, pero entonces 412 00:20:07,690 --> 00:20:10,210 no, pero bien, si no pasa nada 413 00:20:10,210 --> 00:20:11,690 o sea, el que puso un list, pues un list 414 00:20:11,690 --> 00:20:13,250 no hemos quitado puntos por eso 415 00:20:13,250 --> 00:20:15,730 no, lo único que decía era que 416 00:20:15,730 --> 00:20:17,869 en este ejercicio no es necesario 417 00:20:17,869 --> 00:20:19,630 los métodos que hay no necesitan 418 00:20:19,630 --> 00:20:20,410 claro 419 00:20:20,410 --> 00:20:23,250 aquí la pregunta sería 420 00:20:23,250 --> 00:20:26,490 ¿esta aplicación 421 00:20:26,490 --> 00:20:27,210 permite 422 00:20:27,210 --> 00:20:30,470 tiene sentido que permita duplicados? 423 00:20:31,190 --> 00:20:31,769 pues hombre 424 00:20:31,769 --> 00:20:33,710 aquí tuvimos, Estefano, una larga discusión 425 00:20:33,710 --> 00:20:35,890 porque él al principio 426 00:20:35,890 --> 00:20:38,049 dijo vamos a poner un sistema de colisión 427 00:20:38,049 --> 00:20:39,930 de partículas y dije yo a ver 428 00:20:39,930 --> 00:20:41,490 si es de colisión de partículas 429 00:20:41,490 --> 00:20:44,089 puede haber partículas con la misma carga 430 00:20:44,089 --> 00:20:45,950 la misma masa en el mismo 431 00:20:45,950 --> 00:20:47,470 punto, en el mismo 432 00:20:47,470 --> 00:20:49,609 con lo cual automáticamente 433 00:20:49,609 --> 00:20:51,950 tiene que ser un sistema en el cual 434 00:20:51,950 --> 00:20:53,990 la colección tenga que admitir 435 00:20:53,990 --> 00:20:55,970 objetos con las propiedades iguales 436 00:20:55,970 --> 00:20:57,910 duplicados, entonces ahí ya la cosa 437 00:20:57,910 --> 00:20:59,190 se puede poner más útil 438 00:20:59,190 --> 00:21:01,710 y Estefano dijo vamos a quitarlo de colisión 439 00:21:01,710 --> 00:21:02,970 bueno pero como no va a ir listo 440 00:21:02,970 --> 00:21:05,490 sí, pero bueno 441 00:21:05,490 --> 00:21:07,529 para que no pareciera que complicábamos la cosa 442 00:21:07,529 --> 00:21:09,890 entonces dijimos, mira, quitamos lo de colisión 443 00:21:09,890 --> 00:21:11,289 y porque 444 00:21:11,289 --> 00:21:12,349 y entonces ya 445 00:21:12,349 --> 00:21:14,990 automáticamente ya esto cobraba sentido 446 00:21:14,990 --> 00:21:16,609 porque la partícula más cercana 447 00:21:16,609 --> 00:21:21,269 claro 448 00:21:21,269 --> 00:21:23,690 entonces al poner aquí 449 00:21:23,690 --> 00:21:25,410 la más cercana ya automáticamente 450 00:21:25,410 --> 00:21:27,690 asumíamos que en cada posición sólo puede haber 451 00:21:27,690 --> 00:21:29,430 una partícula, con lo cual 452 00:21:29,430 --> 00:21:31,549 el equals en caso de necesitarlo debería ser 453 00:21:31,549 --> 00:21:33,490 por posición, porque puede haber varias 454 00:21:33,490 --> 00:21:35,710 partículas con la misma masa o con la misma carga 455 00:21:35,710 --> 00:21:37,289 pero no en la misma posición 456 00:21:37,289 --> 00:21:39,670 ¿vale? entonces del enunciado entero 457 00:21:39,670 --> 00:21:41,230 se deducía 458 00:21:41,230 --> 00:21:43,589 que había un equals por posición 459 00:21:43,589 --> 00:21:45,549 eso por un lado y que no hacía falta 460 00:21:45,549 --> 00:21:47,569 una lista ¿vale? que luego 461 00:21:47,569 --> 00:21:49,750 era imprescindible que estuviera el equals 462 00:21:49,750 --> 00:21:51,430 pues depende, depende de si 463 00:21:51,430 --> 00:21:53,150 borrabais por... depende 464 00:21:53,150 --> 00:21:55,609 ¿vale? pero lo que es la 465 00:21:55,609 --> 00:21:57,569 situación tenía sentido 466 00:21:57,569 --> 00:21:59,809 así, con un equals por posición 467 00:21:59,809 --> 00:22:01,190 ¿sí? 468 00:22:01,569 --> 00:22:03,390 pero luego no lo usabas 469 00:22:03,390 --> 00:22:08,569 vale, pues entonces 470 00:22:08,569 --> 00:22:11,089 el problema de hacerlo por todo es que si luego usas un remove 471 00:22:11,089 --> 00:22:13,089 tienes que pasarle las tres propiedades 472 00:22:13,089 --> 00:22:15,069 idénticas, no te basta con que le pases solo una 473 00:22:15,069 --> 00:22:16,650 si hubieras hecho ese uso, pero no lo has hecho 474 00:22:16,650 --> 00:22:19,410 vale, pues entonces 475 00:22:19,410 --> 00:22:21,250 lo primero que nos damos cuenta 476 00:22:21,250 --> 00:22:22,509 aquí es que hay que añadir 477 00:22:22,509 --> 00:22:24,170 la colección en algún lado 478 00:22:24,170 --> 00:22:27,130 ¿dónde? pues hombre, donde os dé la gana añadirla 479 00:22:27,130 --> 00:22:28,529 aquí 480 00:22:28,529 --> 00:22:31,390 agregar partícula a la colección 481 00:22:31,390 --> 00:22:32,109 si la 482 00:22:32,109 --> 00:22:34,849 si la colección la poníais aquí dentro 483 00:22:34,849 --> 00:22:37,009 de ejecutar, pues entonces luego teníais que pasársela 484 00:22:37,009 --> 00:22:38,349 como parámetro, ¿verdad? 485 00:22:38,910 --> 00:22:40,029 donde quisierais ponerla 486 00:22:40,029 --> 00:22:42,369 si la ponemos aquí como static 487 00:22:42,369 --> 00:22:45,109 pues entonces ya la puede usar cualquier método 488 00:22:45,109 --> 00:22:47,190 pero hay que cambiarle el modificador a static 489 00:22:47,190 --> 00:22:49,049 entonces eso es lo que 490 00:22:49,049 --> 00:22:50,890 cada uno quisiera, ¿vale? 491 00:22:51,069 --> 00:22:52,829 siempre y cuando fuera una opción con sentido 492 00:22:52,829 --> 00:22:54,289 entonces 493 00:22:54,289 --> 00:22:56,890 por ejemplo, si yo 494 00:22:56,890 --> 00:22:58,230 declaro mi 495 00:22:58,230 --> 00:23:04,089 este de colección de partículas 496 00:23:04,089 --> 00:23:05,390 lo declaro aquí 497 00:23:05,390 --> 00:23:11,539 como solo hay una colección 498 00:23:11,539 --> 00:23:13,380 en todo el ejercicio, pues aquí va a ser 499 00:23:13,380 --> 00:23:14,180 más cómodo 500 00:23:14,180 --> 00:23:17,039 public static list 501 00:23:17,039 --> 00:23:22,259 partícula 502 00:23:22,259 --> 00:23:23,799 partículas 503 00:23:23,799 --> 00:23:28,900 vale, podríamos ya 504 00:23:28,900 --> 00:23:30,460 declararlo aquí mismo si queremos 505 00:23:30,460 --> 00:23:36,700 vale 506 00:23:36,700 --> 00:23:39,599 bueno pues aquí están mis partículas 507 00:23:39,599 --> 00:23:41,339 y ahora ya si nos vamos a los métodos 508 00:23:41,339 --> 00:23:44,339 agregar partícula 509 00:23:44,339 --> 00:23:45,819 pues hombre 510 00:23:45,819 --> 00:23:48,019 agregar partícula 511 00:23:48,019 --> 00:23:49,799 ya ves tú 512 00:23:49,799 --> 00:23:53,180 que tiene que hacer 513 00:23:53,180 --> 00:23:54,460 agregar partícula 514 00:23:54,460 --> 00:23:56,839 agregar partícula 515 00:23:56,839 --> 00:23:59,380 tiene que instanciar 516 00:23:59,380 --> 00:24:01,039 el objeto partícula 517 00:24:01,039 --> 00:24:02,619 tiene ya las propiedades 518 00:24:02,619 --> 00:24:04,359 pues tiene que instanciarlo 519 00:24:04,359 --> 00:24:14,480 y había un constructor 520 00:24:14,480 --> 00:24:16,380 con los tres parámetros, si no lo hay 521 00:24:16,380 --> 00:24:18,519 pues se lo crea uno y ya está 522 00:24:18,519 --> 00:24:21,779 hay un constructor 523 00:24:21,779 --> 00:24:23,119 con los tres parámetros 524 00:24:23,119 --> 00:24:25,279 masa y posición 525 00:24:25,279 --> 00:24:27,440 pues entonces le añadimos aquí 526 00:24:27,440 --> 00:24:31,380 la carga 527 00:24:31,380 --> 00:24:35,950 la masa y la posición 528 00:24:35,950 --> 00:24:38,049 que será un nuevo objeto punto 529 00:24:38,049 --> 00:24:42,480 con 530 00:24:42,480 --> 00:24:43,759 x e y 531 00:24:43,759 --> 00:24:48,180 y ahora se lo añadimos a 532 00:24:48,180 --> 00:24:50,740 es que de hecho 533 00:24:50,740 --> 00:24:52,619 ni siquiera tendríamos que 534 00:24:52,619 --> 00:24:56,539 partículas.add 535 00:24:56,539 --> 00:25:09,779 vale 536 00:25:09,779 --> 00:25:13,259 pues ya está 537 00:25:13,259 --> 00:25:16,519 aquí lo único es que uno puede rizar el rizo 538 00:25:16,519 --> 00:25:18,099 pero no era tampoco lo que mirábamos 539 00:25:18,099 --> 00:25:21,519 que es, oye y si me meten una partícula 540 00:25:21,519 --> 00:25:24,220 que ya existe 541 00:25:24,220 --> 00:25:25,039 o lo que es lo mismo 542 00:25:25,039 --> 00:25:26,859 que está en la misma posición que otra 543 00:25:26,859 --> 00:25:29,339 podríamos verificarlo 544 00:25:29,339 --> 00:25:31,200 a ver si hay alguna partícula ya que esté 545 00:25:31,200 --> 00:25:32,140 en esa posición o no 546 00:25:32,140 --> 00:25:35,519 si hubiéramos hecho un hash set con el jasco de equals 547 00:25:35,519 --> 00:25:37,240 de posición no haría falta 548 00:25:37,240 --> 00:25:39,339 verificarlo, entonces esa sería la opción 549 00:25:39,339 --> 00:25:41,599 mejor, que hubierais seleccionado 550 00:25:41,599 --> 00:25:43,119 una colección hash set 551 00:25:43,119 --> 00:25:44,779 y un equals 552 00:25:44,779 --> 00:25:46,980 por posición, porque 553 00:25:46,980 --> 00:25:48,720 os hubierais dado cuenta de que 554 00:25:48,720 --> 00:25:50,819 no tiene sentido que haya dos partículas en la misma posición 555 00:25:50,819 --> 00:25:52,940 porque de hecho ya el método de distancia 556 00:25:52,940 --> 00:25:54,079 me lo está dando a entender 557 00:25:54,079 --> 00:25:57,079 entonces, si os dais cuenta de eso 558 00:25:57,079 --> 00:25:59,380 hacéis un jasco de equals por posición 559 00:25:59,380 --> 00:26:02,039 y aquí al añadir os despreocupáis 560 00:26:02,039 --> 00:26:03,759 de si va a meter en la colección 2 561 00:26:03,759 --> 00:26:04,539 con la misma posición 562 00:26:04,539 --> 00:26:06,839 si habéis hecho una lista sin más 563 00:26:06,839 --> 00:26:09,599 va a meter la partícula sí o sí 564 00:26:09,599 --> 00:26:10,880 aunque tenga la misma posición 565 00:26:10,880 --> 00:26:12,819 con lo cual luego va a haber un problema 566 00:26:12,819 --> 00:26:14,099 cuando encontréis la más cercana 567 00:26:14,099 --> 00:26:16,680 eliminará solo una 568 00:26:16,680 --> 00:26:18,960 eso pues bueno, la aplicación no está 569 00:26:18,960 --> 00:26:20,680 correctamente hecha en realidad 570 00:26:20,680 --> 00:26:22,700 porque te elimina una pero te dejaría otra 571 00:26:22,700 --> 00:26:25,000 ¿realmente quieres que haya dos en la misma posición? 572 00:26:25,200 --> 00:26:26,640 pues entonces tu error ya venía de aquí 573 00:26:26,640 --> 00:26:28,180 de haber hecho el add sin verificar 574 00:26:28,180 --> 00:26:30,500 claro, entonces aquí 575 00:26:30,500 --> 00:26:32,240 lo ideal sería 576 00:26:32,240 --> 00:26:34,839 si tú lo has hecho en una lista, hacer un contains 577 00:26:34,839 --> 00:26:37,140 y decir, oye, si no la contienes 578 00:26:37,140 --> 00:26:39,059 añádelo, eso sería lo guay 579 00:26:39,059 --> 00:26:41,220 pero claro, para hacer un contains 580 00:26:41,220 --> 00:26:43,339 necesitas el equals por posición 581 00:26:43,339 --> 00:26:44,339 entonces 582 00:26:44,339 --> 00:26:47,160 lo mejor de todo es, si uno ya ha llegado 583 00:26:47,160 --> 00:26:49,579 a la conclusión de que en este ejercicio 584 00:26:49,579 --> 00:26:51,400 la posición es lo importante 585 00:26:51,400 --> 00:26:52,579 ya se hace su equals 586 00:26:52,579 --> 00:26:55,519 y si se hace su hascode también, porque nunca sobra 587 00:26:55,519 --> 00:27:04,480 Si luego cambias a un set, claro, entonces te haces ya de siempre tu jasco de equals por posición y ya lo tienes. 588 00:27:08,160 --> 00:27:19,200 Ah, vale, me dice que punto no, me está implementando el equals, vale, porque estoy tirando de, claro, en punto, aquí sí que sí, dos puntos son el mismo si las dos coordenadas son iguales. 589 00:27:19,200 --> 00:27:21,160 entonces aquí en punto 590 00:27:21,160 --> 00:27:24,140 podríamos hacernos nuestro 591 00:27:24,140 --> 00:27:26,000 jasco de equals 592 00:27:26,000 --> 00:27:27,400 por las dos coordenadas 593 00:27:27,400 --> 00:27:29,220 vale 594 00:27:29,220 --> 00:27:31,799 y ya tengo mi punto con su jasco de equals 595 00:27:31,799 --> 00:27:33,740 mi partícula con su jasco de equals 596 00:27:33,740 --> 00:27:35,640 y ahora ya aquí 597 00:27:35,640 --> 00:27:37,960 en el momento de añadir podría hacer 598 00:27:37,960 --> 00:27:39,980 oye si no contiene 599 00:27:39,980 --> 00:27:41,940 si me colisión partículas 600 00:27:41,940 --> 00:27:44,000 no contiene 601 00:27:44,000 --> 00:27:46,180 a la partícula que acabo de crear 602 00:27:46,180 --> 00:27:48,059 vamos a ponerla 603 00:27:48,059 --> 00:27:50,079 parte para que se vea mejor 604 00:27:50,079 --> 00:28:04,960 pues si no 605 00:28:04,960 --> 00:28:05,900 contiene a p 606 00:28:05,900 --> 00:28:08,279 si no la contiene 607 00:28:08,279 --> 00:28:11,039 entonces añade 608 00:28:11,039 --> 00:28:12,880 la a y dices partícula agregada 609 00:28:12,880 --> 00:28:29,519 y si no pues le dices 610 00:28:29,519 --> 00:28:31,319 ya existe 611 00:28:31,319 --> 00:28:32,640 una partícula en esa posición 612 00:28:32,640 --> 00:28:41,029 y como esto no es un sistema 613 00:28:41,029 --> 00:28:42,230 de colisión pues no se puede 614 00:28:42,230 --> 00:28:48,880 bueno pues esto sería lo bonito 615 00:28:48,880 --> 00:28:50,240 la forma buena de hacer las cosas 616 00:28:50,240 --> 00:28:52,660 si yo echo un list verificarlo con 617 00:28:52,660 --> 00:28:54,660 contains porque contains 618 00:28:54,660 --> 00:28:56,180 recordad que tira del equals 619 00:28:56,180 --> 00:28:57,440 en la lista 620 00:28:57,440 --> 00:29:00,359 o si he hecho un set con el hascode 621 00:29:00,359 --> 00:29:01,980 de equals, ya está 622 00:29:01,980 --> 00:29:03,960 no hace falta que verifique si lo contiene o no 623 00:29:03,960 --> 00:29:05,920 porque ya sé que no lo voy a añadir, esa sería la forma 624 00:29:05,920 --> 00:29:07,039 bonita 625 00:29:07,039 --> 00:29:09,660 que habéis hecho un list, lo habéis añadido 626 00:29:09,660 --> 00:29:11,900 y punto pelota, es decir una línea de código 627 00:29:11,900 --> 00:29:12,819 lo hemos contado también 628 00:29:12,819 --> 00:29:16,180 como si estuviera bien hecho 629 00:29:16,180 --> 00:29:16,680 completo 630 00:29:16,680 --> 00:29:19,359 con lo cual este método no tenía más historia 631 00:29:19,359 --> 00:29:21,900 buscar por rango de masa 632 00:29:21,900 --> 00:29:23,559 pues aquí lo tenemos más fácil todavía 633 00:29:23,559 --> 00:29:25,839 hacemos un for y la partícula 634 00:29:25,839 --> 00:29:26,279 que 635 00:29:26,279 --> 00:29:29,319 cumple esa propiedad se añade aquí 636 00:29:29,319 --> 00:29:30,019 cuidadín 637 00:29:30,019 --> 00:29:34,799 claro, habría que guardarlo en la lista 638 00:29:34,799 --> 00:29:37,559 cuidadín, lógicamente habéis instanciado 639 00:29:37,559 --> 00:29:38,299 aquí la lista 640 00:29:38,299 --> 00:29:41,400 pero bueno, vamos a 641 00:29:41,400 --> 00:29:43,500 guardarlas en la lista que está 642 00:29:43,500 --> 00:29:45,599 arriba y devolverlo, pues ya está 643 00:29:45,599 --> 00:29:49,430 vamos a recorrer 644 00:29:49,430 --> 00:29:51,130 cada partícula 645 00:30:00,430 --> 00:30:01,470 vale, pues 646 00:30:01,470 --> 00:30:03,089 vamos a ver si cumple esa propiedad 647 00:30:03,089 --> 00:30:06,170 Pues si p 648 00:30:06,170 --> 00:30:08,410 Aquí no había get ni set ni había nada 649 00:30:08,410 --> 00:30:13,890 No había get ni set ni nada 650 00:30:13,890 --> 00:30:15,329 Entonces vamos a ponerlo 651 00:30:15,329 --> 00:30:26,579 Vale, si la masa es 652 00:30:26,579 --> 00:30:31,319 Si la masa es mayor o igual 653 00:30:31,319 --> 00:30:34,440 Que la mínima 654 00:30:34,440 --> 00:30:38,880 Y siendo mayor o igual que la mínima 655 00:30:38,880 --> 00:30:45,279 Es menor o igual 656 00:30:45,279 --> 00:30:52,720 Que la máxima 657 00:30:52,720 --> 00:30:53,380 ¿Qué hago yo? 658 00:30:53,480 --> 00:30:59,829 no se llama maxMasa, ¿verdad? 659 00:31:03,410 --> 00:31:04,569 He borrado algo, ¿verdad? 660 00:31:05,069 --> 00:31:06,269 Sí, aquí he borrado el 661 00:31:06,269 --> 00:31:17,309 este. Pues ya está. 662 00:31:17,430 --> 00:31:18,730 Se añade a la lista y se acabó. 663 00:31:23,400 --> 00:31:24,799 Lista.add 664 00:31:24,799 --> 00:31:27,039 p. Vale. 665 00:31:27,859 --> 00:31:29,059 Aquí tenemos el riesgo 666 00:31:29,059 --> 00:31:30,779 de añadir una que ya 667 00:31:30,779 --> 00:31:31,960 existe en la posición. 668 00:31:34,589 --> 00:31:36,769 Pues no, porque estas son partículas 669 00:31:36,769 --> 00:31:38,410 que ya estaban en la 670 00:31:38,410 --> 00:31:39,809 colección. Se supone que no estaban en la misma 671 00:31:39,809 --> 00:31:42,410 posición. Bueno, pues 672 00:31:42,410 --> 00:31:43,529 Ya está, este método ya está. 673 00:31:44,430 --> 00:31:45,289 Cuidadín, claro. 674 00:31:46,549 --> 00:31:47,690 Vamos a instanciar la colección, 675 00:31:47,829 --> 00:31:50,089 si no en la primera añadida va a ser un new pointer exception. 676 00:31:51,970 --> 00:31:54,769 Cuidado que a nadie se le olvide instanciarla, lógicamente. 677 00:32:03,140 --> 00:32:05,720 Pues este método ya estaba, muy fácil también. 678 00:32:06,799 --> 00:32:08,359 Vale, eliminar por posición. 679 00:32:09,880 --> 00:32:11,380 Aquí es hacer un mínimo. 680 00:32:12,240 --> 00:32:14,200 Aquella que cumpla que una propiedad, 681 00:32:14,200 --> 00:32:16,140 que es la propiedad distancia, sea mínima. 682 00:32:16,140 --> 00:32:18,119 y esa propiedad distancia 683 00:32:18,119 --> 00:32:20,420 la podemos sacar de este método que ya estaba hecho 684 00:32:20,420 --> 00:32:21,900 entonces no hace falta que nos compliquemos 685 00:32:21,900 --> 00:32:24,559 entonces aquí hay que hacer 686 00:32:24,559 --> 00:32:26,039 un mínimo 687 00:32:26,039 --> 00:32:28,480 dentro de todas las partículas para encontrar 688 00:32:28,480 --> 00:32:29,319 una 689 00:32:29,319 --> 00:32:31,220 que es la que vamos a eliminar 690 00:32:31,220 --> 00:32:33,299 luego tenemos una partícula objetivo 691 00:32:33,299 --> 00:32:36,019 la partícula a eliminar, que es esta 692 00:32:36,019 --> 00:32:36,599 ¿vale? 693 00:32:41,880 --> 00:32:43,720 esta es la partícula a eliminar 694 00:32:43,720 --> 00:32:45,359 entonces 695 00:32:45,359 --> 00:32:48,059 esta partícula 696 00:32:48,059 --> 00:32:50,200 la partícula a eliminar 697 00:32:50,200 --> 00:32:52,279 puede ser como tenemos una lista 698 00:32:52,279 --> 00:32:53,920 puede ser la primera de la colección 699 00:32:53,920 --> 00:32:55,460 vale 700 00:32:55,460 --> 00:32:58,279 y ahora ya comprobamos 701 00:32:58,279 --> 00:33:00,180 todas ellas a ver si alguna tiene 702 00:33:00,180 --> 00:33:02,480 como distancia menor que la distancia 703 00:33:02,480 --> 00:33:03,240 que tiene esta 704 00:33:03,240 --> 00:33:05,640 entonces esta puede ser 705 00:33:05,640 --> 00:33:08,480 partículas.get 706 00:33:09,079 --> 00:33:10,299 vale 707 00:33:10,299 --> 00:33:11,140 esto es hacer un mínimo 708 00:33:11,140 --> 00:33:14,140 que es de la primera evaluación como veis 709 00:33:14,140 --> 00:33:16,240 igual que preguntamos ahora cosas 710 00:33:16,240 --> 00:33:18,359 de la primera evaluación todo el rato pues en la tercera también 711 00:33:18,359 --> 00:33:20,240 de colecciones de hash map 712 00:33:20,240 --> 00:33:22,480 aquí no ha caído nada, pero caerá en otros 713 00:33:22,480 --> 00:33:24,240 exámenes, los map 714 00:33:24,240 --> 00:33:24,940 ¿vale? 715 00:33:26,299 --> 00:33:27,940 vale, pues esta es la partícula eliminada 716 00:33:27,940 --> 00:33:34,500 pues porque como se vio con tan poco 717 00:33:34,500 --> 00:33:36,359 tiempo de antelación, pues para que no 718 00:33:36,359 --> 00:33:38,519 pusierais ahí mi... 719 00:33:38,519 --> 00:33:40,240 te hubiera gustado 720 00:33:40,240 --> 00:33:44,240 venga, pues vamos a recorrer todo 721 00:33:44,240 --> 00:33:46,779 para cada partícula 722 00:33:46,779 --> 00:33:47,960 P en partículas 723 00:33:47,960 --> 00:33:50,779 vamos a ir una por una 724 00:33:50,779 --> 00:33:52,140 a ver si encontramos alguna 725 00:33:52,140 --> 00:33:55,359 cuya distancia a este punto 726 00:33:55,359 --> 00:33:57,220 sea menor que esta 727 00:33:57,220 --> 00:33:59,279 que es la primera que hemos cogido 728 00:33:59,279 --> 00:34:00,960 puede ser una cualquiera 729 00:34:00,960 --> 00:34:01,960 puede ser una cualquiera 730 00:34:01,960 --> 00:34:04,900 pues venga, aquí ya hacemos 731 00:34:04,900 --> 00:34:07,240 si, y como calculo yo 732 00:34:07,240 --> 00:34:08,840 la distancia entre 733 00:34:08,840 --> 00:34:11,500 esta partícula y el punto 734 00:34:11,500 --> 00:34:12,920 pues la podría hacer 735 00:34:12,920 --> 00:34:14,780 o tengo el método, pues tengo un método 736 00:34:14,780 --> 00:34:16,960 si la distancia 737 00:34:16,960 --> 00:34:20,800 calcular distancia 738 00:34:20,800 --> 00:34:25,400 entre 739 00:34:25,400 --> 00:34:28,719 la posición de mi partícula P 740 00:34:28,719 --> 00:34:30,960 que la saco con get punto 741 00:34:30,960 --> 00:34:32,940 cuando me haga mi get 742 00:34:32,940 --> 00:34:35,360 set de 743 00:34:35,360 --> 00:34:38,340 ya lo tengo, ¿no? 744 00:34:38,400 --> 00:34:39,039 get set de 745 00:34:39,039 --> 00:34:39,900 ah, es que es posición 746 00:34:39,900 --> 00:34:40,579 vale 747 00:34:40,579 --> 00:34:43,579 sí, eso 748 00:34:43,579 --> 00:34:44,760 vale 749 00:34:44,760 --> 00:34:47,199 get posición 750 00:34:47,199 --> 00:34:50,000 y en la posición que me han dado 751 00:34:50,000 --> 00:34:50,920 vale 752 00:34:50,920 --> 00:34:53,980 si la distancia de esta partícula P 753 00:34:53,980 --> 00:34:55,579 es menor 754 00:34:55,579 --> 00:34:58,239 que la que es mínima 755 00:34:58,239 --> 00:34:59,099 hasta ese momento 756 00:34:59,099 --> 00:35:01,639 es menor que 757 00:35:01,639 --> 00:35:04,059 que con un zoom tan grande 758 00:35:04,059 --> 00:35:05,159 es todo muy complicado 759 00:35:05,159 --> 00:35:06,980 es menor que 760 00:35:06,980 --> 00:35:10,219 no, que calcular distancia 761 00:35:10,219 --> 00:35:19,230 eliminar 762 00:35:19,230 --> 00:35:21,230 punto get 763 00:35:21,230 --> 00:35:22,110 posición 764 00:35:22,110 --> 00:35:24,409 Posición 765 00:35:24,409 --> 00:35:27,610 Si es menor, ala, tengo nueva partícula 766 00:35:27,610 --> 00:35:28,030 Mínima 767 00:35:28,030 --> 00:35:30,710 Eliminar igual a p 768 00:35:30,710 --> 00:35:33,010 Y ya está 769 00:35:33,010 --> 00:35:35,030 Bueno, ya está 770 00:35:35,030 --> 00:35:36,909 Ya he encontrado la partícula eliminar 771 00:35:36,909 --> 00:35:38,610 Vale, pues ya está 772 00:35:38,610 --> 00:35:39,969 Es un for para hacer el mínimo 773 00:35:39,969 --> 00:35:42,070 Cojo cualquiera de la colección 774 00:35:42,070 --> 00:35:44,050 Cualquiera, he cogido la primera 775 00:35:44,050 --> 00:35:46,289 Y ahora me pongo a recorrer toda la colección 776 00:35:46,289 --> 00:35:47,050 Voy una por una 777 00:35:47,050 --> 00:36:14,389 Sí, se puede hacer de muchas maneras, pero bueno, podemos coger una cualquiera, ya recorremos toda la colección, para cada una de ellas, cumple que es menor que la otra en la propiedad que sea, en este caso es en la distancia, silencio, esta partícula P, cumple que su distancia es menor que la que es mínima hasta ese momento, pues sí, cumple que es menor, pues tengo nuevo mínimo, y así todo el rato. 778 00:36:14,389 --> 00:36:16,570 cuando ya mi for ha terminado 779 00:36:16,570 --> 00:36:17,789 que ha terminado en este punto 780 00:36:17,789 --> 00:36:20,030 ya puedo eliminarla de la colección 781 00:36:20,030 --> 00:36:22,010 partículas 782 00:36:22,010 --> 00:36:24,510 para eso tengo un remove 783 00:36:24,510 --> 00:36:25,449 ¿vale? 784 00:36:27,190 --> 00:36:28,570 pero insisto 785 00:36:28,570 --> 00:36:30,250 este remove que va a hacer 786 00:36:30,250 --> 00:36:32,190 va a eliminar 787 00:36:32,190 --> 00:36:34,710 la primera partícula 788 00:36:34,710 --> 00:36:37,030 que encuentre igual a esta 789 00:36:37,030 --> 00:36:38,909 igual 790 00:36:38,909 --> 00:36:40,610 según su método equals 791 00:36:40,610 --> 00:36:41,269 ¿vale? 792 00:36:42,250 --> 00:36:43,409 claro, en este caso 793 00:36:43,409 --> 00:36:45,409 perdón, eliminar 794 00:36:45,409 --> 00:36:47,289 ¿qué hago yo? eliminar 795 00:36:47,289 --> 00:36:48,130 vale 796 00:36:48,130 --> 00:36:51,449 igual a esta 797 00:36:51,449 --> 00:36:53,570 ¿vale? igual su método 798 00:36:53,570 --> 00:36:54,789 igual, pero es que eliminar 799 00:36:54,789 --> 00:36:57,530 es directamente una copia de p 800 00:36:57,530 --> 00:36:59,389 que está en la colección, es directamente 801 00:36:59,389 --> 00:37:01,210 una copia, luego ya va a tener su posición 802 00:37:01,210 --> 00:37:02,929 el equals de la posición lo va a tener 803 00:37:02,929 --> 00:37:04,309 entonces con esto ya lo tengo 804 00:37:04,309 --> 00:37:11,880 si yo no hubiera puesto 805 00:37:11,880 --> 00:37:14,460 un equals 806 00:37:14,460 --> 00:37:16,460 en partícula 807 00:37:16,460 --> 00:37:19,400 cuidado porque esto 808 00:37:19,400 --> 00:37:20,139 falla 809 00:37:20,139 --> 00:37:22,820 porque esto es un for each 810 00:37:22,820 --> 00:37:24,800 con lo cual esto es un for each 811 00:37:24,800 --> 00:37:27,119 con lo cual esto es una copia 812 00:37:27,119 --> 00:37:29,059 de la partícula real, está en otra 813 00:37:29,059 --> 00:37:30,079 dirección de memoria 814 00:37:30,079 --> 00:37:32,179 su contenido es el mismo 815 00:37:32,179 --> 00:37:35,159 masa, carga eléctrica y posición 816 00:37:35,159 --> 00:37:37,139 idéntica, su contenido es el mismo 817 00:37:37,139 --> 00:37:39,539 pero P tiene una dirección de memoria 818 00:37:39,539 --> 00:37:41,440 y la partícula real tiene otra 819 00:37:41,440 --> 00:37:42,619 ¿vale? 820 00:37:42,860 --> 00:37:44,880 con lo cual en eliminar 821 00:37:44,880 --> 00:37:47,320 yo estoy poniendo la dirección 822 00:37:47,320 --> 00:37:48,139 de la copia 823 00:37:48,139 --> 00:37:50,920 ¿vale? su contenido es el mismo 824 00:37:50,920 --> 00:37:52,159 su contenido es el mismo 825 00:37:52,159 --> 00:37:54,940 pero la dirección no es la dirección de la partícula real 826 00:37:54,940 --> 00:37:56,159 es otra dirección 827 00:37:56,159 --> 00:37:57,400 aunque el contenido es el mismo 828 00:37:57,400 --> 00:38:00,199 luego si yo aquí no he puesto un equals 829 00:38:00,199 --> 00:38:01,380 en partícula 830 00:38:01,380 --> 00:38:03,960 él va a usar el equals de object 831 00:38:03,960 --> 00:38:06,079 y el equals de object va por dirección 832 00:38:06,079 --> 00:38:08,539 con lo cual no va a borrar la partícula original 833 00:38:08,539 --> 00:38:09,440 no la va a borrar 834 00:38:09,440 --> 00:38:11,800 porque su dirección no es la dirección de esta 835 00:38:11,800 --> 00:38:13,539 ¿vale? 836 00:38:14,039 --> 00:38:16,179 estos son los detalles en los que no perdáis 837 00:38:16,179 --> 00:38:19,940 efectivamente, porque luego las aplicaciones 838 00:38:19,940 --> 00:38:21,420 simplemente no funcionan 839 00:38:21,420 --> 00:38:23,860 y hay veces que aplicaciones muy gordas 840 00:38:23,860 --> 00:38:25,019 muy grandes, de mil cosas 841 00:38:25,019 --> 00:38:27,480 no funcionan por cosas como estas 842 00:38:27,480 --> 00:38:29,440 simplemente por cosas como estas, nada más 843 00:38:29,440 --> 00:38:31,619 y uno se va a mirar a otra parte, se va a mirar 844 00:38:31,619 --> 00:38:33,679 a los datos, se va a la base de datos, se va a mirar no sé qué 845 00:38:33,679 --> 00:38:35,440 cuando es esto, ¿vale? 846 00:38:37,500 --> 00:38:38,760 bueno, pues ya está 847 00:38:38,760 --> 00:38:43,420 calcular por posiciones, hacer un mínimo 848 00:38:43,420 --> 00:38:45,519 y partícula de mayor masa, pues hacer un máximo 849 00:38:45,519 --> 00:38:49,039 pues venga, mostrar la partícula 850 00:38:49,039 --> 00:38:50,940 con mayor masa, pues ya está 851 00:38:50,940 --> 00:38:53,179 cogemos como una 852 00:38:53,179 --> 00:38:55,059 partícula de mayor masa 853 00:38:55,059 --> 00:38:56,320 pues cualquiera de ellas 854 00:38:56,320 --> 00:38:59,929 la primera de todas 855 00:38:59,929 --> 00:39:01,170 como es una lista 856 00:39:01,170 --> 00:39:04,309 pues tengo la suerte de que puedo coger 857 00:39:04,309 --> 00:39:05,869 la que me dé la gana, si fuera un set 858 00:39:05,869 --> 00:39:07,829 no puedo coger una cualquiera, no es tan fácil 859 00:39:07,829 --> 00:39:08,889 tengo que iterar siempre 860 00:39:08,889 --> 00:39:11,110 y ahora ya me hago el máximo 861 00:39:11,110 --> 00:39:14,210 pues para cada 862 00:39:14,210 --> 00:39:15,050 partícula 863 00:39:15,050 --> 00:39:38,730 P en partículas, ahora ya, esta partícula, su masa es mayor que esta primera, que la que tenga la mayor masa hasta ese momento, inicialmente la primera de todas, pues sí, es mayor, pues tengo una nueva partícula de mayor masa. 864 00:39:38,730 --> 00:39:39,610 hala, ya está 865 00:39:39,610 --> 00:39:47,389 sa igual a 866 00:39:47,389 --> 00:39:48,610 ap 867 00:39:48,610 --> 00:39:51,989 y como aquí lo único que tengo que hacer es mostrar 868 00:39:51,989 --> 00:39:53,769 no eliminar ni nada 869 00:39:53,769 --> 00:39:55,389 el equals aquí en realidad me da igual 870 00:39:55,389 --> 00:39:56,769 el equals me da igual 871 00:39:56,769 --> 00:39:58,989 aquí lo único que tengo que hacer es mostrar 872 00:39:58,989 --> 00:40:02,230 sí, pero ya lo tenía 873 00:40:02,230 --> 00:40:03,989 tenía un twistring 874 00:40:03,989 --> 00:40:05,849 en partícula, y si no se pone y ya está 875 00:40:05,849 --> 00:40:08,150 ahí tiene un twistring 876 00:40:08,150 --> 00:40:08,730 vale 877 00:40:08,730 --> 00:40:12,010 y si no se pone y listo, y de nuevo no es pelo 878 00:40:12,010 --> 00:40:13,889 que tengo que mostrar, sino mayor 879 00:40:13,889 --> 00:40:14,349 más 880 00:40:14,349 --> 00:40:18,969 vale, pues este era 881 00:40:18,969 --> 00:40:21,389 el cuarto método, hacer un máximo 882 00:40:21,389 --> 00:40:22,889 entonces eso tiene que estar claro 883 00:40:22,889 --> 00:40:25,389 hacer un mínimo, saber 884 00:40:25,389 --> 00:40:27,429 usar métodos, llamar a un método 885 00:40:27,429 --> 00:40:28,349 desde otro lado 886 00:40:28,349 --> 00:40:31,250 todos los matices de colecciones con los 887 00:40:31,250 --> 00:40:33,429 IQUA, los HASCO, los métodos 888 00:40:33,429 --> 00:40:35,469 que se usan, todo eso 889 00:40:35,469 --> 00:40:37,389 y ya está, y eso es lo que tenía que 890 00:40:37,389 --> 00:40:38,550 estar claro en este ejercicio, por eso 891 00:40:38,550 --> 00:40:41,250 este ejercicio tenía peso en el resto de las RAs 892 00:40:41,250 --> 00:40:43,309 porque incorporaba varias cosas 893 00:40:43,309 --> 00:40:46,449 Aquí algunos 894 00:40:46,449 --> 00:40:49,150 Me mostrabais no la partícula 895 00:40:49,150 --> 00:40:50,590 Sino la mayor masa 896 00:40:50,590 --> 00:40:51,329 Sin más 897 00:40:51,329 --> 00:40:54,869 Entonces eso tampoco 898 00:40:54,869 --> 00:40:57,590 Eso no es lo que se pide 899 00:40:57,590 --> 00:40:58,889 Hay que hacer lo que se pide 900 00:40:58,889 --> 00:41:02,610 Otra cosa es que al final damos puntos por casi cualquier cosa 901 00:41:02,610 --> 00:41:03,210 Pero 902 00:41:03,210 --> 00:41:06,070 No se puede dar todo lógicamente 903 00:41:06,070 --> 00:41:09,789 Vale 904 00:41:09,789 --> 00:41:11,110 Y 905 00:41:11,110 --> 00:41:13,429 Y este ya está 906 00:41:13,429 --> 00:41:14,429 Y aquí no sé 907 00:41:14,429 --> 00:41:16,670 Ah es que me falta un paréntesis 908 00:41:16,670 --> 00:41:21,710 tercer ejercicio 909 00:41:21,710 --> 00:41:24,030 más corto y rápido 910 00:41:24,030 --> 00:41:24,849 imposible 911 00:41:24,849 --> 00:41:29,409 y de hecho este de aquí como veis 912 00:41:29,409 --> 00:41:31,809 es escribir cuatro líneas 913 00:41:31,809 --> 00:41:32,409 en cada método 914 00:41:32,409 --> 00:41:35,150 la más cercana 915 00:41:35,150 --> 00:41:38,110 la más cercana es la que más tenía 916 00:41:38,110 --> 00:41:40,050 claro, la más cercana 917 00:41:40,050 --> 00:41:41,250 es la que más tenía 918 00:41:41,250 --> 00:41:43,869 pero bueno, era hacer el mínimo 919 00:41:43,869 --> 00:41:45,750 y darse cuenta de que tienes que usar ese método 920 00:41:45,750 --> 00:41:46,449 pero nada más 921 00:41:46,449 --> 00:41:48,889 y de añadir ya digo 922 00:41:48,889 --> 00:41:51,210 lo de distinguir si ya está o no está 923 00:41:51,210 --> 00:41:53,289 pues ya dijimos que eso ni lo contábamos 924 00:41:53,289 --> 00:41:54,510 ni lo habíamos tenido en cuenta 925 00:41:54,510 --> 00:41:59,210 vale, entonces el tercer ejercicio 926 00:41:59,809 --> 00:42:10,659 una plantita 927 00:42:10,659 --> 00:42:12,900 o varias 928 00:42:12,900 --> 00:42:15,880 pues nada, una planta con nombre 929 00:42:15,880 --> 00:42:16,380 y altura 930 00:42:16,380 --> 00:42:18,719 hacer esta clase 931 00:42:18,719 --> 00:42:21,340 ya por hacer la clase que no tenía nada 932 00:42:21,340 --> 00:42:22,840 ya dábamos algo 933 00:42:22,840 --> 00:42:24,699 si encima lo hacías bien implementando 934 00:42:24,699 --> 00:42:26,000 comparable y todo eso ya 935 00:42:26,000 --> 00:42:27,179 el colmo 936 00:42:27,179 --> 00:42:29,440 venga 937 00:42:29,440 --> 00:42:31,920 clase planta 938 00:42:31,920 --> 00:42:46,869 bueno pues no sé cómo se llaman 939 00:42:46,869 --> 00:42:48,670 las propiedades o cómo pero nos da igual 940 00:42:48,670 --> 00:42:50,909 y si era dave lo era en la altura 941 00:42:50,909 --> 00:42:52,250 pero me da igual también 942 00:42:52,250 --> 00:42:54,630 altura 943 00:42:54,630 --> 00:42:56,730 venga vamos a poner 944 00:42:56,730 --> 00:42:57,550 un constructor 945 00:42:57,550 --> 00:43:12,590 vale 946 00:43:12,590 --> 00:43:14,309 solo por hacer esto ya dábamos algo 947 00:43:14,309 --> 00:43:16,409 y esto no es lo que había que hacer 948 00:43:16,409 --> 00:43:18,829 claro, pero 949 00:43:18,829 --> 00:43:21,010 haz una planta con dos propiedades 950 00:43:21,010 --> 00:43:22,130 planta, dos propiedades 951 00:43:22,130 --> 00:43:24,030 vale, ahora 952 00:43:24,030 --> 00:43:27,610 una aplicación 953 00:43:27,610 --> 00:43:28,369 con tres 954 00:43:28,369 --> 00:43:31,110 y mostrarlo por orden ascendente 955 00:43:31,110 --> 00:43:33,750 solicitados al usuario 956 00:43:33,750 --> 00:43:35,570 porque si no sois capaces de dárselos a Capone 957 00:43:35,570 --> 00:43:37,510 y luego mostrarlo por orden ascendente según lo habéis 958 00:43:37,510 --> 00:43:39,590 pues venga 959 00:43:39,590 --> 00:43:40,929 el main, ya está 960 00:43:40,929 --> 00:44:02,630 una colección 961 00:44:02,630 --> 00:44:04,250 pues que colección 962 00:44:04,250 --> 00:44:06,309 como vamos a implementar por orden 963 00:44:06,309 --> 00:44:08,690 aquí la opción natural es 964 00:44:08,690 --> 00:44:10,710 jolines lo único que yo voy a necesitar 965 00:44:10,710 --> 00:44:12,429 va a ser un listado ordenado 966 00:44:12,429 --> 00:44:14,030 de la colección 967 00:44:14,030 --> 00:44:15,369 es mi único requisito 968 00:44:15,369 --> 00:44:16,989 un listado ordenado 969 00:44:16,989 --> 00:44:19,750 pues si tu único requisito es un listado ordenado 970 00:44:19,750 --> 00:44:20,750 para eso está el triset 971 00:44:20,750 --> 00:44:23,469 que directamente cuando tu iteras 972 00:44:23,469 --> 00:44:25,550 te itera siempre de forma ordenada 973 00:44:25,550 --> 00:44:28,309 ¿según qué criterio? el que tú elijas 974 00:44:28,309 --> 00:44:31,170 pues es justo lo que se adapta a lo que nos han dicho 975 00:44:31,170 --> 00:44:34,289 una aplicación cuya única funcionalidad es un listado ordenado 976 00:44:34,289 --> 00:44:37,389 pues ya está, si yo quiero un listado ordenado 977 00:44:37,389 --> 00:44:39,329 vamos a hacer que planta 978 00:44:39,329 --> 00:44:47,619 implemente comparable 979 00:44:47,619 --> 00:44:50,619 de planta y ahora 980 00:44:50,619 --> 00:44:53,320 ¿qué orden es el que nos gusta? 981 00:44:53,500 --> 00:44:56,119 si implementa comparable pues tiene que 982 00:44:56,119 --> 00:44:59,239 implementar el método y ahora 983 00:44:59,239 --> 00:45:01,099 ¿qué orden es el que me interesa a mí? 984 00:45:02,119 --> 00:45:03,559 pues orden ascendente 985 00:45:03,559 --> 00:45:04,820 de menor a mayor 986 00:45:04,820 --> 00:45:07,139 con lo cual el compare tú tiene que estar 987 00:45:07,139 --> 00:45:08,260 en función de la altura 988 00:45:08,260 --> 00:45:11,559 es decir, si la planta 989 00:45:11,559 --> 00:45:12,760 dis que llama al método 990 00:45:12,760 --> 00:45:15,219 su altura es menor 991 00:45:15,219 --> 00:45:17,079 que esta planta o, me tiene que devolver 992 00:45:17,079 --> 00:45:19,380 negativo, si la altura 993 00:45:19,380 --> 00:45:21,480 de la que llama compare tú es la misma 994 00:45:21,480 --> 00:45:22,860 que o, me tiene que devolver cero 995 00:45:22,860 --> 00:45:25,539 y si la altura de la que llama compare tú 996 00:45:25,539 --> 00:45:27,460 es mayor que o, me tiene que devolver positivo 997 00:45:27,460 --> 00:45:30,579 con lo cual, hombre, la forma fácil de hacer esto es 998 00:45:30,579 --> 00:45:32,500 return altura 999 00:45:32,500 --> 00:45:34,199 menos o punto 1000 00:45:34,199 --> 00:45:34,719 altura 1001 00:45:34,719 --> 00:45:38,199 y ya está, como lo he puesto como dable 1002 00:45:38,199 --> 00:45:40,340 pues voy a tener que hacer un casting 1003 00:45:40,340 --> 00:45:41,679 entero, pero no pasa nada 1004 00:45:41,679 --> 00:45:55,920 ¿vale? aquí lo único 1005 00:45:55,920 --> 00:45:57,559 hay un detalle 1006 00:45:57,559 --> 00:46:00,179 que aquí fallaría 1007 00:46:00,179 --> 00:46:02,159 en esta solución y tendríamos que optar por otra 1008 00:46:02,159 --> 00:46:04,300 que es, como yo he puesto 1009 00:46:04,300 --> 00:46:06,320 como la altura dable, si tengo una planta 1010 00:46:06,320 --> 00:46:08,780 que mide 1,3 1011 00:46:08,780 --> 00:46:10,019 y otro que mide 1,2 1012 00:46:10,019 --> 00:46:13,239 claro, me van a salir que son iguales 1013 00:46:13,239 --> 00:46:15,039 con lo cual cuando yo las añada 1014 00:46:15,039 --> 00:46:16,380 en el triset no la va a añadir 1015 00:46:16,380 --> 00:46:18,760 entonces las plantas 1016 00:46:18,760 --> 00:46:20,739 cuya diferencia es en decimales 1017 00:46:20,739 --> 00:46:23,340 esta aplicación no las consideraría 1018 00:46:23,340 --> 00:46:24,579 con lo cual usar un 1019 00:46:24,579 --> 00:46:26,159 dabble es un poco estúpido 1020 00:46:26,159 --> 00:46:29,219 porque va a considerar como iguales 1021 00:46:29,219 --> 00:46:31,159 si, yo he puesto 1022 00:46:31,159 --> 00:46:32,840 dabble porque no quería, me daba pereza 1023 00:46:32,840 --> 00:46:33,559 me había denunciado 1024 00:46:33,559 --> 00:46:36,320 altura máxima en metros 1025 00:46:36,320 --> 00:46:39,019 a ver, no lo dice, uno podría haber elegido 1026 00:46:39,019 --> 00:46:40,820 dabel y entonces esta opción no sería buena 1027 00:46:40,820 --> 00:46:42,760 pero a ver, daba igual, si lo hacía 1028 00:46:42,760 --> 00:46:44,039 no teníamos en cuenta eso 1029 00:46:44,039 --> 00:46:46,840 pero lo que me importa es que entendáis 1030 00:46:46,840 --> 00:46:48,519 que el método compare tú 1031 00:46:48,519 --> 00:46:50,980 te tiene que volver un entero, con lo cual si yo me baso 1032 00:46:50,980 --> 00:46:52,179 en esto, sin más 1033 00:46:52,179 --> 00:46:55,320 no va a distinguir plantas que se diferencian 1034 00:46:55,320 --> 00:46:56,340 solo en decimales 1035 00:46:56,340 --> 00:46:58,780 cuando yo haga el add 1036 00:46:58,780 --> 00:47:01,139 les va a parecer igual, no las va a añadir 1037 00:47:01,139 --> 00:47:03,139 en el add, entonces si me importa 1038 00:47:03,139 --> 00:47:05,000 esa situación, pues no me valdría 1039 00:47:05,000 --> 00:47:07,000 un tríceps. Tendría que hacer 1040 00:47:07,000 --> 00:47:08,780 una lista y luego 1041 00:47:08,780 --> 00:47:10,239 ordenar con sort. Eso ya sí. 1042 00:47:11,039 --> 00:47:12,840 Bueno, no tampoco. Tendría que hacer un comparator. 1043 00:47:13,280 --> 00:47:14,940 Bueno. En fin. 1044 00:47:15,340 --> 00:47:16,880 Estarían las mismas y luego en el 1045 00:47:16,880 --> 00:47:18,599 sort tiro de este. Estarían las mismas. 1046 00:47:19,820 --> 00:47:20,900 Pero a ver, 1047 00:47:20,960 --> 00:47:22,820 lo que quiero decir es que esto no nos importa ahora. 1048 00:47:23,780 --> 00:47:24,800 De hecho, nos importa 1049 00:47:24,800 --> 00:47:26,980 tampoco que en la solución 1050 00:47:26,980 --> 00:47:28,340 que vamos a subir, para no volvernos locos, 1051 00:47:28,440 --> 00:47:30,639 vamos a poner que es entero y se acabó la altura. 1052 00:47:31,679 --> 00:47:32,820 Y así no hay ningún 1053 00:47:32,820 --> 00:47:34,920 problema. Plantas con la misma 1054 00:47:34,920 --> 00:47:36,579 altura son la misma. 1055 00:47:38,699 --> 00:47:40,699 Entonces, yo no puedo meter dos plantas 1056 00:47:40,699 --> 00:47:42,260 con la misma altura en el 1057 00:47:42,260 --> 00:47:43,539 tríset. 1058 00:47:47,099 --> 00:47:48,380 ¿Y aquí qué pasa? 1059 00:47:48,480 --> 00:47:49,900 Ah, claro, que al cambiar el 1060 00:47:49,900 --> 00:47:54,239 int e int 1061 00:47:54,239 --> 00:48:00,570 y sigue habiendo algo rojo aquí. 1062 00:48:04,739 --> 00:48:05,699 Y ahora ya sí. 1063 00:48:05,699 --> 00:48:07,500 Pues ya está. Hacemos un tríset 1064 00:48:07,500 --> 00:48:09,400 y apañao. 1065 00:48:17,480 --> 00:48:17,840 Uy. 1066 00:48:17,840 --> 00:48:34,280 ala, se piden los datos por teclado 1067 00:48:34,280 --> 00:48:36,280 el escáner, etc 1068 00:48:36,280 --> 00:48:38,519 pero bueno, da igual 1069 00:48:38,519 --> 00:49:00,460 vale 1070 00:49:00,460 --> 00:49:03,519 repito, se pedirían por teclado 1071 00:49:03,519 --> 00:49:05,480 en realidad, pero vamos, aquí para comprobar 1072 00:49:05,480 --> 00:49:07,059 simplemente que esto funciona 1073 00:49:07,059 --> 00:49:09,320 las pongo 1074 00:49:09,320 --> 00:49:10,480 así se acabó 1075 00:49:10,480 --> 00:49:14,690 7 1076 00:49:14,690 --> 00:49:16,070 4 1077 00:49:16,070 --> 00:49:18,670 y 6, por ejemplo 1078 00:49:18,670 --> 00:49:19,550 vamos a poner 1079 00:49:19,550 --> 00:49:21,690 y voy a poner un toString 1080 00:49:21,690 --> 00:49:24,570 en planta, un toString para cuando lo muestre 1081 00:49:24,570 --> 00:49:34,550 y ahora ya como es un triset 1082 00:49:34,550 --> 00:49:35,869 ya sabemos que cualquier 1083 00:49:35,869 --> 00:49:38,170 iteración que hagamos los va a mostrar 1084 00:49:38,170 --> 00:49:39,369 por el orden del compareTo 1085 00:49:39,369 --> 00:49:41,030 pues ya está 1086 00:49:41,030 --> 00:49:51,639 y ya está el ejercicio 1087 00:49:51,639 --> 00:49:53,760 a falta de que esto se lee por teclado en realidad 1088 00:49:53,760 --> 00:49:54,280 pero bueno 1089 00:49:54,280 --> 00:49:58,139 vale, pues aquí están ordenadas 1090 00:49:58,139 --> 00:49:59,340 4, 6 y 7 1091 00:49:59,340 --> 00:50:04,500 Pues igual 1092 00:50:04,500 --> 00:50:06,699 Vale, pues completo 1093 00:50:06,699 --> 00:50:09,239 Que uno se hace una lista 1094 00:50:09,239 --> 00:50:10,880 Y luego ordena 1095 00:50:10,880 --> 00:50:12,760 El comparado lo tiene que hacer igualmente 1096 00:50:12,760 --> 00:50:14,320 Por lo que hemos visto nosotros 1097 00:50:14,320 --> 00:50:15,860 El comparado lo tiene que hacer igualmente 1098 00:50:15,860 --> 00:50:19,320 Los pequeños flecos que se nos han quedado colgando 1099 00:50:19,320 --> 00:50:20,420 Del comparado y todo no sé qué 1100 00:50:20,420 --> 00:50:23,239 Ya los vamos incorporando en diferentes aplicaciones 1101 00:50:23,239 --> 00:50:24,000 Que vayamos haciendo 1102 00:50:24,000 --> 00:50:29,809 Bueno, pues examen completo