1 00:00:00,000 --> 00:00:17,460 Vale, en función de lo que queramos hacer con él, pues interesarán unas propiedades u otras. Pues bueno, vamos a ponerle también el curso en el que está matriculado como un entero, pues curso 1, 2, 3, 4, 5, el curso que sea. 2 00:00:17,460 --> 00:00:20,920 y vamos a ponerle también 3 00:00:20,920 --> 00:00:28,719 una lista de notas 4 00:00:28,719 --> 00:00:38,240 venga, un listado de notas 5 00:00:38,240 --> 00:00:40,479 las notas sin más, sin poner ni la asignatura 6 00:00:40,479 --> 00:00:41,640 a la que están asociadas ni nada 7 00:00:41,640 --> 00:00:43,960 porque estamos haciendo cosas cortitas 8 00:00:43,960 --> 00:00:46,920 que podamos hacer rápidamente 9 00:00:46,920 --> 00:00:55,380 bueno, pues venga, entonces ahora ya este alumno 10 00:00:55,380 --> 00:00:57,880 se pueden hacer un poco más de cosas con él 11 00:00:57,880 --> 00:01:00,899 tiene su nombre, tiene el curso en el que está matriculado 12 00:01:00,899 --> 00:01:02,619 curso 1, 2, 3, 4, 5 13 00:01:02,619 --> 00:01:05,379 y tiene una lista de notas decimales 14 00:01:05,379 --> 00:01:07,180 que se supone que son de sus asignaturas 15 00:01:07,180 --> 00:01:08,420 la lista que sea 16 00:01:08,420 --> 00:01:10,439 y el año en el que ha nacido 17 00:01:10,439 --> 00:01:13,280 entonces bueno, a esta entidad 18 00:01:13,280 --> 00:01:15,319 al menos habría que ponerle 19 00:01:15,319 --> 00:01:20,409 los get y set de las propiedades 20 00:01:20,409 --> 00:01:21,469 que nos faltan 21 00:01:21,469 --> 00:01:23,969 los get y set de las que nos faltan 22 00:01:23,969 --> 00:01:25,189 que son curso y notas 23 00:01:25,189 --> 00:01:27,849 y ahora se ha quedado aquí 24 00:01:27,849 --> 00:01:29,469 el crear alumno 25 00:01:29,469 --> 00:01:31,030 pues este crear alumno 26 00:01:31,030 --> 00:01:34,170 se ha quedado solamente con dos datos 27 00:01:34,170 --> 00:01:37,450 vamos a crear al alumno 28 00:01:37,450 --> 00:01:41,569 poniéndole también el curso 29 00:01:41,569 --> 00:01:43,909 y las notas en principio 30 00:01:43,909 --> 00:01:46,810 se quedan a null y así irían añadiendo 31 00:01:46,810 --> 00:01:49,329 vamos a añadir al método crear alumno 32 00:01:49,329 --> 00:01:51,230 vamos a añadir también el curso 33 00:01:51,230 --> 00:01:55,269 le añadimos el curso 34 00:01:55,269 --> 00:01:58,790 entonces el constructor famoso privado 35 00:01:58,790 --> 00:02:01,409 también le añadimos el curso 36 00:02:01,409 --> 00:02:06,370 le añadimos el curso al constructor privado 37 00:02:06,370 --> 00:02:08,150 entonces 38 00:02:08,150 --> 00:02:15,590 vale, he añadido al constructor el curso 39 00:02:15,590 --> 00:02:17,050 nada más 40 00:02:17,050 --> 00:02:18,870 entonces a crear alumno 41 00:02:18,870 --> 00:02:21,110 le paso ese tercer parámetro 42 00:02:21,110 --> 00:02:23,430 y cuando llamo aquí al constructor 43 00:02:23,430 --> 00:02:26,610 le paso también el curso 44 00:02:26,610 --> 00:02:29,110 vale, es decir, he modificado el alumno 45 00:02:29,110 --> 00:02:31,949 para que refleje dos propiedades más 46 00:02:31,949 --> 00:02:34,129 el curso en el que está 47 00:02:34,129 --> 00:02:35,729 y un listado de notas decimales 48 00:02:35,729 --> 00:02:37,289 vale 49 00:02:37,289 --> 00:02:39,849 entonces, ahora 50 00:02:39,849 --> 00:02:44,490 la aplicación va a trabajar 51 00:02:44,490 --> 00:02:46,430 con alumnos, vale, va a trabajar 52 00:02:46,430 --> 00:02:48,370 con alumnos, entonces el 53 00:02:48,370 --> 00:02:50,770 dato que identifica unívocamente 54 00:02:50,770 --> 00:02:51,830 a los alumnos 55 00:02:51,830 --> 00:02:54,550 y por el que se va 56 00:02:54,550 --> 00:02:56,550 a operar, resulta que es 57 00:02:56,550 --> 00:02:58,669 el NIF 58 00:02:58,669 --> 00:03:00,710 y el NIF 59 00:03:00,710 --> 00:03:01,729 no está aquí dentro 60 00:03:01,729 --> 00:03:04,490 pero vamos a optar 61 00:03:04,490 --> 00:03:08,129 por guardar nuestro listado de alumnos 62 00:03:08,129 --> 00:03:10,610 entonces en una estructura de qué tipo 63 00:03:10,610 --> 00:03:12,069 en una estructura map 64 00:03:12,069 --> 00:03:14,610 que cada par sea nif del alumno 65 00:03:14,610 --> 00:03:16,849 objeto alumno con los datos 66 00:03:16,849 --> 00:03:18,750 nif del alumno, objeto alumno con los datos 67 00:03:18,750 --> 00:03:20,509 entonces vamos a hacernos 68 00:03:20,509 --> 00:03:22,409 una clase 69 00:03:22,409 --> 00:03:24,229 que es la que tenga los datos 70 00:03:24,229 --> 00:03:25,930 y tenga la operativa sobre los datos 71 00:03:25,930 --> 00:03:28,909 entonces por ejemplo 72 00:03:28,909 --> 00:03:30,590 vamos a hacernos aquí un paquete 73 00:03:30,590 --> 00:03:35,409 un paquete de datos, le voy a llamar 74 00:03:35,409 --> 00:03:36,969 bueno, no es un nombre que me guste mucho 75 00:03:36,969 --> 00:03:38,409 porque es muy genérico, pero bueno 76 00:03:38,409 --> 00:03:39,789 datos 77 00:03:39,789 --> 00:03:42,090 y vamos a hacer aquí una clase 78 00:03:42,090 --> 00:03:48,080 datos 79 00:03:48,080 --> 00:03:50,479 que va a tener 80 00:03:50,479 --> 00:03:52,919 los datos con los que trabajamos 81 00:03:52,919 --> 00:03:55,759 que en nuestro caso es el conjunto de alumnos 82 00:03:55,759 --> 00:03:57,659 y luego los métodos 83 00:03:57,659 --> 00:03:59,060 que vamos a hacer con esos alumnos 84 00:03:59,060 --> 00:04:00,840 vamos a hacer esta estructura 85 00:04:00,840 --> 00:04:02,379 bueno, pues hemos dicho 86 00:04:02,379 --> 00:04:05,659 si la clave primaria de mis alumnos 87 00:04:05,659 --> 00:04:09,919 esa propiedad por la que yo voy a operar 88 00:04:09,919 --> 00:04:11,000 va a ser el NIF 89 00:04:11,000 --> 00:04:13,099 y el NIF no está en objeto alumno 90 00:04:13,099 --> 00:04:14,780 aquí es que no tengo alternativa 91 00:04:14,780 --> 00:04:19,579 la estructura de datos que se adecua 92 00:04:19,579 --> 00:04:20,360 es un map 93 00:04:20,360 --> 00:04:24,959 mis datos van a estar en un map 94 00:04:24,959 --> 00:04:27,740 y este map 95 00:04:27,740 --> 00:04:31,860 ¿de qué dos tipos será? 96 00:04:32,379 --> 00:04:36,800 Pues si el nif es string, será string y el valor alumno. 97 00:04:37,279 --> 00:04:42,319 La clave será el nif, que es un string, y el valor será el objeto alumno correspondiente. 98 00:04:44,560 --> 00:04:45,800 Vale, aquí están mis alumnos. 99 00:04:47,019 --> 00:04:49,399 Los puedo ya dejar instanciados. 100 00:04:50,779 --> 00:04:50,939 Sí. 101 00:04:52,379 --> 00:04:52,620 Vale. 102 00:04:53,199 --> 00:04:55,339 Para cambiar, vamos a hacer un trimap. 103 00:04:56,339 --> 00:04:57,439 Vamos a hacer un trimap. 104 00:04:58,540 --> 00:05:00,819 Entonces, este map que sea un trimap. 105 00:05:00,819 --> 00:05:13,990 importamos 106 00:05:13,990 --> 00:05:15,850 map, importamos 107 00:05:15,850 --> 00:05:16,850 alumno 108 00:05:16,850 --> 00:05:19,970 e importamos trimap 109 00:05:19,970 --> 00:05:24,230 vale, desde el momento en que 110 00:05:24,230 --> 00:05:26,290 vemos aquí que instanciamos un trimap 111 00:05:26,290 --> 00:05:28,310 ya se nos enciende la primera alerta 112 00:05:28,310 --> 00:05:29,910 que la primera alerta es 113 00:05:29,910 --> 00:05:31,850 uy, ¿qué significa que eso sea un trimap? 114 00:05:32,569 --> 00:05:34,250 significa que las claves 115 00:05:34,250 --> 00:05:35,870 y solo las claves 116 00:05:35,870 --> 00:05:37,769 porque tenemos 117 00:05:37,769 --> 00:05:40,149 las claves por un lado y los valores 118 00:05:40,149 --> 00:05:42,230 por otro y cada clave asociada a un valor 119 00:05:42,230 --> 00:05:44,149 eso está claro, pero las claves están por un lado 120 00:05:44,149 --> 00:05:46,370 los valores por otro, cada clave asociada a un valor 121 00:05:46,370 --> 00:05:48,389 bueno, pues el conjunto 122 00:05:48,389 --> 00:05:49,149 de las claves 123 00:05:49,149 --> 00:05:51,850 ahora ya sabemos que es un triset 124 00:05:51,850 --> 00:05:53,730 sabemos que es un triset 125 00:05:53,730 --> 00:05:56,170 porque en un trimap las claves 126 00:05:56,170 --> 00:05:58,209 se almacenan en un triset, entonces si las claves 127 00:05:58,209 --> 00:05:59,050 van en un triset 128 00:05:59,050 --> 00:06:01,889 para que ese triset pueda funcionar 129 00:06:01,889 --> 00:06:04,350 correctamente tal y como está programado por dentro 130 00:06:04,350 --> 00:06:05,990 ya sabemos que entonces 131 00:06:05,990 --> 00:06:07,750 el tipo al que pertenecen las claves 132 00:06:07,750 --> 00:06:10,069 tiene que ser ordenable, si lo es 133 00:06:10,069 --> 00:06:12,250 ya por sí mismo fenomenal, si no lo es 134 00:06:12,250 --> 00:06:13,930 le tenemos que dar nosotros 135 00:06:13,930 --> 00:06:16,230 una ordenación por encima 136 00:06:16,230 --> 00:06:17,970 nuestras claves que son 137 00:06:17,970 --> 00:06:19,910 string, los string son 138 00:06:19,910 --> 00:06:21,750 ya ordenables por sí mismos, pues sí 139 00:06:21,750 --> 00:06:23,730 tenemos la suerte de que sí, porque los 140 00:06:23,730 --> 00:06:25,529 string implementan 141 00:06:25,529 --> 00:06:27,829 comparable, tienen un compare 142 00:06:27,829 --> 00:06:29,810 tú, ese compare tú en particular es el orden 143 00:06:29,810 --> 00:06:31,750 alfabético, entonces 144 00:06:31,750 --> 00:06:33,850 ya está, no tenemos nada que hacer, ya está todo 145 00:06:33,850 --> 00:06:34,589 fenomenal 146 00:06:34,589 --> 00:06:37,050 con lo cual a partir de aquí 147 00:06:37,050 --> 00:06:39,310 me da igual un trimap 148 00:06:39,310 --> 00:06:41,930 que un hashmap 149 00:06:41,930 --> 00:06:43,370 que me da lo mismo 150 00:06:43,370 --> 00:06:44,670 el uso es igual 151 00:06:44,670 --> 00:06:46,870 ya es satisfecho 152 00:06:46,870 --> 00:06:49,069 las características necesarias 153 00:06:49,069 --> 00:06:50,610 para instanciarlo, ya las tengo 154 00:06:50,610 --> 00:06:53,129 y es que el tipo de las claves 155 00:06:53,129 --> 00:06:55,389 sea ordenable, ya lo tengo, a partir de ahí el uso es el mismo 156 00:06:55,389 --> 00:06:57,509 si esto fuera un hash map 157 00:06:57,509 --> 00:06:58,769 en vez de 158 00:06:58,769 --> 00:07:01,029 un trimap, habría que 159 00:07:01,029 --> 00:07:03,069 satisfacer otros requisitos, que serían 160 00:07:03,069 --> 00:07:06,569 cuáles, que en el tipo 161 00:07:06,569 --> 00:07:08,769 de las claves, al ser un hash set 162 00:07:08,769 --> 00:07:10,769 estuviera el hash code y el equals 163 00:07:10,769 --> 00:07:12,470 en string también está 164 00:07:12,470 --> 00:07:13,410 el hash code y el equals 165 00:07:13,410 --> 00:07:16,470 con lo cual, de poner un trimap 166 00:07:16,470 --> 00:07:18,730 a poner un hashmap, de aquí hacia abajo 167 00:07:18,730 --> 00:07:20,310 ya a partir de ahí 168 00:07:20,310 --> 00:07:22,209 ya es igual, el uso es lo mismo 169 00:07:22,209 --> 00:07:24,350 el put, el get, todo 170 00:07:24,350 --> 00:07:26,329 es lo mismo, ya va a funcionar 171 00:07:26,329 --> 00:07:27,350 por dentro correctamente 172 00:07:27,350 --> 00:07:30,230 ¿cuál va a ser? lo que pasa es que 173 00:07:30,230 --> 00:07:32,350 puedo ver diferencias a ojo 174 00:07:32,350 --> 00:07:34,490 cuando ejecute, la única diferencia 175 00:07:34,490 --> 00:07:36,449 que voy a ver es, si recordáis 176 00:07:36,449 --> 00:07:38,389 que los conjuntos triset 177 00:07:38,389 --> 00:07:39,850 cuando iterábamos por ellos 178 00:07:39,850 --> 00:07:42,110 me aparecía todo ordenado 179 00:07:42,110 --> 00:07:43,850 según el criterio de ordenación 180 00:07:43,850 --> 00:07:46,329 entonces si yo hago el método ese famoso 181 00:07:46,329 --> 00:07:48,209 que me devuelve el conjunto de las claves 182 00:07:48,209 --> 00:07:50,490 que era el keyset 183 00:07:50,490 --> 00:07:52,310 e itero por el keyset 184 00:07:52,310 --> 00:07:53,810 va a dar la casualidad 185 00:07:53,810 --> 00:07:56,129 de que me van a aparecer ordenados 186 00:07:56,129 --> 00:07:58,110 alfabéticamente por DNI 187 00:07:58,110 --> 00:07:59,930 va a ocurrir eso 188 00:07:59,930 --> 00:08:02,029 y si yo tengo aquí un hashMap 189 00:08:02,029 --> 00:08:04,230 e itero por las claves, no van a aparecer 190 00:08:04,230 --> 00:08:06,189 ordenadas por orden alfabético, es la única diferencia 191 00:08:06,189 --> 00:08:08,310 pero nada más, todo lo demás va a ser 192 00:08:08,310 --> 00:08:10,350 igual, entonces bueno 193 00:08:10,350 --> 00:08:12,209 pues si resulta que aquí 194 00:08:12,209 --> 00:08:14,149 en lugar de DNI, pues a lo mejor fueran nombres 195 00:08:14,149 --> 00:08:16,490 o fuera algo, y a mí me viene bien 196 00:08:16,490 --> 00:08:18,310 que a la hora de iterar me aparezcan 197 00:08:18,310 --> 00:08:20,410 ordenados alfabéticamente, si me viene bien eso 198 00:08:20,410 --> 00:08:22,509 porque tengo que sacar listados 199 00:08:22,509 --> 00:08:24,329 y no tengo que ordenar porque ya tengo 200 00:08:24,329 --> 00:08:25,850 el orden hecho, pues si me viene bien 201 00:08:25,850 --> 00:08:28,269 que esté ese orden, pues mira, el trimap 202 00:08:28,269 --> 00:08:30,269 comodísimo, porque es que ya en la iteración 203 00:08:30,269 --> 00:08:31,310 me aparecen ordenados 204 00:08:31,310 --> 00:08:34,029 pues entonces no tengo ni que ordenar luego 205 00:08:34,029 --> 00:08:35,929 en este caso son DNIs 206 00:08:35,929 --> 00:08:37,590 pues entre que aparezca ordenado y no 207 00:08:37,590 --> 00:08:39,090 tampoco, pero bueno 208 00:08:39,090 --> 00:08:41,870 Metemos el trimad y ya está 209 00:08:41,870 --> 00:08:43,549 Vale, mis datos van ahí 210 00:08:43,549 --> 00:08:45,750 Y ahora ya, ¿qué ocurre? 211 00:08:46,370 --> 00:08:47,830 Estos datos van a ser los datos 212 00:08:47,830 --> 00:08:49,029 Con los que trabaje 213 00:08:49,029 --> 00:08:51,149 La aplicación 214 00:08:51,149 --> 00:08:54,250 Datos, una única instancia de estos datos 215 00:08:54,250 --> 00:08:54,809 Solo una 216 00:08:54,809 --> 00:08:56,710 Entonces, hombre 217 00:08:56,710 --> 00:08:59,509 Pongámosle el static 218 00:08:59,509 --> 00:09:01,769 ¿Vale? 219 00:09:03,029 --> 00:09:03,649 Uf, que 220 00:09:03,649 --> 00:09:07,070 Ya sé que se puede poner así 221 00:09:07,070 --> 00:09:08,370 Pero es que me hace daño en la vista 222 00:09:08,370 --> 00:09:09,009 Ver ese orden 223 00:09:09,009 --> 00:09:10,269 me gusta mucho más este 224 00:09:10,269 --> 00:09:13,090 el modificador de acceso 225 00:09:13,090 --> 00:09:15,889 siempre el primero 226 00:09:15,889 --> 00:09:17,350 no es que sea estricto 227 00:09:17,350 --> 00:09:19,169 pero hombre es lo que se ha hecho toda la vida 228 00:09:19,169 --> 00:09:20,549 y si lo ves cambiado 229 00:09:20,549 --> 00:09:22,350 te da un poco de angustia 230 00:09:22,350 --> 00:09:25,210 modificador de acceso el primero es más habitual 231 00:09:25,210 --> 00:09:27,669 luego ya el si es estático o no 232 00:09:27,669 --> 00:09:29,210 y luego ya el tipo de dato de retorno 233 00:09:29,210 --> 00:09:31,210 si es final o no 234 00:09:31,210 --> 00:09:32,529 pues también después del estático 235 00:09:32,529 --> 00:09:35,450 pero vamos no es que el orden tenga que ser así 236 00:09:35,450 --> 00:09:37,549 venga pues ya está 237 00:09:37,549 --> 00:09:40,950 Y ahora ya, ¿qué queremos hacer con los alumnos? 238 00:09:41,009 --> 00:09:42,070 ¿Qué queremos hacer con los alumnos? 239 00:09:42,470 --> 00:09:44,129 Pues uno ya lo decide, pues entonces 240 00:09:44,129 --> 00:09:46,509 Vamos a hacer estos 241 00:09:46,509 --> 00:09:48,690 Métodos de aquí 242 00:09:48,690 --> 00:09:49,610 ¿Vale? 243 00:10:04,279 --> 00:10:06,620 Los dejo en blanco para que los hagáis ahora 244 00:10:06,620 --> 00:10:07,639 Rápidamente 245 00:10:07,639 --> 00:10:10,559 Vale, hago insertar para que luego 246 00:10:10,559 --> 00:10:12,399 En el main cuando lo podáis probar 247 00:10:12,399 --> 00:10:12,799 Pues 248 00:10:12,799 --> 00:10:16,480 Entonces este también ya podemos avanzar 249 00:10:16,480 --> 00:10:18,700 Que será estático, claro, y si lo quiero llamar desde fuera 250 00:10:18,700 --> 00:10:20,080 Pues lo hago public 251 00:10:20,080 --> 00:10:21,899 porque si no lo hago public lo voy a poder llamar desde fuera 252 00:10:21,899 --> 00:10:24,379 venga, insertar un objeto 253 00:10:24,379 --> 00:10:26,159 alumno en el map 254 00:10:26,159 --> 00:10:28,240 vale, ahora 255 00:10:28,240 --> 00:10:29,639 ¿qué vamos a hacer también? 256 00:10:30,340 --> 00:10:31,480 pues vamos a 257 00:10:31,480 --> 00:10:34,580 ponerle, añadirle 258 00:10:34,580 --> 00:10:36,440 una nota más, por ejemplo 259 00:10:36,440 --> 00:10:38,200 podemos hacer esta 260 00:10:38,200 --> 00:10:47,090 funcionalidad, add nota 261 00:10:47,090 --> 00:10:49,090 entonces al alumno 262 00:10:49,090 --> 00:10:51,350 con el nif correspondiente 263 00:10:51,350 --> 00:10:53,049 que yo le de como 264 00:10:53,049 --> 00:10:55,070 valor de para, le vamos 265 00:10:55,070 --> 00:10:56,509 a añadir esta nota 266 00:10:56,509 --> 00:10:58,809 Esta nota le vamos a añadir 267 00:10:58,809 --> 00:11:00,590 Para que tenga una nota más 268 00:11:00,590 --> 00:11:03,529 Es otra funcionalidad que podemos hacer con los datos 269 00:11:03,529 --> 00:11:07,950 A un alumno con un NIF le añado una nota más a su listado de notas 270 00:11:07,950 --> 00:11:12,070 ¿Qué otra funcionalidad puede ser interesante para esta aplicación? 271 00:11:13,149 --> 00:11:16,570 Pues por ejemplo, calcular nota media de un alumno 272 00:11:16,570 --> 00:11:17,190 Está claro 273 00:11:17,190 --> 00:11:23,769 La nota media que la devuelva como valor de retorno 274 00:11:23,769 --> 00:11:27,759 Yo le doy un alumno 275 00:11:27,759 --> 00:11:35,370 Y de ese alumno me devuelve 276 00:11:35,370 --> 00:11:36,769 La nota media que tiene 277 00:11:36,769 --> 00:11:38,309 ¿Vale? 278 00:11:38,710 --> 00:11:40,590 Para que no me salga error de compilación 279 00:11:40,590 --> 00:11:41,990 Le voy a poner aquí retuncero 280 00:11:41,990 --> 00:11:43,769 Pero luego ya habrá que poner lo que sea, claro 281 00:11:43,769 --> 00:11:46,570 Y ahora, ¿qué otra cosa 282 00:11:46,570 --> 00:11:48,190 Tenía yo en mente? 283 00:11:48,529 --> 00:11:48,809 Vale 284 00:11:48,809 --> 00:12:01,929 Pues dado un curso 285 00:12:01,929 --> 00:12:04,049 Dado un curso académico 286 00:12:04,049 --> 00:12:06,929 Dado un curso, el 1, el 2, el 3, el 4 287 00:12:06,929 --> 00:12:08,970 Pues la nota media 288 00:12:08,970 --> 00:12:09,929 De ese curso 289 00:12:09,929 --> 00:12:13,090 O sea, de todos los alumnos, de todas sus notas 290 00:12:13,090 --> 00:12:27,429 Nota media del curso 291 00:12:27,429 --> 00:12:29,070 Dando ahora el qué 292 00:12:29,070 --> 00:12:29,850 Dando un curso 293 00:12:29,850 --> 00:12:32,210 Yo doy un curso y la nota media del curso 294 00:12:32,210 --> 00:12:37,539 Y le voy a poner aquí también 295 00:12:37,539 --> 00:12:38,360 Reto un cero 296 00:12:38,360 --> 00:12:43,200 Bueno, pues entonces 297 00:12:43,200 --> 00:12:45,000 Los datos están aquí 298 00:12:45,000 --> 00:12:48,500 Hay una razón por la que hemos elegido que estén aquí los datos 299 00:12:48,500 --> 00:12:50,639 Y esa razón 300 00:12:50,639 --> 00:12:52,259 Nos ha hecho decidir un map 301 00:12:52,259 --> 00:12:55,080 Un trimap, porque nos gustaba el orden de las claves 302 00:12:55,080 --> 00:12:56,299 Y ya está, los datos están ahí 303 00:12:56,299 --> 00:12:57,460 Esos son los datos 304 00:12:57,460 --> 00:12:59,759 y ahora, ¿qué queremos hacer con esos datos? 305 00:13:00,240 --> 00:13:00,620 esto 306 00:13:00,620 --> 00:13:03,559 quiero poder insertar un alumno nuevo 307 00:13:03,559 --> 00:13:06,360 quiero poder añadirle nota a un alumno 308 00:13:06,360 --> 00:13:08,299 y quiero poder sacar las medias 309 00:13:08,299 --> 00:13:10,240 tanto de un alumno como de un curso 310 00:13:10,240 --> 00:13:12,179 eso es lo que por ahora 311 00:13:12,179 --> 00:13:12,759 quiero hacer 312 00:13:12,759 --> 00:13:15,480 ¿vale? pues venga 313 00:13:15,480 --> 00:13:18,220 eh, haced estos cuatro métodos 314 00:13:18,220 --> 00:13:19,799 entonces, luego ya habrá un main 315 00:13:19,799 --> 00:13:21,100 que ya llame a esto 316 00:13:21,100 --> 00:13:23,700 ¿no? la idea es que luego ya 317 00:13:23,700 --> 00:13:24,799 uno 318 00:13:24,799 --> 00:13:28,179 pues podría probar esto 319 00:13:28,179 --> 00:13:31,840 en un main, llamémosle 2 320 00:13:31,840 --> 00:13:32,440 por ejemplo 321 00:13:32,440 --> 00:13:35,840 en un main 2, pues uno ya 322 00:13:35,840 --> 00:13:37,919 podría probar estos métodos 323 00:13:37,919 --> 00:13:39,940 aquí hombre, lo ideal sería hacer un menú 324 00:13:39,940 --> 00:13:41,840 ¿qué desea hacer? insertar alumno, no sé cuándo 325 00:13:41,840 --> 00:13:43,860 no sé qué, pero vamos, dentro de ese menú 326 00:13:43,860 --> 00:13:45,820 pues lo que al final va a acabar haciendo es esto 327 00:13:45,820 --> 00:13:47,899 insertar alumno 328 00:13:47,899 --> 00:13:53,669 añadir nota 329 00:13:53,669 --> 00:13:54,529 al alumno 330 00:13:54,529 --> 00:13:57,129 ahora ya desde el main 331 00:13:57,129 --> 00:13:59,090 uno puede hacer las pruebas de estos métodos 332 00:13:59,090 --> 00:14:01,309 que ha hecho, que son métodos estáticos 333 00:14:01,309 --> 00:14:03,090 puedo hacer las pruebas, o ya hacer 334 00:14:03,090 --> 00:14:05,169 la propia aplicación, con un 335 00:14:05,169 --> 00:14:06,789 menú, etcétera, pero bueno, ahora mismo 336 00:14:06,789 --> 00:14:09,389 nuestro trabajo, ahora mismo 337 00:14:09,389 --> 00:14:09,870 es 338 00:14:09,870 --> 00:14:12,549 que hagáis 339 00:14:12,549 --> 00:14:15,269 estos cuatro métodos de aquí 340 00:14:15,269 --> 00:14:16,110 el primero es 341 00:14:16,110 --> 00:14:18,870 inmediato, vale 342 00:14:18,870 --> 00:14:27,600 pues venga, esos cuatro 343 00:14:27,600 --> 00:14:31,700 y vamos a completar lo de los turnos 344 00:14:31,700 --> 00:14:53,970 entonces, vale 345 00:14:53,970 --> 00:14:56,309 ¿Quién más de los que no están aquí tiene 346 00:14:56,309 --> 00:14:58,509 FOL? Claudia tiene FOL, ¿verdad? 347 00:15:02,149 --> 00:15:02,669 Vale 348 00:15:02,669 --> 00:15:05,909 Vale, Claudia 349 00:15:05,909 --> 00:15:08,649 Que se apellida, que estoy hoy 350 00:15:08,649 --> 00:15:10,370 ¿Cómo se apellida Claudia? 351 00:15:13,360 --> 00:15:14,720 Claudia Guerrero, eso 352 00:15:14,720 --> 00:15:19,200 Vale, ¿quién más hemos 353 00:15:19,200 --> 00:15:20,159 Dicho que tenía FOL? 354 00:15:20,919 --> 00:15:22,279 Alejandro García tiene FOL 355 00:15:22,279 --> 00:15:31,750 Claudia Guerrero, vale, Alejandro García 356 00:15:31,750 --> 00:15:35,070 ¿Quién más? 357 00:15:35,210 --> 00:15:36,649 David Jiménez también, ¿no? 358 00:15:38,330 --> 00:15:39,669 David Jiménez también 359 00:15:39,669 --> 00:15:46,509 ¿De los tuyos esto de atrás? 360 00:15:50,470 --> 00:15:50,950 Edison 361 00:15:50,950 --> 00:16:04,899 Vale, Edison 362 00:16:04,899 --> 00:16:06,820 Claro, como tiene un segundo nombre 363 00:16:06,820 --> 00:16:09,059 que es Edison Patricio, el apellido se me olvida 364 00:16:09,059 --> 00:16:10,220 ¿Cuál es el apellido de Edison? 365 00:16:13,649 --> 00:16:15,129 Ya, a ver, esperamos a 366 00:16:15,129 --> 00:16:17,370 Edison 367 00:16:17,370 --> 00:16:19,289 y luego teníamos 368 00:16:19,289 --> 00:16:20,789 A Daniel Gallego, hemos dicho, ¿no? 369 00:16:20,789 --> 00:16:21,850 Porque a Andoni Ferrero no 370 00:16:21,850 --> 00:16:23,950 Ah, también 371 00:16:23,950 --> 00:16:26,929 Bueno, nos hemos pasado casi 372 00:16:26,929 --> 00:16:30,590 Yo creo que Edison es García 373 00:16:30,590 --> 00:16:32,350 Edison García, creo, era lo mismo 374 00:16:32,350 --> 00:16:34,070 Daniel Gallego, Andoni 375 00:16:34,070 --> 00:16:38,570 Pues sí que tenéis fall en este curso 376 00:16:38,570 --> 00:16:39,590 Un montón de gente 377 00:16:39,590 --> 00:16:42,529 Uno, dos, tres, cuatro 378 00:16:42,529 --> 00:16:44,809 Cinco, seis, siete 379 00:16:44,809 --> 00:16:46,629 Ocho, nueve, diez, once 380 00:16:46,629 --> 00:16:47,490 Vale, bueno 381 00:16:47,490 --> 00:16:49,889 Edison 382 00:16:49,889 --> 00:16:54,429 vale, y alumnos entonces que me faltan 383 00:16:54,429 --> 00:16:56,169 son de esta primera fila, estáis todos 384 00:16:56,169 --> 00:16:56,830 colocados 385 00:16:56,830 --> 00:16:59,110 de aquí también 386 00:16:59,110 --> 00:17:01,929 de ahí 387 00:17:01,929 --> 00:17:08,670 voy a pasar lista 388 00:17:08,670 --> 00:17:09,190 y así 389 00:17:09,190 --> 00:17:18,710 ah, perdón, tienes toda la razón 390 00:17:18,710 --> 00:17:19,650 claro, se me ha olvidado 391 00:17:19,650 --> 00:17:37,910 Sí, sí, sí, sí, claro. Insertar alumno, hay que darle el NIF, claro. Sí, sí. Falta un dato, claro. Efectivamente. El NIF y el objeto alumno con los datos. Claro, a ver, es que aquí lo natural sería insertar alumno. Y aquí realmente en un, ah. 392 00:17:37,910 --> 00:17:43,849 Bueno, es que el map ya tiene acceso a él 393 00:17:43,849 --> 00:17:45,890 Porque es una variable estática de la propia clase 394 00:17:45,890 --> 00:17:47,670 Puedes acceder directamente 395 00:17:47,670 --> 00:17:48,529 No hace falta 396 00:17:48,529 --> 00:17:50,009 Este método puede acceder aquí 397 00:17:50,009 --> 00:17:51,609 Sin problema 398 00:17:51,609 --> 00:17:53,130 Vale, entonces 399 00:17:53,130 --> 00:17:54,769 Sigue estando pausado, ¿no? 400 00:17:58,630 --> 00:17:59,069 Eso 401 00:17:59,069 --> 00:18:00,650 Claro, se me había olvidado 402 00:18:00,650 --> 00:18:01,609 A ver, aquí en realidad 403 00:18:01,609 --> 00:18:03,009 Este método 404 00:18:03,009 --> 00:18:05,210 Como este método se supone que es el método 405 00:18:05,210 --> 00:18:07,750 Que va a usar el usuario directamente 406 00:18:07,750 --> 00:18:09,769 esto verdaderamente en condiciones 407 00:18:09,769 --> 00:18:11,690 normales, lo que aquí se pasaría 408 00:18:11,690 --> 00:18:13,609 serían los datos del alumno. Y ya insertar 409 00:18:13,609 --> 00:18:15,569 al alumno lo crearía dentro. O sea, esto realmente 410 00:18:15,569 --> 00:18:16,670 sería mucho mejor. 411 00:18:17,430 --> 00:18:19,670 Si le ponemos string alumno, 412 00:18:20,170 --> 00:18:21,569 el resto de datos del alumno 413 00:18:21,569 --> 00:18:23,490 que son string nombre, 414 00:18:26,589 --> 00:18:27,329 el curso 415 00:18:27,329 --> 00:18:31,690 y el año. Porque las notas 416 00:18:31,690 --> 00:18:33,549 hemos dicho que se le crea como nombre. O sea, 417 00:18:33,549 --> 00:18:35,130 este método estaría mejor. 418 00:18:36,609 --> 00:18:37,549 Y ahora aquí este 419 00:18:37,549 --> 00:18:39,490 que haga lo que sea. Porque 420 00:18:39,490 --> 00:18:42,349 Que el que llama a este método igual no tiene acceso a la clase alumno. 421 00:18:43,230 --> 00:18:46,410 El que llama a este método puede ser una interfaz gráfica que recoge los datos 422 00:18:46,410 --> 00:18:51,289 y llama al método para pasárselos, pero puede no tener ni acceso a la clase alumno. 423 00:18:52,289 --> 00:18:53,789 Entonces, este método está mejor así. 424 00:18:55,009 --> 00:18:57,190 Pasas los datos y este hace dentro. 425 00:19:04,579 --> 00:19:07,039 Entonces, para las cabeceras, para las APIs que hemos llamado, 426 00:19:07,559 --> 00:19:09,359 la clase alumno debería ser transparente. 427 00:19:09,799 --> 00:19:11,980 Es dentro donde ya sí que se usa. 428 00:19:17,109 --> 00:19:19,509 No, porque inicialmente se crean con notas vacías. 429 00:19:19,509 --> 00:19:22,390 Luego ya hay un método de añadir nota para añadirla 430 00:19:22,390 --> 00:19:23,950 Uy, yo no he parado esto