1 00:00:00,620 --> 00:00:02,419 vale, vamos a nuestro main 2 00:00:02,419 --> 00:00:03,580 este de aquí otra vez 3 00:00:03,580 --> 00:00:06,500 pues hombre, ya hay muchas cosas que podemos hacer con una lista 4 00:00:06,500 --> 00:00:06,740 ¿no? 5 00:00:08,279 --> 00:00:09,699 podemos meter cosas 6 00:00:09,699 --> 00:00:12,480 podemos recuperar 7 00:00:12,480 --> 00:00:13,919 podemos consultar 8 00:00:13,919 --> 00:00:16,280 recorriendo con un for y con el get 9 00:00:16,280 --> 00:00:17,440 consultar por posición 10 00:00:17,440 --> 00:00:20,059 hemos podido ordenar 11 00:00:20,059 --> 00:00:22,160 y muchas cosas, las que nos ofrezcan los métodos 12 00:00:22,160 --> 00:00:24,059 ¿que queremos eliminar? 13 00:00:24,120 --> 00:00:25,239 vale, vamos a eliminar 14 00:00:25,239 --> 00:00:28,420 y ya hacéis un pequeño 15 00:00:28,420 --> 00:00:29,460 main 16 00:00:29,460 --> 00:00:31,859 que haga cosas con alumno, con una colección 17 00:00:31,859 --> 00:00:33,579 y ya está 18 00:00:33,579 --> 00:00:35,820 vale, que queremos eliminar alumnos 19 00:00:35,820 --> 00:00:45,369 por ejemplo, vale 20 00:00:45,369 --> 00:00:47,049 pues ya hemos visto antes que remove 21 00:00:47,049 --> 00:00:48,850 hay unas cuantas variantes 22 00:00:48,850 --> 00:00:51,409 de remove, eliminar por 23 00:00:51,409 --> 00:00:53,369 posición está clara, imaginamos que queremos 24 00:00:53,369 --> 00:00:55,149 eliminar el 25 00:00:55,149 --> 00:00:56,929 ah bueno, que lo hemos hecho antes 26 00:00:56,929 --> 00:00:59,329 el remove 1, vale, este ya lo hemos hecho 27 00:00:59,329 --> 00:01:01,310 hemos visto que efectivamente podemos 28 00:01:01,310 --> 00:01:02,729 eliminar por posición 29 00:01:02,729 --> 00:01:18,390 vale, pero hemos visto que había 30 00:01:18,390 --> 00:01:28,000 otra variante, ¿vale? 31 00:01:28,040 --> 00:01:30,060 Eliminar por objeto. Hemos visto que había 32 00:01:30,060 --> 00:01:35,670 una variante, jolines, 33 00:01:47,290 --> 00:01:48,590 hemos visto que efectivamente 34 00:01:48,590 --> 00:01:49,689 había una variante 35 00:01:49,689 --> 00:01:52,450 que le pasabas un objeto y te 36 00:01:52,450 --> 00:01:53,670 elimina ese objeto 37 00:01:53,670 --> 00:01:55,430 de la colección. 38 00:01:56,310 --> 00:01:58,510 ¿Vale? Es decir, 39 00:01:58,609 --> 00:02:00,569 tú no tienes la posición en la 40 00:02:00,569 --> 00:02:02,709 que está el alumno, que normalmente 41 00:02:02,709 --> 00:02:04,489 en muchos casos no eliminas por 42 00:02:04,489 --> 00:02:06,450 posición. Yo tengo mi aplicación de 43 00:02:06,450 --> 00:02:08,330 gestión de alumnos. Según me van llegando 44 00:02:08,330 --> 00:02:09,669 al mostrador de secretaría 45 00:02:09,669 --> 00:02:12,610 pues nada, yo voy, venga, en mi interfaz gráfica 46 00:02:12,610 --> 00:02:14,389 voy ahí pa' papá, voy tecleando 47 00:02:14,389 --> 00:02:16,250 sus datos pa' dentro, tecleando sus datos pa' dentro 48 00:02:16,250 --> 00:02:18,289 eso en la aplicación está generando una 49 00:02:18,289 --> 00:02:18,849 lista 50 00:02:18,849 --> 00:02:22,289 pero la aplicación de gestión 51 00:02:22,289 --> 00:02:24,250 no tiene por qué estarte registrando en qué 52 00:02:24,250 --> 00:02:26,150 posición está cada uno, no tiene por qué 53 00:02:26,150 --> 00:02:28,069 estarte registrando, entonces tú a lo mejor 54 00:02:28,069 --> 00:02:30,069 quieres eliminar uno, pero quieres 55 00:02:30,069 --> 00:02:32,069 eliminar el alumno que te llega, oye que soy 56 00:02:32,069 --> 00:02:33,650 Pepito, con el número de matrícula tal 57 00:02:33,650 --> 00:02:34,889 elimíname 58 00:02:34,889 --> 00:02:38,189 bueno, pues Pepito, con el número de matrícula tal 59 00:02:38,189 --> 00:02:39,909 donde está, no le puedo eliminar por posición 60 00:02:39,909 --> 00:02:42,250 para eso 61 00:02:42,250 --> 00:02:43,189 estaría este remove 62 00:02:43,189 --> 00:02:45,550 para eso estaría este remove 63 00:02:45,550 --> 00:02:47,949 vale, voy a intentar usarlo así 64 00:02:47,949 --> 00:02:50,110 vamos a intentar usarlo así, a ver que pasa 65 00:02:50,110 --> 00:02:52,389 vamos a suponer 66 00:02:52,389 --> 00:02:53,669 que queremos eliminar 67 00:02:53,669 --> 00:02:55,569 a este objeto 68 00:02:55,569 --> 00:03:07,990 a este objeto 69 00:03:07,990 --> 00:03:10,969 vamos a eliminar a este de aquí 70 00:03:10,969 --> 00:03:12,849 a este 71 00:03:12,849 --> 00:03:16,530 bueno, pues en principio 72 00:03:16,530 --> 00:03:18,389 uno podría pensar, no 73 00:03:18,389 --> 00:03:21,680 voy a pasarle 74 00:03:21,680 --> 00:03:22,939 ese objeto 75 00:03:22,939 --> 00:03:25,680 voy a pasarle ese 76 00:03:25,680 --> 00:03:28,159 el alumno con 77 00:03:28,159 --> 00:03:30,139 número de matrícula 3 que se llama 78 00:03:30,139 --> 00:03:31,819 Pepe con 20 años 79 00:03:31,819 --> 00:03:33,259 que lo he metido aquí 80 00:03:33,259 --> 00:03:34,659 y está en la lista 81 00:03:34,659 --> 00:03:39,280 vamos a eliminarlo 82 00:03:39,280 --> 00:03:41,599 y ahora vamos a 83 00:03:41,599 --> 00:03:46,310 volver a recorrerla 84 00:03:46,310 --> 00:03:47,150 a ver que ha hecho 85 00:03:47,150 --> 00:03:55,930 voy a poner aquí 86 00:03:55,930 --> 00:03:57,729 esto para que se vea que 87 00:03:57,729 --> 00:04:00,069 este último 88 00:04:00,069 --> 00:04:06,159 a ver 89 00:04:06,159 --> 00:04:07,740 remove me dice 90 00:04:07,740 --> 00:04:08,719 pásale un objeto 91 00:04:08,719 --> 00:04:16,660 sí, pero déjame que lo probemos 92 00:04:16,660 --> 00:04:20,800 vale, pero me refiero 93 00:04:20,800 --> 00:04:22,959 que alguien podría pensar, me pides un objeto 94 00:04:22,959 --> 00:04:24,040 a eliminar 95 00:04:24,040 --> 00:04:27,000 yo de ese objeto ya no tengo la referencia en ningún sitio 96 00:04:27,000 --> 00:04:29,079 porque cuando yo te lo he 97 00:04:29,079 --> 00:04:30,819 dado para insertar te he dicho 98 00:04:30,819 --> 00:04:32,819 un alumno con estos datos 99 00:04:32,819 --> 00:04:34,220 vale 100 00:04:34,220 --> 00:04:36,879 y ahora bórrame un alumno con esos datos 101 00:04:36,879 --> 00:04:38,759 entonces uno podría pensar 102 00:04:38,759 --> 00:04:40,420 efectivamente que esto tiene sentido 103 00:04:40,420 --> 00:04:42,819 ¿no? te paso un objeto 104 00:04:42,819 --> 00:04:44,899 con esos datos, búscame el que 105 00:04:44,899 --> 00:04:46,480 sea igual, ¿vale? 106 00:04:46,639 --> 00:04:47,800 entonces vamos a probarlo 107 00:04:47,800 --> 00:04:55,660 vale 108 00:04:55,660 --> 00:04:57,819 y efectivamente yo le he pasado 109 00:04:57,819 --> 00:04:59,139 que borre al pp este 110 00:04:59,139 --> 00:05:03,139 y no ha borrado a nadie 111 00:05:03,139 --> 00:05:05,019 ¿vale? no ha borrado a nadie 112 00:05:05,019 --> 00:05:07,279 luego la pregunta sería 113 00:05:07,279 --> 00:05:08,980 ¿entonces este remove por objeto 114 00:05:08,980 --> 00:05:11,500 para qué vale? ¿cómo lo puede usar? 115 00:05:12,060 --> 00:05:12,639 ¿para qué sirve? 116 00:05:15,170 --> 00:05:16,589 vale, pues remove ¿qué es lo que hace? 117 00:05:17,050 --> 00:05:33,490 A remove tú le pasas un objeto, eso está claro, un objeto, y él empieza a recorrer la colección hasta que encuentra uno que es igual a ese, y en cuanto encuentra un objeto que es igual a ese, ese objeto lo elimina, y ya está. 118 00:05:34,970 --> 00:05:44,290 Vale, ¿qué he dicho yo en esta frase? Que está abierto, un objeto que sea igual a ese, eso está abierto, e igual, ¿qué significa que sea igual? 119 00:05:44,290 --> 00:05:46,529 que significa que sea igual 120 00:05:46,529 --> 00:05:49,009 pues en términos de java 121 00:05:49,009 --> 00:05:50,990 ser igual significa que el método 122 00:05:50,990 --> 00:05:53,310 equals para esos dos objetos 123 00:05:53,310 --> 00:05:54,029 me ha devuelto true 124 00:05:54,029 --> 00:05:57,350 y el método equals de la clase 125 00:05:57,350 --> 00:05:59,050 alumno, cual es 126 00:05:59,050 --> 00:06:00,889 el de object porque no lo he sobrescrito 127 00:06:00,889 --> 00:06:03,069 luego 128 00:06:03,069 --> 00:06:04,569 remove que ha hecho 129 00:06:04,569 --> 00:06:06,149 cuando yo he hecho esto de aquí 130 00:06:06,149 --> 00:06:09,149 aquí ha pasado 131 00:06:09,149 --> 00:06:11,050 esto, vamos a 132 00:06:11,050 --> 00:06:13,009 abrir 133 00:06:13,009 --> 00:06:15,829 Nuestro paint magnífico 134 00:06:15,829 --> 00:06:19,500 Vale 135 00:06:19,500 --> 00:06:20,300 Yo tengo 136 00:06:20,300 --> 00:06:23,180 Ah que susto 137 00:06:23,180 --> 00:06:27,139 Vale yo tengo aquí mi lista 138 00:06:27,139 --> 00:06:30,019 Imaginamos que esta es mi lista 139 00:06:30,019 --> 00:06:30,699 Vale 140 00:06:30,699 --> 00:06:32,699 Entonces tengo aquí 141 00:06:32,699 --> 00:06:36,139 Mi lista 142 00:06:36,139 --> 00:06:38,120 Le voy a poner 143 00:06:38,120 --> 00:06:39,100 Dos propiedades solo 144 00:06:39,100 --> 00:06:41,339 Aquí está Pepe 145 00:06:41,339 --> 00:06:43,199 Que tiene 146 00:06:43,199 --> 00:06:48,480 20 años 147 00:06:48,480 --> 00:06:49,120 Vale 148 00:06:49,120 --> 00:07:05,360 Aquí está cualquier otro 149 00:07:05,360 --> 00:07:07,360 Voy a hacer dos solamente 150 00:07:07,360 --> 00:07:14,740 Vale 151 00:07:14,740 --> 00:07:17,199 Y esta es mi lista 152 00:07:17,199 --> 00:07:19,279 Bueno, y aquí está este otro 153 00:07:19,279 --> 00:07:29,069 Vale, pues esta es mi lista 154 00:07:29,069 --> 00:07:30,009 Con estos objetos 155 00:07:30,009 --> 00:07:33,089 PP20, Juan27 156 00:07:33,089 --> 00:07:33,649 Ana12 157 00:07:33,649 --> 00:07:36,329 Ahora yo quiero borrar a Juan27 158 00:07:36,329 --> 00:07:38,649 Entonces estoy creando un nuevo objeto 159 00:07:38,649 --> 00:07:39,550 Juan 27 160 00:07:39,550 --> 00:07:42,250 Esto de aquí, estoy creando un nuevo objeto 161 00:07:42,250 --> 00:07:43,050 Este 162 00:07:43,050 --> 00:07:45,569 Es lo que estoy haciendo 163 00:07:45,569 --> 00:07:48,529 Vale, pues estoy creándome aquí un nuevo objeto 164 00:07:48,529 --> 00:07:49,889 Este de aquí 165 00:07:49,889 --> 00:07:55,279 Que tiene también 166 00:07:55,279 --> 00:07:57,300 Juan 167 00:07:57,300 --> 00:08:00,399 Y 27 168 00:08:00,399 --> 00:08:01,459 Vale 169 00:08:01,459 --> 00:08:04,000 Bueno, pues le estoy pasando a remove 170 00:08:04,000 --> 00:08:06,060 Le estoy pasando esto de aquí 171 00:08:06,060 --> 00:08:08,079 Este le estoy pasando 172 00:08:08,079 --> 00:08:08,500 A remove 173 00:08:08,500 --> 00:08:10,600 Y mi lista es esta 174 00:08:10,600 --> 00:08:12,540 esta es mi lista 175 00:08:12,540 --> 00:08:15,540 ¿vale? esta es la lista 176 00:08:15,540 --> 00:08:16,819 ¿qué hace Remus? 177 00:08:17,459 --> 00:08:19,720 pues empieza a comparar uno con uno 178 00:08:19,720 --> 00:08:21,160 primero 179 00:08:21,160 --> 00:08:23,779 compara Juan con Pepe 180 00:08:23,779 --> 00:08:25,879 este objeto con este otro 181 00:08:25,879 --> 00:08:27,980 si son iguales 182 00:08:27,980 --> 00:08:30,620 elimina a este de la lista 183 00:08:30,620 --> 00:08:31,980 que no son iguales 184 00:08:31,980 --> 00:08:32,879 pasa al siguiente 185 00:08:32,879 --> 00:08:34,820 compara este con este 186 00:08:34,820 --> 00:08:36,440 que son iguales 187 00:08:36,440 --> 00:08:38,200 elimina a este de la lista 188 00:08:38,200 --> 00:08:39,039 que no lo son 189 00:08:39,039 --> 00:08:41,440 pasa a comparar este con este 190 00:08:41,440 --> 00:08:43,200 luego el remove hace muchas cosas por dentro 191 00:08:43,200 --> 00:08:44,940 y tera por toda la lista 192 00:08:44,940 --> 00:08:47,480 hasta que encuentra uno que es igual 193 00:08:47,480 --> 00:08:49,179 que este de aquí, hasta que lo encuentra 194 00:08:49,179 --> 00:08:51,379 cuando ha encontrado uno que es igual que este 195 00:08:51,379 --> 00:08:53,240 de aquí, coge ese y lo saca de la lista 196 00:08:53,240 --> 00:08:54,960 pero claro, el tema es 197 00:08:54,960 --> 00:08:57,419 para remove, ¿qué significa que 198 00:08:57,419 --> 00:08:59,440 un objeto alumno sea igual a otro 199 00:08:59,440 --> 00:09:01,620 objeto alumno? ¿qué criterio usa? 200 00:09:01,720 --> 00:09:03,399 pues llamar al equals, llamar al 201 00:09:03,399 --> 00:09:04,740 equals de este con este 202 00:09:04,740 --> 00:09:07,379 y si el equals da true, asume que 203 00:09:07,379 --> 00:09:09,379 son iguales y si da false, asume que no 204 00:09:09,379 --> 00:09:12,039 bueno, pues tiene que llamar al equals de alumno 205 00:09:12,039 --> 00:09:14,139 y el equals de alumno, ¿cuál es? 206 00:09:14,460 --> 00:09:15,460 como el alumno no está 207 00:09:15,460 --> 00:09:17,419 el equals de alumno es el de object 208 00:09:17,419 --> 00:09:20,000 y el equals de object 209 00:09:20,000 --> 00:09:21,440 ya sabemos, porque ya lo vimos 210 00:09:21,440 --> 00:09:24,759 que solo te dice que dos objetos son iguales 211 00:09:24,759 --> 00:09:26,220 si son directamente 212 00:09:26,220 --> 00:09:27,399 el mismo 213 00:09:27,399 --> 00:09:29,740 el mismo, directamente 214 00:09:29,740 --> 00:09:30,720 o sea, uno encima de otro 215 00:09:30,720 --> 00:09:32,759 la misma referencia de memoria 216 00:09:32,759 --> 00:09:34,820 no que los datos sean iguales 217 00:09:34,820 --> 00:09:37,960 sino que sean directamente el mismo 218 00:09:37,960 --> 00:09:40,320 entonces este y este 219 00:09:40,320 --> 00:09:42,419 no son el mismo, son dos objetos 220 00:09:42,419 --> 00:09:44,419 distintos teniendo los datos 221 00:09:44,419 --> 00:09:46,179 iguales, entonces remove 222 00:09:46,179 --> 00:09:48,500 jamás le va a salir un equals ni con este 223 00:09:48,500 --> 00:09:50,379 ni con este, ni con este, es imposible 224 00:09:50,379 --> 00:09:51,820 porque este es otro objeto 225 00:09:51,820 --> 00:09:54,440 entonces ¿para qué sirve este 226 00:09:54,440 --> 00:09:56,299 método? si yo le tengo que pasar un 227 00:09:56,299 --> 00:09:57,700 objeto que voy a crear 228 00:09:57,700 --> 00:10:00,299 y nunca va a ser igual a los demás 229 00:10:00,299 --> 00:10:02,240 ¿para qué sirve ese método? claro 230 00:10:02,240 --> 00:10:04,240 es que lo que hay que hacer es en la clase 231 00:10:04,240 --> 00:10:05,659 alumno cambiar el equals 232 00:10:05,659 --> 00:10:08,059 y poner el equals que nos interesa a nosotros. 233 00:10:08,240 --> 00:10:10,620 Y decir, a ver, para mí, ¿cuál es la característica 234 00:10:10,620 --> 00:10:12,500 que me caracteriza de forma única a un alumno? 235 00:10:13,080 --> 00:10:14,919 Cuando a mí me llega un alumno que me doy de baja, 236 00:10:15,679 --> 00:10:16,500 ¿qué dato le voy a pedir? 237 00:10:16,759 --> 00:10:17,759 El número de matrícula. 238 00:10:18,059 --> 00:10:18,919 Eso es lo que le voy a pedir. 239 00:10:19,740 --> 00:10:21,059 Bueno, pues entonces mi equals, 240 00:10:21,320 --> 00:10:23,340 lo que me marca la igualdad entre alumnos, 241 00:10:23,480 --> 00:10:24,860 es el número de matrícula. 242 00:10:25,759 --> 00:10:28,460 Pues entonces me hago un equals en alumno 243 00:10:28,460 --> 00:10:32,299 que si dos objetos tienen mismo número de matrícula, 244 00:10:32,759 --> 00:10:33,879 asume que son iguales. 245 00:10:35,200 --> 00:10:35,600 ¿Vale? 246 00:10:35,659 --> 00:10:41,519 Entonces, todo esto son decisiones que se tienen que decidir en función del uso que se le da a la aplicación. 247 00:10:42,519 --> 00:10:45,320 Entonces, tu aplicación es, hombre, tienes alumnos con número de matrícula. 248 00:10:45,399 --> 00:10:48,600 Cuando te llegue uno con un número de matrícula tal, pues le borras. 249 00:10:48,740 --> 00:10:51,700 Ah, vale, entonces el número de matrícula los identifica de forma única. 250 00:10:52,500 --> 00:10:55,100 A igualdad número de matrícula, igualdad de alumnos. 251 00:10:55,679 --> 00:10:58,059 A diferente número de matrícula, diferentes alumnos. 252 00:10:59,659 --> 00:11:03,580 Esto es una decisión que se toma estudiando la aplicación, claro, no es que sea así, así. 253 00:11:03,580 --> 00:11:06,340 bueno, pues cuando ya se ha visto que eso es así 254 00:11:06,340 --> 00:11:08,240 te vas a la clase alumno 255 00:11:08,240 --> 00:11:10,059 y haces el equals 256 00:11:10,059 --> 00:11:12,419 para que ya no use el de object 257 00:11:12,419 --> 00:11:14,340 y haces el equals 258 00:11:14,340 --> 00:11:16,460 nos vamos a la clase 259 00:11:16,460 --> 00:11:18,440 alumno y decimos, oye, vamos a hacer el método 260 00:11:18,440 --> 00:11:19,000 equals 261 00:11:19,000 --> 00:11:21,059 pues venga 262 00:11:21,059 --> 00:11:24,299 vamos a generar 263 00:11:24,299 --> 00:11:25,519 el equals 264 00:11:25,519 --> 00:11:29,629 que no estamos haciendo nada malo porque somos 265 00:11:29,629 --> 00:11:30,389 unos vagos 266 00:11:30,389 --> 00:11:32,909 y, ah, lo he 267 00:11:32,909 --> 00:11:34,990 espera, que lo he hecho 268 00:11:34,990 --> 00:11:36,570 con todos los 269 00:11:36,570 --> 00:11:38,809 los 270 00:11:38,809 --> 00:11:41,070 campos, solo quiero con el 271 00:11:41,070 --> 00:11:41,850 num matricula 272 00:11:41,850 --> 00:11:48,970 vale, queremos que tengan 273 00:11:48,970 --> 00:11:50,809 en cuenta solo el número de matricula 274 00:11:50,809 --> 00:11:52,509 ala 275 00:11:52,509 --> 00:11:54,690 y el hash este no lo quiero para nada 276 00:11:54,690 --> 00:11:55,889 no, este no era, este 277 00:11:55,889 --> 00:12:00,179 ya tengo un método equals que 278 00:12:00,179 --> 00:12:02,679 sobrescribe el de object, sobrescribe el de 279 00:12:02,679 --> 00:12:04,259 arriba, sobrescribe el de object 280 00:12:04,259 --> 00:12:06,000 ya lo tengo ahí 281 00:12:06,000 --> 00:12:08,419 y ahora este me va a devolver true 282 00:12:08,419 --> 00:12:10,980 si el número de matrícula 283 00:12:10,980 --> 00:12:13,220 del objeto que llama al método 284 00:12:13,220 --> 00:12:14,960 es igual que el otro, y si no, no 285 00:12:14,960 --> 00:12:17,080 luego ahora ya le he dado un criterio 286 00:12:17,080 --> 00:12:18,019 de igualdad a alumno 287 00:12:18,019 --> 00:12:20,720 luego ahora ya perfectamente 288 00:12:20,720 --> 00:12:23,379 cuando se lo pase al remove, el remove que hará 289 00:12:23,379 --> 00:12:25,700 ¿este es igual a este? 290 00:12:25,980 --> 00:12:27,320 no, porque los números de matrícula 291 00:12:27,320 --> 00:12:28,500 son distintos, vale 292 00:12:28,500 --> 00:12:30,179 ¿este es igual a este? 293 00:12:30,919 --> 00:12:33,159 sí, porque los números de matrícula 294 00:12:33,159 --> 00:12:34,919 son el mismo, luego este 295 00:12:34,919 --> 00:12:37,039 es igual a este, luego entonces ya 296 00:12:37,039 --> 00:12:39,500 eliminará este porque es igual 297 00:12:39,500 --> 00:12:40,340 que este que le he pasado 298 00:12:40,340 --> 00:12:42,279 y así se usa el remove 299 00:12:42,279 --> 00:12:45,259 el remove no tiene sentido si no hay un equals 300 00:12:45,259 --> 00:12:46,419 no tiene ningún sentido 301 00:12:46,419 --> 00:12:47,879 si no hay un equals 302 00:12:47,879 --> 00:12:50,440 el remove tiene que 303 00:12:50,440 --> 00:12:53,059 tener un equals en la clase 304 00:12:53,059 --> 00:12:54,980 para poder saber 305 00:12:54,980 --> 00:12:57,240 cuál tiene que borrar 306 00:12:57,240 --> 00:12:59,179 cuál tiene que borrar 307 00:12:59,179 --> 00:13:01,259 y es el que sea igual según ese criterio 308 00:13:01,259 --> 00:13:02,600 a ese que yo le estoy pasando 309 00:13:02,600 --> 00:13:06,860 entonces con el equals que hemos puesto ahora en alumno 310 00:13:06,860 --> 00:13:08,200 con el equals que hemos puesto 311 00:13:08,200 --> 00:13:10,039 ahora ya 312 00:13:10,039 --> 00:13:12,679 al de matrícula 3 313 00:13:12,679 --> 00:13:14,259 sí que nos lo va a eliminar 314 00:13:14,259 --> 00:13:15,279 al de matrícula 3 315 00:13:15,279 --> 00:13:18,620 entonces, si volvemos a ejecutar 316 00:13:18,620 --> 00:13:23,169 esto, pues efectivamente 317 00:13:23,169 --> 00:13:24,429 a este 318 00:13:24,429 --> 00:13:26,029 lo ha quitado 319 00:13:26,029 --> 00:13:27,929 ya no está 320 00:13:27,929 --> 00:13:30,269 al de matrícula 3 lo ha quitado 321 00:13:30,269 --> 00:13:31,250 uy 322 00:13:31,250 --> 00:13:39,539 bueno, en este caso 323 00:13:39,539 --> 00:13:40,659 sí lo habíamos ordenado 324 00:13:40,659 --> 00:13:42,639 después de, estaba aquí 325 00:13:42,639 --> 00:13:44,799 sí 326 00:13:44,799 --> 00:13:49,330 Sí, con lo cual los que están detrás 327 00:13:49,330 --> 00:13:50,769 Ganan una, suben para arriba 328 00:13:50,769 --> 00:13:52,830 Claro, claro, claro, sí, sí, sí 329 00:13:52,830 --> 00:13:55,509 Si tú eliminas uno, el que estaba en la 2 pasa a la 1 330 00:13:55,509 --> 00:13:56,649 El que estaba en la 3 pasa a la 2 331 00:13:56,649 --> 00:13:57,629 Todo eso es automático 332 00:13:57,629 --> 00:13:59,590 Vale 333 00:13:59,590 --> 00:14:03,049 Entonces, tanto es así en el remove 334 00:14:03,049 --> 00:14:04,669 Que es que 335 00:14:04,669 --> 00:14:06,289 A mí esto ya me da igual 336 00:14:06,289 --> 00:14:07,889 Ahí no tengo ni que pasarle nada 337 00:14:07,889 --> 00:14:10,429 Porque de hecho esto simula 338 00:14:10,429 --> 00:14:12,190 Yo le puedo pasar ahí null 339 00:14:12,190 --> 00:14:15,429 Y cualquier otra cosa 340 00:14:15,429 --> 00:14:16,490 Lo que a mí me dé la gana 341 00:14:16,490 --> 00:14:18,370 y va a funcionar igual 342 00:14:18,370 --> 00:14:19,830 porque de hecho 343 00:14:19,830 --> 00:14:21,549 la funcionalidad será así 344 00:14:21,549 --> 00:14:23,929 cuando tú eres el mostrador con la aplicación 345 00:14:23,929 --> 00:14:26,070 y te llega un tío para eliminar matrícula 346 00:14:26,070 --> 00:14:27,710 te va a decir su número de matrícula 347 00:14:27,710 --> 00:14:29,750 y solo con su número de matrícula 348 00:14:29,750 --> 00:14:31,029 tienes que ser capaz de borrarle 349 00:14:31,029 --> 00:14:32,929 solo con su número de matrícula 350 00:14:32,929 --> 00:14:35,789 claro, pues a remove le pasamos un alumno 351 00:14:35,789 --> 00:14:37,889 con ese número de matrícula, lo demás nos da igual 352 00:14:37,889 --> 00:14:40,389 porque como remove va a usar el equals 353 00:14:40,389 --> 00:14:42,330 y el equals solo mira esto 354 00:14:42,330 --> 00:14:43,889 me da igual lo que haya aquí 355 00:14:43,889 --> 00:14:45,909 me da igual, lo que importa es 356 00:14:45,909 --> 00:14:47,710 lo que yo pongo aquí, porque 357 00:14:47,710 --> 00:14:49,730 solo este campo 358 00:14:49,730 --> 00:14:51,309 es tenido en cuenta para Liquas 359 00:14:51,309 --> 00:14:53,549 que hace remove para ver si no es igual a otro 360 00:14:53,549 --> 00:14:55,509 luego si yo esto lo dejo así 361 00:14:55,509 --> 00:14:57,330 me va a funcionar exactamente igual 362 00:14:57,330 --> 00:14:58,750 me va a borrar el de 3 363 00:14:58,750 --> 00:15:08,590 me lo ha borrado igualmente 364 00:15:08,590 --> 00:15:10,509 me ha borrado el de matrícula 3 365 00:15:10,509 --> 00:15:14,289 aunque yo le pase ahí cualquier otra cosa 366 00:15:14,289 --> 00:15:16,049 cualquier dato, como si le paso ahí 367 00:15:16,049 --> 00:15:17,929 Anita, Pepito, me da igual 368 00:15:17,929 --> 00:15:19,309 él solamente mira esto 369 00:15:19,309 --> 00:15:22,129 solamente mira eso 370 00:15:22,129 --> 00:15:24,470 me lo ha borrado igualmente 371 00:15:24,470 --> 00:15:25,370 el de matrícula 3 372 00:15:25,370 --> 00:15:28,309 que mi criterio 373 00:15:28,309 --> 00:15:30,929 de distinción de alumnos es el nombre 374 00:15:30,929 --> 00:15:32,830 bueno, pues entonces te voy a cambiar 375 00:15:32,830 --> 00:15:35,070 el equals, claro, te voy a cambiar el equals 376 00:15:35,070 --> 00:15:36,750 para que 377 00:15:36,750 --> 00:15:38,490 se adapte 378 00:15:38,490 --> 00:15:43,830 vale, bueno, pues a ver 379 00:15:43,830 --> 00:15:44,590 entonces 380 00:15:44,590 --> 00:15:44,929 eh 381 00:15:44,929 --> 00:15:48,809 haced unas funcionalidades aquí en el main este 382 00:15:48,809 --> 00:15:50,029 para que 383 00:15:50,029 --> 00:15:54,669 todo esto quede claro 384 00:15:54,669 --> 00:15:55,490 entonces 385 00:15:55,490 --> 00:15:59,370 Ahora ya sí que hacer 386 00:15:59,370 --> 00:16:01,649 La aplicación de gestión de estos alumnos 387 00:16:01,649 --> 00:16:02,610 Con esto, que sería 388 00:16:02,610 --> 00:16:04,529 ¿Qué se puede hacer con alumnos? 389 00:16:05,169 --> 00:16:06,769 Pues esta es la aplicación de secretaría 390 00:16:06,769 --> 00:16:09,450 La aplicación de secretaría, pues ¿qué tiene que hacer? 391 00:16:09,929 --> 00:16:11,470 Pues nada, insertar 392 00:16:11,470 --> 00:16:13,029 Un alumno 393 00:16:13,029 --> 00:16:15,889 Tendrá que pedir los datos e insertar el alumno 394 00:16:15,889 --> 00:16:16,490 Vale 395 00:16:16,490 --> 00:16:24,019 Mostrar datos de alumno 396 00:16:24,019 --> 00:16:25,919 Dado su número de matrícula 397 00:16:36,980 --> 00:16:37,460 ¿Vale? 398 00:16:37,460 --> 00:16:42,120 y vamos a 399 00:16:42,120 --> 00:16:45,539 incorporarle aquí, ahora que ya hacemos el ArrayList 400 00:16:45,539 --> 00:16:47,500 para poder hacer esta aplicación 401 00:16:47,500 --> 00:16:49,259 con más cosas, a partir de nombre y edad 402 00:16:49,259 --> 00:16:51,720 vamos a incorporarle las asignaturas 403 00:16:51,720 --> 00:16:52,679 de las que se matricula 404 00:16:52,679 --> 00:16:55,379 ahora nuestro alumno se va a caracterizar por su 405 00:16:55,379 --> 00:16:57,120 número de matrícula, su nombre 406 00:16:57,120 --> 00:16:59,580 y asignaturas de las que se matricula 407 00:16:59,580 --> 00:17:01,120 vale, pues ahora ya 408 00:17:01,120 --> 00:17:02,899 asignaturas de las que se matricula 409 00:17:02,899 --> 00:17:05,259 lo tenemos mucho más fácil que antes 410 00:17:05,259 --> 00:17:07,380 porque antes teníamos que poner ahí un Array de asignaturas 411 00:17:07,380 --> 00:17:09,460 que da un rollo, pues ahora no tenemos 412 00:17:09,460 --> 00:17:10,759 por qué poner ahí un array de asignatura 413 00:17:10,759 --> 00:17:13,400 vamos a hacer 414 00:17:13,400 --> 00:17:15,279 que las asignaturas 415 00:17:15,279 --> 00:17:16,380 de las que se matricule 416 00:17:16,380 --> 00:17:18,740 mates, lengua, lo que sea 417 00:17:18,740 --> 00:17:21,500 sea una lista 418 00:17:21,500 --> 00:17:23,539 de asignaturas y ya está 419 00:17:23,539 --> 00:17:26,250 ¡hala! 420 00:17:30,140 --> 00:17:31,380 mucho más fácil que un array 421 00:17:31,380 --> 00:17:33,960 y cuando queramos meter una asignatura nueva al alumno 422 00:17:33,960 --> 00:17:36,220 habrá que hacerle add a esta lista 423 00:17:36,220 --> 00:17:38,380 entonces 424 00:17:38,380 --> 00:17:39,079 primero 425 00:17:39,079 --> 00:17:42,119 modificamos alumno para que se caracterice 426 00:17:42,119 --> 00:17:44,980 además por la lista de asignaturas 427 00:17:44,980 --> 00:17:46,000 de las que se matricula 428 00:17:46,000 --> 00:17:48,539 el constructor de alumno lo dejamos igual 429 00:17:48,539 --> 00:17:50,140 porque cuando construimos un alumno 430 00:17:50,140 --> 00:17:52,220 vamos a construirlo por ahora 431 00:17:52,220 --> 00:17:53,799 con número de matrícula, nombre y edad 432 00:17:53,799 --> 00:17:55,140 y sin asignaturas 433 00:17:55,140 --> 00:17:56,779 pero el get y el set 434 00:17:56,779 --> 00:17:58,740 sí que vamos a ponerlo 435 00:17:58,740 --> 00:17:59,740 el get y el set sí 436 00:17:59,740 --> 00:18:03,660 el get y el set sí que vamos a ponerlo 437 00:18:03,660 --> 00:18:05,500 porque si no, no podemos acceder a esa lista 438 00:18:05,500 --> 00:18:07,819 get y set de asignaturas 439 00:18:07,819 --> 00:18:09,119 vale, pues entonces 440 00:18:09,119 --> 00:18:11,579 hemos ampliado nuestro objeto alumno 441 00:18:11,579 --> 00:18:12,319 Lo hemos ampliado. 442 00:18:12,960 --> 00:18:15,160 Y ahora ya ampliado nuestro objeto alumno, 443 00:18:15,259 --> 00:18:19,519 podemos hacer un primer main, un primer menú que haga más cosas. 444 00:18:19,819 --> 00:18:20,839 Insertar un alumno. 445 00:18:21,299 --> 00:18:24,180 Por ahora sin asignaturas, porque habrá otra opción para 446 00:18:24,180 --> 00:18:25,500 matricularle de una asignatura. 447 00:18:28,039 --> 00:18:29,859 Habrá que solicitar los datos y todo eso, 448 00:18:29,960 --> 00:18:31,039 pero serán solo tres datos. 449 00:18:32,039 --> 00:18:35,099 Vale, mostrar datos de alumno dado su número de matrícula. 450 00:18:35,680 --> 00:18:37,779 Vale, ¿qué más cosas podemos querer hacer con un alumno? 451 00:18:38,960 --> 00:18:41,079 Matricular a un alumno de una asignatura, 452 00:18:41,079 --> 00:18:45,099 dado que 453 00:18:45,099 --> 00:18:47,920 dado el número de matrícula 454 00:18:47,920 --> 00:18:50,000 del alumno y el nombre de la asignatura 455 00:18:50,000 --> 00:18:50,980 de la que se quiere matricular 456 00:18:50,980 --> 00:19:09,920 y el nombre, las asignaturas las hemos hecho como 457 00:19:09,920 --> 00:19:12,240 string, para no liarlo, el nombre de la asignatura 458 00:19:12,240 --> 00:19:12,700 ya está 459 00:19:12,700 --> 00:19:16,319 y el nombre de asignatura 460 00:19:16,319 --> 00:19:19,920 a la que más cosas le puede interesar hacer 461 00:19:19,920 --> 00:19:21,980 a la aplicación de secretaría 462 00:19:21,980 --> 00:19:23,279 meter un alumno 463 00:19:23,279 --> 00:19:25,400 los datos del alumno 464 00:19:25,400 --> 00:19:27,819 al que tú le metes un número de matrícula 465 00:19:27,819 --> 00:19:28,940 te da los datos que tiene 466 00:19:28,940 --> 00:19:31,039 matricularle de una asignatura 467 00:19:31,039 --> 00:19:33,039 y vamos a ponerle alguna otra 468 00:19:33,039 --> 00:19:35,180 cosilla que implique 469 00:19:35,180 --> 00:19:39,259 desmatricularle 470 00:19:39,259 --> 00:19:40,259 de una asignatura 471 00:19:40,259 --> 00:19:49,440 dado el número de matrícula también 472 00:19:49,440 --> 00:19:50,559 y el nombre de la asignatura 473 00:19:50,559 --> 00:20:05,329 y ahora vamos a poner alguna funcionalidad 474 00:20:05,329 --> 00:20:06,789 que 475 00:20:06,789 --> 00:20:09,650 para operar un poco, para no olvidarnos 476 00:20:09,650 --> 00:20:11,809 de programar, hay algo que hay que programar 477 00:20:11,809 --> 00:20:12,529 luego hay que operar 478 00:20:12,529 --> 00:20:15,369 pues vamos a mostrar 479 00:20:15,369 --> 00:20:16,170 el alumno 480 00:20:16,170 --> 00:20:19,250 que está matriculado en más asignaturas 481 00:20:19,250 --> 00:20:22,990 mostrar el nombre de alumno 482 00:20:22,990 --> 00:20:29,210 que está 483 00:20:29,210 --> 00:20:31,250 matriculado 484 00:20:31,250 --> 00:20:32,769 de más 485 00:20:32,769 --> 00:20:37,349 asignaturas. 486 00:20:38,750 --> 00:20:39,869 Venga, vamos a dejar por ahora 487 00:20:39,869 --> 00:20:41,250 estas cinco opciones. 488 00:20:42,410 --> 00:20:43,329 Vale, pues vuestra 489 00:20:43,329 --> 00:20:45,549 tarea es repasarlo todo, 490 00:20:45,650 --> 00:20:47,849 estudiarlo todo, mirarlo todo. 491 00:20:49,329 --> 00:20:50,210 Y ahora ya hacer 492 00:20:50,210 --> 00:20:51,650 con esta clase alumno 493 00:20:51,650 --> 00:20:53,769 que hemos puesto aquí, 494 00:20:53,970 --> 00:20:54,849 con esta clase alumno, 495 00:20:54,849 --> 00:20:58,509 un programa principal, un mail 496 00:20:58,509 --> 00:20:59,769 que haga esto 497 00:20:59,769 --> 00:21:03,819 si queréis hacer métodos auxiliares 498 00:21:03,819 --> 00:21:05,019 lo que sea, pues ya está 499 00:21:05,019 --> 00:21:08,950 ¿vale? 500 00:21:11,740 --> 00:21:13,319 pues podéis