1 00:00:00,500 --> 00:00:11,320 A ver, habéis arrancado esto, como de costumbre, leyéndolo todo entero, haciéndonos una visión global de para qué sirve esta aplicación. 2 00:00:11,580 --> 00:00:16,140 Si uno después de leer un enunciado, algo que le han planteado, no entiende qué utilidad tiene eso, 3 00:00:16,980 --> 00:00:23,120 entonces o el enunciado está mal explicado o uno tiene que volverse a leer, porque una aplicación tiene que ser útil, 4 00:00:23,120 --> 00:00:25,559 tiene que trabajar, tiene que servir para algo. 5 00:00:25,559 --> 00:00:28,359 Entonces, bueno 6 00:00:28,359 --> 00:00:30,899 Esto en particular 7 00:00:30,899 --> 00:00:35,780 Se supone que es una aplicación 8 00:00:35,780 --> 00:00:40,799 Para tener tú los datos de tus amigos guardaditos 9 00:00:40,799 --> 00:00:44,659 Entonces, cuando tú quieres información sobre algún colega 10 00:00:44,659 --> 00:00:46,000 Pues le das a un botoncito 11 00:00:46,000 --> 00:00:48,780 Y te da la información de ese colega 12 00:00:48,780 --> 00:00:51,359 Lo que sea que tenga 13 00:00:51,359 --> 00:00:54,240 Que en este caso es el nombre, la edad y la dirección 14 00:00:54,240 --> 00:01:17,400 Bueno, pues ya está. Esos tres datos son los que parece ser que te interesan, ¿vale? Entonces, para que esa aplicación sea útil, pues tú además tienes que poder incorporar amigos nuevos o eliminarlos cuando ya no son tus amiguitos, ¿vale? Pues ya está, simplemente para eso, para guardar información de personas, de amigos, de compañeros, de lo que sea, y tener ahí esa información guardada para cuando quieres visualizarla. 15 00:01:17,400 --> 00:01:19,719 Vale, pues entonces 16 00:01:19,719 --> 00:01:21,659 Para eso, esta aplicación 17 00:01:21,659 --> 00:01:23,540 Tiene dos entidades solo 18 00:01:23,540 --> 00:01:25,480 ¿Con qué trabaja? 19 00:01:25,540 --> 00:01:27,480 Con personas, pues ya está, una entidad 20 00:01:27,480 --> 00:01:29,239 Persona, y luego 21 00:01:29,239 --> 00:01:31,840 Lo que guarda 22 00:01:31,840 --> 00:01:33,599 La información es una libreta 23 00:01:33,599 --> 00:01:35,579 Una libreta que tiene un montón de personas 24 00:01:35,579 --> 00:01:37,579 Pues entonces hay otra entidad 25 00:01:37,579 --> 00:01:39,480 La libreta que tiene la información 26 00:01:39,480 --> 00:01:41,120 Y la persona 27 00:01:41,120 --> 00:01:43,180 Pues dos entidades, pues ya está 28 00:01:43,180 --> 00:01:45,420 Pues entonces empezamos con 29 00:01:45,420 --> 00:01:58,420 Persona, y ahora 30 00:01:58,420 --> 00:02:01,420 como fruto del análisis y del diseño 31 00:02:01,420 --> 00:02:02,680 nos tiene que haber quedado claro 32 00:02:02,680 --> 00:02:05,579 qué atributos nos interesan 33 00:02:05,579 --> 00:02:06,340 de la persona 34 00:02:06,340 --> 00:02:08,259 pues en este caso pone ahí 35 00:02:08,259 --> 00:02:10,719 nombre, edad y dirección, pues ya está 36 00:02:10,719 --> 00:02:13,740 pues entonces decidimos el tipo de datos 37 00:02:13,740 --> 00:02:15,800 y ya 38 00:02:15,800 --> 00:02:17,319 nos sale 39 00:02:17,319 --> 00:02:18,979 de corrido, porque es 40 00:02:18,979 --> 00:02:21,240 lo habitual, que las propiedades 41 00:02:21,240 --> 00:02:22,400 sean privadas 42 00:02:22,400 --> 00:02:25,360 ¿vale? y luego yo según el curso 43 00:02:25,360 --> 00:02:26,259 de la aplicación 44 00:02:26,259 --> 00:02:29,139 pues decido si los get y los set 45 00:02:29,139 --> 00:02:30,879 son necesarios los dos o solo uno 46 00:02:30,879 --> 00:02:32,620 porque solo son propiedades de lectura 47 00:02:32,620 --> 00:02:33,599 entonces quito el set 48 00:02:33,599 --> 00:02:35,379 entonces 49 00:02:35,379 --> 00:02:41,159 en nombre como dirección también es 50 00:02:41,159 --> 00:02:47,889 string y edad 51 00:02:47,889 --> 00:02:51,400 privadas 52 00:02:51,400 --> 00:02:53,500 entonces si son privadas 53 00:02:53,500 --> 00:02:55,080 para que otras clases 54 00:02:55,080 --> 00:02:57,500 puedan recuperar sus valores 55 00:02:57,500 --> 00:02:59,419 o puedan cambiar 56 00:02:59,419 --> 00:03:01,620 sus valores si es que yo quiero dar permiso 57 00:03:01,620 --> 00:03:03,719 vamos a necesitar los get y los set 58 00:03:03,719 --> 00:03:05,840 Porque con el modificador privado 59 00:03:05,840 --> 00:03:07,300 Nadie fuera de la clase 60 00:03:07,300 --> 00:03:09,500 Va a poder acceder al punto nombre 61 00:03:09,500 --> 00:03:10,800 Punto dirección, punto edad 62 00:03:10,800 --> 00:03:12,900 Entonces o los escribimos a mano 63 00:03:12,900 --> 00:03:14,740 Porque tecleamos muy rápido 64 00:03:14,740 --> 00:03:17,340 O hacemos generar getter and setters 65 00:03:17,340 --> 00:03:19,800 Seleccionamos todos 66 00:03:19,800 --> 00:03:24,360 Pues lo que hice el otro día 67 00:03:24,360 --> 00:03:26,400 ¿No lo habéis visto en la grabación 20 veces? 68 00:03:27,659 --> 00:03:28,300 Source 69 00:03:28,300 --> 00:03:36,879 O vosotros sois muy lentos 70 00:03:36,879 --> 00:03:38,159 Una de dos 71 00:03:38,159 --> 00:03:41,560 Source 72 00:03:41,560 --> 00:03:44,439 Generate Getter Sunsetters 73 00:03:44,439 --> 00:03:45,659 Con mi inglés 74 00:03:45,659 --> 00:03:48,099 A ver, yo hablo mejor inglés de lo que parece 75 00:03:48,099 --> 00:03:49,539 Pero aquí 76 00:03:49,539 --> 00:03:51,939 Lo leo así para que no quede duda 77 00:03:51,939 --> 00:03:52,939 De la opción que queremos 78 00:03:52,939 --> 00:03:57,000 ¿Ya está? 79 00:03:58,400 --> 00:03:59,259 Pues ya está 80 00:03:59,259 --> 00:04:18,720 Entonces, todos entendemos ya estos métodos, lo que son, para qué sirven, que tenemos que seguir un convenio de nombres para que se llamen de esta manera, GET, SET con la propiedad en mayúscula, con la inicial de la propiedad en mayúscula, que son métodos public porque se van a usar desde cualquier sitio para acceder a las propiedades, etc. 81 00:04:19,540 --> 00:04:24,139 Vale, ¿qué más hacemos siempre por sistema en una clase? 82 00:04:24,699 --> 00:04:25,620 Ahora crear los constructores. 83 00:04:25,639 --> 00:04:26,600 Los constructores. 84 00:04:27,220 --> 00:04:28,540 Uno vacío y otro... 85 00:04:28,540 --> 00:04:30,500 Claro, porque si no, tengo yo siempre 86 00:04:30,500 --> 00:04:32,680 que instanciar el objeto y luego con los set 87 00:04:32,680 --> 00:04:34,620 irle dando valores, que muchas 88 00:04:34,620 --> 00:04:36,579 veces lo hacemos así, creamos el objeto 89 00:04:36,579 --> 00:04:38,540 y luego con los set le damos valores, pero 90 00:04:38,540 --> 00:04:40,639 si hacemos un constructor con parámetros, 91 00:04:43,860 --> 00:04:44,459 pues puedo 92 00:04:44,459 --> 00:04:46,800 a la vez que instancio una persona 93 00:04:46,800 --> 00:04:48,660 en concreto, a la vez que la instancio, 94 00:04:49,439 --> 00:04:50,800 pues puedo ya darle unos valores 95 00:04:50,800 --> 00:04:52,899 iniciales. El super 96 00:04:52,899 --> 00:04:54,819 sí que lo quito, porque el super sí que seguimos 97 00:04:54,819 --> 00:04:56,420 sin tener ni idea de lo que significa. 98 00:04:57,660 --> 00:04:58,259 Vale, entonces, 99 00:04:58,259 --> 00:04:59,639 desde el momento en que 100 00:04:59,639 --> 00:05:02,360 he sobrescrito el constructor que está 101 00:05:02,360 --> 00:05:04,300 por defecto por debajo sin yo verlo 102 00:05:04,300 --> 00:05:05,220 que es el sin parámetros 103 00:05:05,220 --> 00:05:07,699 desde que lo he sobrescrito con esto 104 00:05:07,699 --> 00:05:09,660 ese sin parámetros me ha desaparecido 105 00:05:09,660 --> 00:05:12,180 pues una pena, porque seguramente 106 00:05:12,180 --> 00:05:13,980 hay gente que quiere crear personas 107 00:05:13,980 --> 00:05:15,579 sin darle valores todavía 108 00:05:15,579 --> 00:05:18,360 pues entonces vamos a ponerle también 109 00:05:18,360 --> 00:05:19,779 el constructor sin parámetros 110 00:05:19,779 --> 00:05:26,899 ay, que sueño 111 00:05:26,899 --> 00:05:32,680 vale 112 00:05:32,680 --> 00:05:37,629 y 113 00:05:37,629 --> 00:05:45,089 Perdón 114 00:05:45,089 --> 00:05:46,769 Que super 115 00:05:46,769 --> 00:05:48,990 Ah, sí, sí, sí 116 00:05:48,990 --> 00:05:50,470 Este es super 117 00:05:50,470 --> 00:05:53,829 Vale, voy a ir haciendo en paralelo 118 00:05:53,829 --> 00:05:55,629 Un main para ir viendo 119 00:05:55,629 --> 00:05:57,670 Ciertas cosas, ¿vale? Aunque no sea el main 120 00:05:57,670 --> 00:05:58,509 De mi aplicación 121 00:05:58,509 --> 00:06:00,629 El main de mi aplicación ya pues 122 00:06:00,629 --> 00:06:02,970 No sé si me dice aquí que haga un main con un menú 123 00:06:02,970 --> 00:06:04,110 O con tonterías 124 00:06:04,110 --> 00:06:07,750 No, bueno, pues podemos hacer un main 125 00:06:07,750 --> 00:06:09,430 Con un menú 126 00:06:09,430 --> 00:06:12,110 Para probar las funcionalidades 127 00:06:12,110 --> 00:06:12,569 De esto 128 00:06:12,569 --> 00:06:18,529 Y así lo vamos entendiendo mejor 129 00:06:18,529 --> 00:06:22,889 Vale 130 00:06:22,889 --> 00:06:26,009 Bueno, lo que pasa es que antes de 131 00:06:26,009 --> 00:06:28,310 Arrancar con el main, vamos a hacer la otra entidad 132 00:06:28,310 --> 00:06:30,509 La libreta de direcciones, porque el main tendrá que 133 00:06:30,509 --> 00:06:31,529 Crear una libreta 134 00:06:31,529 --> 00:06:34,209 ¿Vale? Y ya con esa libreta trabajar 135 00:06:34,209 --> 00:06:35,910 Metiendo personas o no 136 00:06:35,910 --> 00:06:38,370 Bueno, pues entonces 137 00:06:38,370 --> 00:06:40,829 La clase persona por ahora está, ya no necesita nada más 138 00:06:40,829 --> 00:06:44,269 Porque la clase persona 139 00:06:44,269 --> 00:06:46,790 No tiene métodos 140 00:06:46,790 --> 00:06:48,529 La libreta es la que va a tener 141 00:06:48,529 --> 00:06:50,170 Los métodos para hacer las cosas 142 00:06:50,170 --> 00:06:52,610 Para meter una persona nueva, para quitarla 143 00:06:52,610 --> 00:06:54,850 En la libreta es donde están las personas dentro 144 00:06:54,850 --> 00:06:56,649 Y la libreta 145 00:06:56,649 --> 00:06:58,329 Es la que va a tener las funcionalidades 146 00:06:58,329 --> 00:07:00,790 De incorporar persona, quitarla 147 00:07:00,790 --> 00:07:02,850 Porque es la que tiene las personas dentro 148 00:07:02,850 --> 00:07:06,360 Esta no tiene funcionalidades 149 00:07:06,360 --> 00:07:07,759 Esta sirve solo para 150 00:07:07,759 --> 00:07:09,639 Guardar el objeto 151 00:07:09,639 --> 00:07:11,060 ¿Vale? 152 00:07:11,060 --> 00:07:12,980 Pues venga, hacemos la 153 00:07:12,980 --> 00:07:15,079 Otra entidad 154 00:07:15,079 --> 00:07:25,850 Vale, pues la libreta, ¿por qué se va a caracterizar? 155 00:07:26,589 --> 00:07:27,810 Única y exclusivamente 156 00:07:27,810 --> 00:07:29,370 Por los contactos que tiene dentro 157 00:07:29,370 --> 00:07:31,689 Ya está, se va a caracterizar por los contactos 158 00:07:31,689 --> 00:07:32,329 Que tiene dentro 159 00:07:32,329 --> 00:07:35,529 ¿Cuántos contactos va a tener? Muchos 160 00:07:35,529 --> 00:07:37,290 Entonces, si va a tener muchos 161 00:07:37,290 --> 00:07:39,930 La propiedad va a tener que ser 162 00:07:39,930 --> 00:07:41,589 Un array, ¿vale? 163 00:07:41,649 --> 00:07:43,350 Porque ese es el tipo de dato 164 00:07:43,350 --> 00:07:45,170 Para guardar muchos de algo 165 00:07:45,170 --> 00:07:47,050 Hasta ahora 166 00:07:47,050 --> 00:07:48,870 Que no hemos incorporado ningún otro 167 00:07:48,870 --> 00:07:50,889 Bueno, pues muchos de qué 168 00:07:50,889 --> 00:07:53,529 de 169 00:07:53,529 --> 00:07:55,370 persona 170 00:07:55,370 --> 00:07:59,060 lo voy a llamar contactos 171 00:07:59,060 --> 00:08:00,220 que queda más bonito que persona 172 00:08:00,220 --> 00:08:02,500 vale, pues esta es 173 00:08:02,500 --> 00:08:03,920 la propiedad 174 00:08:03,920 --> 00:08:06,699 persona, perdón 175 00:08:06,699 --> 00:08:08,819 la propiedad contactos, que caracteriza 176 00:08:08,819 --> 00:08:10,800 la libreta, que es toda su colección de 177 00:08:10,800 --> 00:08:12,779 contactos, y como son muchos 178 00:08:12,779 --> 00:08:14,699 pues tiene que ser array, porque son muchos 179 00:08:14,699 --> 00:08:17,079 ahora, si yo le doy el privado 180 00:08:17,079 --> 00:08:18,920 pues lo mismo, tengo que ofrecer 181 00:08:18,920 --> 00:08:19,980 un get y un set 182 00:08:19,980 --> 00:08:24,810 De esta única propiedad 183 00:08:24,810 --> 00:08:29,829 Y vamos a ponerle 184 00:08:29,829 --> 00:08:32,409 Constructor con y sin parámetros 185 00:08:32,409 --> 00:08:35,509 Ya casi como rutina 186 00:08:35,509 --> 00:08:51,519 No te confíes 187 00:08:51,519 --> 00:08:58,419 Vale 188 00:08:58,419 --> 00:09:00,860 Pues desde el momento en que ya hemos decidido 189 00:09:00,860 --> 00:09:02,659 Que la libreta 190 00:09:02,659 --> 00:09:04,840 Solo se caracteriza por eso 191 00:09:04,840 --> 00:09:05,500 Es lo único 192 00:09:05,500 --> 00:09:07,940 La libreta se caracteriza por los lazos que tiene dentro 193 00:09:07,940 --> 00:09:09,700 A la aplicación no le interesa 194 00:09:09,700 --> 00:09:11,240 Ni el color de la libreta 195 00:09:11,240 --> 00:09:14,080 ni en qué sitio está guardada 196 00:09:14,080 --> 00:09:15,399 no le interesa nada más, solo esto 197 00:09:15,399 --> 00:09:17,679 pues del momento en que me he llegado a esa conclusión 198 00:09:17,679 --> 00:09:19,659 esta parte de aquí ya 199 00:09:19,659 --> 00:09:21,980 prohibida, ahí ya no se 200 00:09:21,980 --> 00:09:23,519 escribe absolutamente nada más 201 00:09:23,519 --> 00:09:25,960 no se escribe nada más, porque cualquier 202 00:09:25,960 --> 00:09:27,159 cosa que se escribiera ahí 203 00:09:27,159 --> 00:09:30,240 sería algo que caracteriza la libreta 204 00:09:30,240 --> 00:09:32,139 y no necesitamos nada más 205 00:09:32,139 --> 00:09:33,980 para caracterizarla, solo los contactos 206 00:09:33,980 --> 00:09:36,019 que tiene dentro, luego esa zona ya está 207 00:09:36,019 --> 00:09:37,299 prohibida, ahí ya no se mete nada 208 00:09:37,299 --> 00:09:40,340 si yo necesito algo para operar con mis métodos 209 00:09:40,340 --> 00:09:42,120 Pues serán variables locales del método 210 00:09:42,120 --> 00:09:44,519 O parámetros que pasó desde fuera 211 00:09:44,519 --> 00:09:45,840 En la llamada, lo que sea 212 00:09:45,840 --> 00:09:47,879 Pero ahí ya nada, esa zona ya 213 00:09:47,879 --> 00:09:49,379 Está protegida 214 00:09:49,379 --> 00:09:53,759 Vale, pues entonces 215 00:09:53,759 --> 00:09:56,259 Ahora ya esta aplicación tiene funcionalidades 216 00:09:56,259 --> 00:09:57,879 Lógicamente, que son 217 00:09:57,879 --> 00:09:59,299 Meter una persona 218 00:09:59,299 --> 00:10:02,080 Aquí, en la libreta 219 00:10:02,080 --> 00:10:03,580 Sacar una persona de la libreta 220 00:10:03,580 --> 00:10:05,659 Verla, ver 221 00:10:05,659 --> 00:10:08,480 Las personas que hay 222 00:10:08,480 --> 00:10:10,000 Buscarla por nombre, etc 223 00:10:10,000 --> 00:10:30,179 Ya tiene funcionalidades. ¿Esas funcionalidades de qué son? De la libreta. Pues entonces tiene sentido que lo pongamos como métodos aquí, no aquí. Yo hacer un método con una, no, aquí. Bueno, pues ¿cuáles me han pedido? Pues vamos a meter una persona en la lista. Agregar persona, contacto, como lo queráis llamar. 224 00:10:30,179 --> 00:10:32,440 Vale, pues este método 225 00:10:32,440 --> 00:10:35,139 Voy a poner public 226 00:10:35,139 --> 00:10:36,039 Porque en principio 227 00:10:36,039 --> 00:10:38,139 Esto lo podría usar 228 00:10:38,139 --> 00:10:40,700 Desde cualquier otro paquete 229 00:10:40,700 --> 00:10:43,340 Una vez que yo tengo ya esta libreta hecha 230 00:10:43,340 --> 00:10:44,539 Pues la puedo distribuir 231 00:10:44,539 --> 00:10:46,559 Y cualquier otra aplicación puede usarla 232 00:10:46,559 --> 00:10:50,950 Bueno, pues entonces 233 00:10:50,950 --> 00:10:53,470 El método 234 00:10:53,470 --> 00:10:54,350 Que va a devolver 235 00:10:54,350 --> 00:10:55,909 El método este de 236 00:10:55,909 --> 00:11:03,000 Pero 237 00:11:03,000 --> 00:11:05,059 De verdad estáis diciendo todos un estriño 238 00:11:05,059 --> 00:11:06,220 Si estáis quedando tan anchos 239 00:11:06,220 --> 00:11:16,250 ¿de verdad estáis diciendo 240 00:11:16,250 --> 00:11:17,990 todo eso? a ver, esto no es tan trivial 241 00:11:17,990 --> 00:11:19,809 claro, esto os permito que lo digáis 242 00:11:19,809 --> 00:11:21,029 sin enfadarme 243 00:11:21,029 --> 00:11:23,230 a ver 244 00:11:23,230 --> 00:11:25,870 agregar persona, vale 245 00:11:25,870 --> 00:11:26,450 pregunta 246 00:11:26,450 --> 00:11:29,909 ¿me tiene que devolver algo este método? 247 00:11:31,750 --> 00:11:33,850 ah, vale, es que como he dicho me tiene que devolver un array 248 00:11:33,850 --> 00:11:35,129 ya me estabais asustando 249 00:11:35,129 --> 00:11:37,309 no, porque el efecto 250 00:11:37,309 --> 00:11:38,190 de este método 251 00:11:38,190 --> 00:11:40,250 se hace ya aquí 252 00:11:40,250 --> 00:11:41,850 en esta variable 253 00:11:41,850 --> 00:11:45,149 es decir, este método accede directamente 254 00:11:45,149 --> 00:11:46,750 a la variable esta, accede a esta variable 255 00:11:46,750 --> 00:11:48,669 entonces no hay que pasársela 256 00:11:48,669 --> 00:11:50,870 y el efecto del método 257 00:11:50,870 --> 00:11:53,029 el efecto va a ser modificar esta variable 258 00:11:53,029 --> 00:11:55,070 el efecto va a ser ese, hacer que sea 259 00:11:55,070 --> 00:11:56,950 raíz ya más grande, entonces el efecto 260 00:11:56,950 --> 00:11:58,850 de este método ya se registra 261 00:11:58,850 --> 00:11:59,750 aquí 262 00:11:59,750 --> 00:12:02,909 otra cosa es que a veces se hace 263 00:12:02,909 --> 00:12:04,590 que no lo vamos a incorporar, porque en este caso 264 00:12:04,590 --> 00:12:07,169 pues hacerle que devuelve un boolean 265 00:12:07,169 --> 00:12:09,549 y que el método devuelva true 266 00:12:09,549 --> 00:12:11,549 si ha funcionado correctamente y false si no 267 00:12:11,549 --> 00:12:13,450 y así es una manera de controlar desde fuera 268 00:12:13,450 --> 00:12:15,429 el que lo llame, pero eso es cuando ese 269 00:12:15,429 --> 00:12:17,370 método interacciona con bases de datos, con cosas 270 00:12:17,370 --> 00:12:18,990 que pueden fallar, pero aquí 271 00:12:18,990 --> 00:12:21,289 no estamos interaccionando con nadie, entonces que el método 272 00:12:21,289 --> 00:12:23,049 falle si lo probamos bien es imposible 273 00:12:23,049 --> 00:12:25,049 porque está todo en variables locales 274 00:12:25,049 --> 00:12:27,330 pues entonces un void, vale 275 00:12:27,330 --> 00:12:29,590 efectivamente 276 00:12:29,590 --> 00:12:31,490 ¿qué necesita este para 277 00:12:31,490 --> 00:12:32,009 trabajar? 278 00:12:32,009 --> 00:12:34,110 Que le pasemos la persona 279 00:12:34,110 --> 00:12:35,929 Si no, no la va a poder agregar nunca 280 00:12:35,929 --> 00:12:38,230 Vale, pues venga 281 00:12:38,230 --> 00:12:40,330 Y ahora ya está 282 00:12:40,330 --> 00:12:41,690 Ahora ya hacer este método 283 00:12:41,690 --> 00:12:43,710 Pues como es meter una nueva en el array 284 00:12:43,710 --> 00:12:46,070 Array auxiliar, patatín, patatán, etc 285 00:12:46,070 --> 00:12:47,490 Entonces 286 00:12:47,490 --> 00:12:50,690 Hacemos un array 287 00:12:50,690 --> 00:12:51,870 Auxiliar 288 00:12:51,870 --> 00:12:54,230 De personas 289 00:12:54,230 --> 00:13:00,559 Que tenga una posición 290 00:13:00,559 --> 00:13:01,240 Más 291 00:13:01,240 --> 00:13:04,519 Que el array que quiero modificar 292 00:13:04,519 --> 00:13:08,100 contactos 293 00:13:08,100 --> 00:13:14,360 vale 294 00:13:14,360 --> 00:13:16,759 pues hacemos una raya auxiliar con una 295 00:13:16,759 --> 00:13:17,879 posición más 296 00:13:17,879 --> 00:13:20,720 copiamos el 297 00:13:20,720 --> 00:13:22,620 antiguo en el nuevo 298 00:13:22,620 --> 00:13:41,659 aux de i 299 00:13:41,659 --> 00:13:43,460 igual a 300 00:13:43,460 --> 00:13:47,659 contactos 301 00:13:47,659 --> 00:13:48,320 de i 302 00:13:48,320 --> 00:13:51,039 cuando ya hemos copiado 303 00:13:51,039 --> 00:13:53,059 todos excepto la última 304 00:13:53,059 --> 00:13:55,000 posición extra que hemos hecho en aux 305 00:13:55,000 --> 00:13:56,700 pues esa última 306 00:13:56,700 --> 00:13:58,919 posición extra, que es esta 307 00:13:58,919 --> 00:14:00,779 que es 308 00:14:00,779 --> 00:14:03,019 aux.length 309 00:14:03,019 --> 00:14:04,980 menos uno, esta es la última 310 00:14:04,980 --> 00:14:06,600 posición de length, la última 311 00:14:06,600 --> 00:14:08,440 que se ha quedado por ahora vacía 312 00:14:08,440 --> 00:14:13,240 bueno, puede ser contactos.length 313 00:14:13,240 --> 00:14:14,879 pero así se ve claro 314 00:14:14,879 --> 00:14:17,080 que estás accediendo a la última 315 00:14:17,080 --> 00:14:18,019 posición de aux 316 00:14:18,019 --> 00:14:19,799 se ve más claro 317 00:14:19,799 --> 00:14:23,019 vale, esta va a ser la persona 318 00:14:23,019 --> 00:14:24,399 nueva que me han pasado 319 00:14:24,399 --> 00:14:27,100 Y ya este aux es el bueno 320 00:14:27,100 --> 00:14:28,720 El array bueno 321 00:14:28,720 --> 00:14:30,080 Pues entonces 322 00:14:30,080 --> 00:14:33,019 El array antiguo 323 00:14:33,019 --> 00:14:34,159 Este, al que tengo 324 00:14:34,159 --> 00:14:35,799 Jolín con personas 325 00:14:35,799 --> 00:14:38,419 Al que tengo acceso directo a este 326 00:14:38,419 --> 00:14:42,759 Ya le sustituyo por este otro 327 00:14:42,759 --> 00:14:45,639 Y agregar 328 00:14:45,639 --> 00:14:47,720 Joder, aux 329 00:14:47,720 --> 00:14:52,100 No, aquí viene dentro del bucle 330 00:14:52,100 --> 00:14:53,820 Ya 331 00:14:53,820 --> 00:14:55,220 ¿Hasta cuándo? 332 00:14:55,220 --> 00:14:56,759 ¿Hasta cuándo va a ser lo de la llave? 333 00:14:57,539 --> 00:15:07,169 Vale, pues ya está 334 00:15:07,169 --> 00:15:08,230 Agregar persona está 335 00:15:08,230 --> 00:15:10,450 ¿Verdad? 336 00:15:10,870 --> 00:15:12,309 Entonces, aquí por supuesto 337 00:15:12,309 --> 00:15:15,350 Me da igual poner el dis 338 00:15:15,350 --> 00:15:17,049 Que no ponerlo, porque me estoy 339 00:15:17,049 --> 00:15:18,129 Refiriendo a lo mismo 340 00:15:18,129 --> 00:15:20,909 Aquí yo podría arrastrar el dis todo el rato 341 00:15:20,909 --> 00:15:24,679 Si quisiera, pero 342 00:15:24,679 --> 00:15:26,440 No hace falta, ¿por qué? 343 00:15:26,600 --> 00:15:28,820 Porque no hay confusión, no hay ninguna 344 00:15:28,820 --> 00:15:31,059 Otra variable aquí dentro que se llame contactos 345 00:15:31,059 --> 00:15:32,620 No hay una variable local contactos 346 00:15:32,620 --> 00:15:34,399 Si yo a este auxiliar 347 00:15:34,399 --> 00:15:36,580 Le hubiera llamado contactos 348 00:15:36,580 --> 00:15:39,039 Entonces ya 349 00:15:39,039 --> 00:15:41,100 Distinguiría discontactos 350 00:15:41,100 --> 00:15:42,320 El viejo 351 00:15:42,320 --> 00:15:44,799 Y contactos sin más el nuevo 352 00:15:44,799 --> 00:15:45,940 ¿Vale? 353 00:15:46,419 --> 00:15:47,639 Pero como lo he llamado aux 354 00:15:47,639 --> 00:15:50,019 Pues no hay ninguna duda sobre quién es contactos 355 00:15:50,019 --> 00:15:50,840 Es el de arriba 356 00:15:50,840 --> 00:15:52,980 No hace falta que ponga el dis 357 00:15:52,980 --> 00:15:54,820 Si no quiero ponerlo 358 00:15:54,820 --> 00:15:56,820 ¿Vale? 359 00:15:57,019 --> 00:16:00,100 Si hubieran dos que se llamaran 360 00:16:00,100 --> 00:16:02,039 contactos, uno de ellos 361 00:16:02,039 --> 00:16:04,080 por ejemplo, este que me acabo de crear 362 00:16:04,080 --> 00:16:05,980 que lo hubiera llamado contactos en vez de 363 00:16:05,980 --> 00:16:07,720 aus, ahí ya hay ambigüedad 364 00:16:07,720 --> 00:16:10,279 dis.contactos para referirse 365 00:16:10,279 --> 00:16:12,100 al de arriba y contactos a palo 366 00:16:12,100 --> 00:16:13,440 seco para referirse a este 367 00:16:13,440 --> 00:16:15,120 vale 368 00:16:15,120 --> 00:16:16,840 bueno 369 00:16:16,840 --> 00:16:19,379 pues ya está este método 370 00:16:19,379 --> 00:16:24,059 vale, vamos a hacer una 371 00:16:24,059 --> 00:16:26,039 libreta de direcciones y agregarla a una primera 372 00:16:26,039 --> 00:16:28,179 persona, ahora este es mi main 373 00:16:28,179 --> 00:16:30,379 mi main trabaja con una libreta de direcciones 374 00:16:30,379 --> 00:16:32,139 para hacer cosas, pues tengo 375 00:16:32,139 --> 00:16:34,759 Que instanciarla, aquí ya es donde aparecen los objetos 376 00:16:34,759 --> 00:16:37,720 Mi libreta de direcciones 377 00:16:37,720 --> 00:16:48,789 Esta, vale 378 00:16:48,789 --> 00:16:50,389 Y ahora vamos a hacer rápidamente 379 00:16:50,389 --> 00:16:51,649 Un 380 00:16:51,649 --> 00:16:55,210 Menú, un coso 381 00:16:55,210 --> 00:16:57,470 Con las opciones 382 00:16:57,470 --> 00:16:58,389 Que vayamos poniendo 383 00:16:58,389 --> 00:17:13,279 Vamos a poner ya la de salir 384 00:17:13,279 --> 00:17:18,930 Y ahora leemos la opción 385 00:17:18,930 --> 00:17:25,119 Estoy ya deseando 386 00:17:25,119 --> 00:17:26,099 Que veamos lo del escáner 387 00:17:26,099 --> 00:17:27,700 Para olvidarnos 388 00:17:27,700 --> 00:17:28,940 Uy del escáner, del static 389 00:17:28,940 --> 00:17:31,839 Para hacernos nuestra propia librería 390 00:17:31,839 --> 00:17:32,680 De entrada y salida 391 00:17:32,680 --> 00:17:35,559 Y olvidarnos del scanner y del next line 392 00:17:35,559 --> 00:17:37,480 Y de las tontas esas 393 00:17:37,480 --> 00:17:39,480 Poco a poco no 394 00:17:39,480 --> 00:17:40,019 Ya mismo 395 00:17:40,019 --> 00:17:43,059 Vale, pues 396 00:17:43,059 --> 00:17:47,339 Voy hijo 397 00:17:47,339 --> 00:17:49,000 Por favor, estaba en ello 398 00:17:49,000 --> 00:17:51,559 Está fatal 399 00:17:51,559 --> 00:17:58,359 Pues mi criatura 400 00:17:58,359 --> 00:18:00,160 me ha salido fatal, voy a tener que eliminarla 401 00:18:00,160 --> 00:18:01,680 a ver 402 00:18:01,680 --> 00:18:05,420 ¿hasta qué edad es legal abortarles? 403 00:18:06,420 --> 00:18:08,200 hasta los 57 años 404 00:18:08,200 --> 00:18:08,700 yo creo 405 00:18:08,700 --> 00:18:11,660 a ver 406 00:18:11,660 --> 00:18:20,920 scan.nextline.charat 407 00:18:20,920 --> 00:18:21,980 no pongo 408 00:18:21,980 --> 00:18:24,279 el next in a propósito 409 00:18:24,279 --> 00:18:26,059 para no andar arrastrando el problema 410 00:18:26,059 --> 00:18:30,779 de la esa 411 00:18:30,779 --> 00:18:37,660 Vale, y ahora ya sí que viene el switch up. 412 00:18:38,279 --> 00:18:44,359 Y ahora, en el caso de que me hayan dado el char cero. 413 00:18:45,019 --> 00:18:47,660 Char, lo estoy leyendo como... 414 00:18:47,660 --> 00:18:50,240 A ver, espera, voy a cambiarlo así para que no haya... 415 00:18:50,240 --> 00:18:51,119 Pero bueno, vale. 416 00:18:51,759 --> 00:18:56,019 En caso de que el char este que me han dado sea el cero. 417 00:18:56,380 --> 00:18:59,839 Vale, pues entonces pedimos los tres datos y se acabó. 418 00:18:59,839 --> 00:19:01,319 Vamos a poner un solo mensaje 419 00:19:01,319 --> 00:19:03,480 Para que introduzca en el mismo orden 420 00:19:03,480 --> 00:19:09,700 Introduzca nombre 421 00:19:09,700 --> 00:19:11,359 Dirección 422 00:19:11,359 --> 00:19:12,200 Y edad 423 00:19:12,200 --> 00:19:17,759 Vale, pues uno 424 00:19:17,759 --> 00:19:18,759 Ya está 425 00:19:18,759 --> 00:19:25,000 Mira, ya está, que difícil 426 00:19:25,000 --> 00:19:28,759 Vale 427 00:19:28,759 --> 00:19:31,000 String nombre 428 00:19:31,000 --> 00:19:38,900 Igual a scan.nextline 429 00:19:38,900 --> 00:19:42,980 Y lo mismo 430 00:19:42,980 --> 00:19:50,039 Nombre, dirección 431 00:19:50,039 --> 00:19:55,599 Y la verdad es que lo podríamos haber metido en el constructor directamente 432 00:19:55,599 --> 00:19:58,119 ¿Vale? 433 00:19:58,339 --> 00:19:59,960 Pero bueno, por si 434 00:19:59,960 --> 00:20:02,559 Así vamos a usar las variables 435 00:20:02,559 --> 00:20:06,440 Y edad, scan.nextint 436 00:20:06,440 --> 00:20:08,000 Si metes en el constructor no te paras por comas 437 00:20:08,000 --> 00:20:09,819 Claro, claro 438 00:20:09,819 --> 00:20:11,319 Y así nos ahorramos líneas de código 439 00:20:11,319 --> 00:20:13,940 Pero bueno, como queda así muy larga y no se ve en la pizarra 440 00:20:13,940 --> 00:20:15,460 Vale, pues ya está 441 00:20:15,460 --> 00:20:17,160 Hacemos la persona 442 00:20:17,160 --> 00:20:20,619 Y gracias a que tenemos el constructor 443 00:20:20,619 --> 00:20:22,740 Cuidado en el mismo orden 444 00:20:22,740 --> 00:20:24,519 Que en el 445 00:20:24,519 --> 00:20:26,640 Constructor nuestro 446 00:20:26,640 --> 00:20:31,259 Persona 447 00:20:31,259 --> 00:20:32,680 Si yo le pongo ahí 448 00:20:32,680 --> 00:20:36,599 Nombre, dirección y edad 449 00:20:36,599 --> 00:20:37,960 Es el nombre en el que lo he puesto 450 00:20:37,960 --> 00:20:40,140 Si apoyáis el cursor sobre el S 451 00:20:40,140 --> 00:20:41,539 Igual ya os habéis dado cuenta 452 00:20:41,539 --> 00:20:43,180 Os dice el eclipse 453 00:20:43,180 --> 00:20:45,880 La declaración, vale, pues entonces 454 00:20:45,880 --> 00:20:48,240 En nombre, dirección y edad es el orden en el que 455 00:20:48,240 --> 00:20:49,380 Lo tenemos que meter 456 00:20:49,380 --> 00:20:58,700 Y ahora ya que tenemos la persona 457 00:20:58,700 --> 00:21:00,700 Pues vamos a usar 458 00:21:00,700 --> 00:21:02,220 El método de la libreta 459 00:21:02,220 --> 00:21:06,410 Agregar persona 460 00:21:06,410 --> 00:21:08,609 Que coge ese objeto persona 461 00:21:08,609 --> 00:21:10,089 Y lo mete en el array 462 00:21:10,089 --> 00:21:12,029 Y ahora hacemos aquí un break 463 00:21:12,029 --> 00:21:16,720 Vale, entonces esto ha acabado 464 00:21:16,720 --> 00:21:19,079 El switch, esto acaba el while 465 00:21:19,079 --> 00:21:20,859 mientras la opción 466 00:21:20,859 --> 00:21:22,339 sea distinta 467 00:21:22,339 --> 00:21:25,140 y ahora, antes de ejecutarla 468 00:21:25,140 --> 00:21:26,740 que nadie la ejecute 469 00:21:26,740 --> 00:21:28,920 decidme, ¿qué va a salir? 470 00:21:31,500 --> 00:21:31,900 un error 471 00:21:31,900 --> 00:21:33,740 yo creo que va a salir un error 472 00:21:33,740 --> 00:21:36,519 ¿por qué lo has ejecutado? 473 00:21:36,740 --> 00:21:38,500 no, ni lo he ejecutado 474 00:21:38,500 --> 00:21:39,119 ya sé lo que sale 475 00:21:39,119 --> 00:21:40,420 ¿qué tipo de error? 476 00:21:42,259 --> 00:21:43,720 el error en la línea 27 477 00:21:43,720 --> 00:21:46,359 no, si va a salir un error 478 00:21:46,359 --> 00:21:49,279 no, pero no sé 479 00:21:49,279 --> 00:21:50,140 pero va a salir un error 480 00:21:50,140 --> 00:21:52,220 no sabéis que 481 00:21:52,220 --> 00:21:54,299 una excepción, empecemos a hablar 482 00:21:54,299 --> 00:21:56,200 con propiedad, no sabéis 483 00:21:56,200 --> 00:21:58,380 que excepción va a salir, no lo intuís 484 00:21:58,380 --> 00:21:59,460 así lejanamente 485 00:21:59,460 --> 00:22:01,240 la excepción 486 00:22:01,240 --> 00:22:04,299 ¿eh? 487 00:22:05,599 --> 00:22:06,220 pero esa 488 00:22:06,220 --> 00:22:08,200 ¿cómo se llama? 489 00:22:10,960 --> 00:22:12,460 no va a salir esa 490 00:22:12,460 --> 00:22:16,099 esa sale cuando accedes 491 00:22:16,099 --> 00:22:16,799 a una posición 492 00:22:16,799 --> 00:22:18,859 que no 493 00:22:18,859 --> 00:22:22,160 Que no está dentro del rango 494 00:22:22,160 --> 00:22:24,039 De posiciones habilitadas para la RAI 495 00:22:24,039 --> 00:22:26,200 A ver 496 00:22:26,200 --> 00:22:27,380 Vamos a ver 497 00:22:27,380 --> 00:22:28,460 Bueno, input mismatch 498 00:22:28,460 --> 00:22:29,140 Si hay algo que 499 00:22:29,140 --> 00:22:29,960 Pero yo creo que ahora mismo 500 00:22:29,960 --> 00:22:30,740 Con lo que tenemos 501 00:22:30,740 --> 00:22:34,380 Vale, a ver 502 00:22:34,380 --> 00:22:35,720 Bueno, vamos a ejecutarlo 503 00:22:35,720 --> 00:22:39,259 Vamos a ejecutarlo 504 00:22:39,259 --> 00:22:41,160 Vamos a agregar una persona 505 00:22:41,160 --> 00:22:43,539 Introduzca nombre 506 00:22:43,539 --> 00:22:45,920 Dirección 507 00:22:45,920 --> 00:22:47,279 Y edad 508 00:22:47,279 --> 00:22:48,180 Vale 509 00:22:48,180 --> 00:22:51,880 esta es la que yo 510 00:22:51,880 --> 00:22:53,299 esperaba que me dijerais 511 00:22:53,299 --> 00:22:54,779 null pointer exception 512 00:22:54,779 --> 00:22:57,720 esta es la eterna excepción 513 00:22:57,720 --> 00:22:58,940 del mundo mundial de Java 514 00:22:58,940 --> 00:23:00,380 de hecho hay una clase 515 00:23:00,380 --> 00:23:02,319 que ya os contaré en el futuro 516 00:23:02,319 --> 00:23:05,359 que es la clase optional 517 00:23:05,359 --> 00:23:07,420 que se ha hecho solo para evitar 518 00:23:07,420 --> 00:23:08,480 los null pointer exception 519 00:23:08,480 --> 00:23:10,400 la clase optional se ha hecho para 520 00:23:10,400 --> 00:23:12,200 envolver a un objeto 521 00:23:12,200 --> 00:23:14,880 e incorporar la opción de que el objeto 522 00:23:14,880 --> 00:23:17,619 esté ausente o esté presente 523 00:23:17,619 --> 00:23:21,039 Entonces, si el objeto está ausente 524 00:23:21,039 --> 00:23:22,019 No te da un 525 00:23:22,019 --> 00:23:24,220 Es null, no te da un null pointer exception 526 00:23:24,220 --> 00:23:26,900 Lo que te dice es un opcional vacío 527 00:23:26,900 --> 00:23:28,480 Pero bueno, esto es otro rollo 528 00:23:28,480 --> 00:23:30,000 Y es muy útil lo del opcional 529 00:23:30,000 --> 00:23:31,039 Pero bueno, para 530 00:23:31,039 --> 00:23:33,640 Ha salido un null pointer exception 531 00:23:33,640 --> 00:23:35,660 ¿Y por qué? 532 00:23:36,480 --> 00:23:36,779 Era 533 00:23:36,779 --> 00:23:39,220 Podíamos preverlo 534 00:23:39,220 --> 00:23:42,599 Vamos a mirar a 535 00:23:42,599 --> 00:23:43,980 Agregar persona 536 00:23:43,980 --> 00:23:45,380 ¿Qué ha hecho agregar persona? 537 00:23:45,380 --> 00:23:47,779 pues se ha hecho ahí un 538 00:23:47,779 --> 00:23:49,559 contactos.length 539 00:23:49,559 --> 00:23:52,259 y contactos 540 00:23:52,259 --> 00:23:54,200 que es, la primera vez 541 00:23:54,200 --> 00:23:56,079 que arranca, cuando instanciamos 542 00:23:56,079 --> 00:23:57,500 el objeto libreta direcciones 543 00:23:57,500 --> 00:23:59,940 aquí hay un pedazo de 544 00:23:59,940 --> 00:24:00,539 array null 545 00:24:00,539 --> 00:24:04,140 claro, entonces cuando creamos 546 00:24:04,140 --> 00:24:06,240 la libreta, creemos ya 547 00:24:06,240 --> 00:24:07,960 directamente una libreta con 548 00:24:07,960 --> 00:24:10,299 cero posiciones, que eso no es 549 00:24:10,299 --> 00:24:12,099 null, no es lo mismo una libreta 550 00:24:12,099 --> 00:24:14,220 un array con cero posiciones que un array null 551 00:24:14,220 --> 00:24:17,180 entonces, o bien lo hacemos 552 00:24:17,180 --> 00:24:19,180 aquí en el constructor, o ya como 553 00:24:19,180 --> 00:24:20,759 cuando declaramos una propiedad 554 00:24:20,759 --> 00:24:23,579 podemos ya, en el momento de declarar las propiedades 555 00:24:23,579 --> 00:24:25,380 de un objeto, darle un valor 556 00:24:25,380 --> 00:24:27,099 y eso significa, cuando 557 00:24:27,099 --> 00:24:28,279 instancia es un objeto 558 00:24:28,279 --> 00:24:31,319 va a recibir este primer valor 559 00:24:31,319 --> 00:24:35,220 luego ya se llama el constructor, si el constructor 560 00:24:35,220 --> 00:24:36,960 lo modificara, se quedaría modificado 561 00:24:36,960 --> 00:24:39,480 pero si aquí añadimos un valor en cualquier propiedad 562 00:24:39,480 --> 00:24:40,539 aquí también, en estas 563 00:24:40,539 --> 00:24:42,680 si aquí pusiéramos unos valores 564 00:24:42,680 --> 00:24:44,559 cuando el objeto se instancia 565 00:24:44,559 --> 00:24:46,460 esas propiedades reciben ese 566 00:24:46,460 --> 00:24:48,920 valor por defecto al principio 567 00:24:48,920 --> 00:24:50,900 ese valor por defecto 568 00:24:50,900 --> 00:24:52,099 vale, pues nosotros 569 00:24:52,099 --> 00:24:54,400 todas las libretas de direcciones que se instancien 570 00:24:54,400 --> 00:24:56,660 todas, queremos que se instancien 571 00:24:56,660 --> 00:24:58,319 ya con un array 572 00:24:58,319 --> 00:25:00,619 a cero 573 00:25:00,619 --> 00:25:02,319 posiciones, todas 574 00:25:02,319 --> 00:25:04,420 aquí no tiene sentido 575 00:25:04,420 --> 00:25:06,440 porque yo cuando creo una persona 576 00:25:06,440 --> 00:25:08,240 cada persona tendrá un nombre, una dirección 577 00:25:08,240 --> 00:25:10,299 pues pasaselo por aquí y ya está 578 00:25:10,299 --> 00:25:11,759 pero aquí 579 00:25:11,759 --> 00:25:14,279 Sea cual sea la libreta que tú crees 580 00:25:14,279 --> 00:25:16,319 Sea cual sea, vas a querer que se cree 581 00:25:16,319 --> 00:25:17,440 Con un array vacío ahí 582 00:25:17,440 --> 00:25:18,279 ¿Vale? 583 00:25:20,200 --> 00:25:22,019 Entonces ahora si hacemos esto 584 00:25:22,019 --> 00:25:24,180 Bueno, ahora vamos a ver 585 00:25:24,180 --> 00:25:24,799 ¿Qué error sale? 586 00:25:29,319 --> 00:25:30,480 Introduzca nombre 587 00:25:30,480 --> 00:25:33,539 Dos años 588 00:25:33,539 --> 00:25:35,039 Vale, pero esto es otro error 589 00:25:35,039 --> 00:25:37,720 ¿Vale? Este ya es otra cosa 590 00:25:37,720 --> 00:25:39,880 El index 0 de 591 00:25:39,880 --> 00:25:42,740 sí, pero esto es por el 592 00:25:42,740 --> 00:25:44,799 escáner que cuando leo las opciones 593 00:25:44,799 --> 00:25:46,440 me ha cogido, pero que vamos a revisar esos 594 00:25:46,440 --> 00:25:47,880 vamos a revisar esa 595 00:25:47,880 --> 00:25:50,940 es que a ver si llevamos el static de una vez y cambiamos 596 00:25:50,940 --> 00:25:51,660 esto 597 00:25:51,660 --> 00:25:54,920 eh? 598 00:25:55,480 --> 00:25:56,660 sí, o sea, es que yo no lo he 599 00:25:56,660 --> 00:25:58,559 revisado, lo he dicho, bueno, aquí habrá que 600 00:25:58,559 --> 00:25:59,920 poner el next line donde toque 601 00:25:59,920 --> 00:26:02,720 y vale, entonces aquí 602 00:26:02,720 --> 00:26:03,420 eh 603 00:26:03,420 --> 00:26:06,599 el problema ha sido, obviamente, que después del 604 00:26:06,599 --> 00:26:08,519 next line se queda el salto de línea, este 605 00:26:08,519 --> 00:26:10,640 Next line, coge el salto de línea, char a cero 606 00:26:10,640 --> 00:26:12,279 El salto de línea, strain in, desbound 607 00:26:12,279 --> 00:26:14,200 ¿Vale? Entonces, aquí 608 00:26:14,200 --> 00:26:16,579 Después de este next int, nos falta el 609 00:26:16,579 --> 00:26:18,759 Scan punto 610 00:26:18,759 --> 00:26:19,799 Next line 611 00:26:19,799 --> 00:26:21,039 ¿Vale? 612 00:26:24,460 --> 00:26:26,619 Sí, a ver, si yo hubiera leído esto 613 00:26:26,619 --> 00:26:27,500 Con next int 614 00:26:27,500 --> 00:26:30,259 Pues después de este next int 615 00:26:30,259 --> 00:26:31,640 No habría problema, porque, pero 616 00:26:31,640 --> 00:26:34,099 El problema es leer una cadena 617 00:26:34,099 --> 00:26:35,019 Después de un número 618 00:26:35,019 --> 00:26:38,420 Eso, cuando viene un line 619 00:26:38,420 --> 00:26:40,180 Después, porque si viene un next 620 00:26:40,180 --> 00:26:42,559 In o un next double, el salto de línea lo elimina 621 00:26:42,559 --> 00:26:44,200 Pero es el next line el que lo coge 622 00:26:44,200 --> 00:26:44,799 Como válido 623 00:26:44,799 --> 00:26:46,799 Entonces 624 00:26:46,799 --> 00:26:49,859 Ahora ya sí 625 00:26:49,859 --> 00:26:52,960 Vale 626 00:26:52,960 --> 00:26:54,259 A ver 627 00:26:54,259 --> 00:26:57,160 Confiamos en que lo ha agregado 628 00:26:57,160 --> 00:26:58,319 A lo mejor no lo ha agregado 629 00:26:58,319 --> 00:27:00,480 Vamos a hacer desde ya el método 630 00:27:00,480 --> 00:27:03,400 De mostrar la persona para ver si realmente 631 00:27:03,400 --> 00:27:04,279 La ha mostrado 632 00:27:04,279 --> 00:27:07,240 Venga, agregar persona 633 00:27:07,240 --> 00:27:09,160 Vamos a hacer el método, obtener información 634 00:27:09,160 --> 00:27:11,319 De todas las que hay 635 00:27:11,319 --> 00:27:13,099 Ya está 636 00:27:13,099 --> 00:27:14,819 Ni siquiera buscamos por nombre ni nada 637 00:27:14,819 --> 00:27:17,440 Tendría más sentido buscar la información por nombre 638 00:27:17,440 --> 00:27:17,960 Pero bueno 639 00:27:17,960 --> 00:27:21,599 Vale, pues como lo vamos a hacer 640 00:27:21,599 --> 00:27:23,559 Directamente 641 00:27:23,559 --> 00:27:25,539 Como es un montón de cosas las que hay que mostrar 642 00:27:25,539 --> 00:27:27,319 Que ya te haga el system out dentro 643 00:27:27,319 --> 00:27:29,500 Porque como te devuelva todo en un stream 644 00:27:29,500 --> 00:27:30,900 Te va a devolver un pedazo de stream 645 00:27:30,900 --> 00:27:33,579 Te podría ir 646 00:27:33,579 --> 00:27:35,599 Formando un stream, concatenando 647 00:27:35,599 --> 00:27:37,700 Con toda la información y devolverte el stream 648 00:27:37,700 --> 00:27:39,420 para que luego tú la muestres donde te dé la gana. 649 00:27:40,039 --> 00:27:43,200 Pero bueno, que directamente lo muestre el método dentro 650 00:27:43,200 --> 00:27:43,720 y se acabó. 651 00:27:49,009 --> 00:27:53,190 Vale, mostrar información, ¿necesita algún dato de fuera? 652 00:27:53,910 --> 00:27:57,089 Pues no, porque va a mostrar la de todas. 653 00:27:58,769 --> 00:28:01,509 Vale, entonces, toda la información que necesita 654 00:28:01,509 --> 00:28:02,869 está aquí en este array. 655 00:28:03,490 --> 00:28:04,650 Luego no necesita nada desde fuera. 656 00:28:05,829 --> 00:28:08,750 Vale, pues entonces ahora ya este será un bucle. 657 00:28:08,750 --> 00:28:13,410 Aquí sí que podemos hacer un 658 00:28:13,410 --> 00:28:15,150 For each, ¿vale? 659 00:28:15,869 --> 00:28:17,809 Porque vamos a consultar solamente 660 00:28:17,809 --> 00:28:19,990 Y si no 661 00:28:19,990 --> 00:28:21,910 Pues estarás restringiendo 662 00:28:21,910 --> 00:28:23,750 Tus opciones de aprendizaje 663 00:28:23,750 --> 00:28:29,819 Te estarás limitando a ti mismo 664 00:28:29,819 --> 00:28:31,220 Si no lo usas nunca 665 00:28:31,220 --> 00:28:37,180 Bueno, como en colecciones 666 00:28:37,180 --> 00:28:38,920 Lo usamos todo el rato en conjuntos 667 00:28:38,920 --> 00:28:40,259 Vale, entonces 668 00:28:40,259 --> 00:28:42,440 Esto ya, como, a ver 669 00:28:42,440 --> 00:28:44,339 el forEach cuando elegimos usarlo. 670 00:28:44,640 --> 00:28:46,680 Cuando vamos a recorrer un array 671 00:28:46,680 --> 00:28:47,839 entero de principio a fin. 672 00:28:48,480 --> 00:28:50,460 Entero de principio a fin. Y cuando 673 00:28:50,460 --> 00:28:52,960 solamente vamos a consultar 674 00:28:52,960 --> 00:28:54,759 información. Ahí el forEach es muy 675 00:28:54,759 --> 00:28:56,099 cómodo, porque ya sabemos lo que significa. 676 00:28:56,779 --> 00:28:58,559 Va recorriendo este array 677 00:28:58,559 --> 00:29:00,559 de principio a fin. No tengo opción 678 00:29:00,559 --> 00:29:02,519 de salirme a la mitad, a menos que haga un break 679 00:29:02,519 --> 00:29:04,759 ahí porque me dé la gana. Lo recorre de principio 680 00:29:04,759 --> 00:29:06,839 a fin. Y en cada iteración 681 00:29:06,839 --> 00:29:08,299 esta cosa P 682 00:29:08,299 --> 00:29:10,500 es cada uno de los 683 00:29:10,500 --> 00:29:12,319 objetos del array contactos. 684 00:29:12,440 --> 00:29:16,160 sí, pero para mostrar 685 00:29:16,160 --> 00:29:18,079 me da igual mostrar a través de la copia 686 00:29:18,079 --> 00:29:18,819 que de sí mismo 687 00:29:18,819 --> 00:29:21,900 vale, entonces vamos a 688 00:29:21,900 --> 00:29:24,019 aprender un poquito más 689 00:29:24,019 --> 00:29:25,859 una chorradita pero útil, imprescindible 690 00:29:25,859 --> 00:29:27,440 vale, entonces 691 00:29:27,440 --> 00:29:29,460 nosotros queremos mostrar 692 00:29:29,460 --> 00:29:31,279 todos los datos de la persona 693 00:29:31,279 --> 00:29:34,180 menudo rollo es poner aquí 694 00:29:34,180 --> 00:29:35,880 p.get 695 00:29:35,880 --> 00:29:36,740 nombre 696 00:29:36,740 --> 00:29:39,140 más 697 00:29:39,140 --> 00:29:47,009 p.get dirección 698 00:29:47,009 --> 00:29:54,569 Dirección más p.get edad. 699 00:29:56,069 --> 00:29:58,630 ¿Qué es lo que tengo que usar para mostrarlo? 700 00:29:58,690 --> 00:30:02,430 Porque el p.nombre sin más no podemos porque p es privado. 701 00:30:02,529 --> 00:30:03,529 Perdón, nombre es privado. 702 00:30:03,809 --> 00:30:06,430 p.dirección no podemos porque dirección es privado. 703 00:30:06,609 --> 00:30:11,210 Con lo cual, para acceder, obtener esas propiedades, obtenerlas, 704 00:30:11,289 --> 00:30:12,349 tengo que hacerlo a través del get. 705 00:30:12,630 --> 00:30:13,130 No hay otra. 706 00:30:14,130 --> 00:30:15,970 Vale, pues hombre, menudo rollo. 707 00:30:16,069 --> 00:30:16,970 Vaya sistema más largo. 708 00:30:16,970 --> 00:30:19,430 Bueno, vamos a probarlo antes de intentar modificarlo 709 00:30:19,430 --> 00:30:20,970 A ver si nos ha 710 00:30:20,970 --> 00:30:25,190 Agregamos a una persona 711 00:30:25,190 --> 00:30:26,930 Ala 712 00:30:26,930 --> 00:30:28,650 Que 713 00:30:28,650 --> 00:30:34,380 Bueno, si no he puesto la opción 714 00:30:34,380 --> 00:30:36,200 De mostrar información, es muy complicado 715 00:30:36,200 --> 00:30:37,259 Que pueda mostrar la información 716 00:30:37,259 --> 00:30:39,640 A ver 717 00:30:39,640 --> 00:30:42,220 Vamos a 718 00:30:42,220 --> 00:30:44,019 Poner la opción 719 00:30:44,019 --> 00:30:46,619 De mostrar información 720 00:30:53,619 --> 00:30:55,940 Vale, case2 721 00:30:55,940 --> 00:30:59,240 Venga, vamos a hacer el case2 722 00:30:59,240 --> 00:31:05,170 Y ahora, aquí lo único que habrá que hacer es 723 00:31:05,170 --> 00:31:07,430 Pues esto, llamar al método 724 00:31:07,430 --> 00:31:10,410 Libreta.mostrarInformación.break 725 00:31:10,410 --> 00:31:11,869 Ya está 726 00:31:11,869 --> 00:31:14,450 No hay que pedir datos de entrada al usuario 727 00:31:14,450 --> 00:31:17,130 No hay que pedir nada porque no hay que pasar nada al método 728 00:31:17,130 --> 00:31:21,750 Pues venga, vamos a probarlo 729 00:31:21,750 --> 00:31:24,930 Agregamos a 1 730 00:31:24,930 --> 00:31:29,789 Y ahora vamos a ver si ese se ha agregado 731 00:31:29,789 --> 00:31:32,049 Pues sí, está aquí agregado 732 00:31:32,049 --> 00:31:33,470 Vale 733 00:31:33,470 --> 00:31:38,200 Pero cómo no va 734 00:31:38,200 --> 00:31:39,579 Los que no vais hoy, vosotros 735 00:31:39,579 --> 00:31:42,640 Él está haciendo exactamente lo que tú le has mandado 736 00:31:42,640 --> 00:31:43,440 Si lo has mandado mal 737 00:31:43,440 --> 00:31:45,279 No 738 00:31:45,279 --> 00:31:49,900 Algo tienes que tener distinto 739 00:31:49,900 --> 00:31:51,180 No, sí, sí, tranquilo 740 00:31:51,180 --> 00:31:57,900 Bueno, estamos 741 00:31:57,900 --> 00:32:03,220 No hace falta descansar, ¿no? 742 00:32:03,839 --> 00:32:04,259 Un poquito 743 00:32:04,259 --> 00:32:08,099 dime 744 00:32:08,099 --> 00:32:11,880 al método este 745 00:32:11,880 --> 00:32:15,059 es un system out 746 00:32:15,059 --> 00:32:17,319 con las tres propiedades 747 00:32:17,319 --> 00:32:18,940 sacadas a través del get 748 00:32:18,940 --> 00:32:22,500 ¿qué error te da? 749 00:32:23,259 --> 00:32:24,380 que no me lo muestra 750 00:32:24,380 --> 00:32:29,339 a ver, a lo mejor 751 00:32:29,339 --> 00:32:31,579 el que tienes mal es al agregar que no te lo agrega 752 00:32:31,579 --> 00:32:33,140 mostrarte lo está haciendo bien 753 00:32:33,140 --> 00:32:34,599 pero no lo estás agregando 754 00:32:34,599 --> 00:32:36,000 a lo mejor tienes mal el otro método 755 00:32:36,000 --> 00:32:37,119 hay veces 756 00:32:37,119 --> 00:32:40,480 algo no funciona y buscamos en el sitio 757 00:32:40,480 --> 00:32:44,650 incorrecto, muy bien 758 00:32:44,650 --> 00:32:46,130 me alegro mucho y eso 759 00:32:46,130 --> 00:32:48,109 te convierte en mejor persona 760 00:32:48,109 --> 00:32:58,640 bueno 761 00:32:58,640 --> 00:33:01,940 vale, está claro 762 00:33:01,940 --> 00:33:04,240 no, bueno sí pero no 763 00:33:04,240 --> 00:33:07,589 venga pues entonces 764 00:33:07,589 --> 00:33:11,950 menudo rollo ha sido este system out 765 00:33:11,950 --> 00:33:13,750 Poner 766 00:33:13,750 --> 00:33:15,910 Todo esto de aquí 767 00:33:15,910 --> 00:33:17,009 ¿Verdad? 768 00:33:17,769 --> 00:33:18,049 Vale 769 00:33:18,049 --> 00:33:20,150 Claro 770 00:33:20,150 --> 00:33:23,690 Entonces, ojalá, si nosotros queremos mostrar 771 00:33:23,690 --> 00:33:24,769 La persona enterita 772 00:33:24,769 --> 00:33:28,049 ¿Por qué no podemos hacer esto? 773 00:33:32,160 --> 00:33:32,720 Ese 774 00:33:32,720 --> 00:33:34,880 El famoso tu stream 775 00:33:34,880 --> 00:33:37,259 No, si queremos mostrar la persona entera 776 00:33:37,259 --> 00:33:39,859 ¿Por qué no podemos hacer esto? 777 00:33:40,359 --> 00:33:41,440 ¿Por qué no podemos hacerlo? 778 00:33:42,039 --> 00:33:43,200 Muestro la persona 779 00:33:43,200 --> 00:33:45,799 hombre, porque si lo hacemos, mirad lo que nos sale 780 00:33:45,799 --> 00:33:47,740 no, no nos sale 781 00:33:47,740 --> 00:33:52,799 ningún error, ¿qué es lo que nos sale? 782 00:33:54,599 --> 00:33:55,079 tres 783 00:33:55,079 --> 00:33:56,619 y ahora 784 00:33:56,619 --> 00:33:57,660 muestro información 785 00:33:57,660 --> 00:34:00,640 me sale una información 786 00:34:00,640 --> 00:34:02,960 que está relacionada con la persona 787 00:34:02,960 --> 00:34:04,759 pero no es la que yo quiero 788 00:34:04,759 --> 00:34:06,859 ¿vale? me sale una información 789 00:34:06,859 --> 00:34:07,460 vale 790 00:34:07,460 --> 00:34:10,699 entonces, ¿por qué nos sale esta cosa rara? 791 00:34:11,480 --> 00:34:12,380 ¿cómo funciona 792 00:34:12,380 --> 00:34:14,380 el system out este de aquí? 793 00:34:16,039 --> 00:34:18,780 este sistema, tú le pasas algo 794 00:34:18,780 --> 00:34:20,280 y él 795 00:34:20,280 --> 00:34:22,480 como tiene que mostrarlo por consola 796 00:34:22,480 --> 00:34:24,880 fuerza su conversión a string 797 00:34:24,880 --> 00:34:26,619 entonces para 798 00:34:26,619 --> 00:34:28,760 forzar la conversión de string a algo 799 00:34:28,760 --> 00:34:30,619 tiene que llamar a 800 00:34:30,619 --> 00:34:32,440 un método que tienen 801 00:34:32,440 --> 00:34:34,579 todas, todas, todas las 802 00:34:34,579 --> 00:34:36,699 entidades, aunque nosotros no lo hayamos 803 00:34:36,699 --> 00:34:38,559 hecho, todas las entidades tienen un método que 804 00:34:38,559 --> 00:34:39,699 se llama toString 805 00:34:39,699 --> 00:34:42,539 que lo que hace dentro es 806 00:34:42,539 --> 00:34:44,460 convertir a string ese 807 00:34:44,460 --> 00:34:46,380 objeto, y ese método está 808 00:34:46,380 --> 00:34:48,159 oculto, ya entenderemos por qué está oculto cuando 809 00:34:48,159 --> 00:34:50,480 hablemos de la herencia, es como cuando yo os decía 810 00:34:50,480 --> 00:34:51,880 cuando hacéis una entidad 811 00:34:51,880 --> 00:34:54,280 siempre hay un constructor sin 812 00:34:54,280 --> 00:34:56,420 parámetros que está ahí oculto aunque no lo veáis 813 00:34:56,420 --> 00:34:58,599 pues aunque no lo veáis 814 00:34:58,599 --> 00:35:00,300 ahí hay un método toString 815 00:35:00,300 --> 00:35:02,179 oculto que sirve 816 00:35:02,179 --> 00:35:04,219 para convertir a cadena el 817 00:35:04,219 --> 00:35:06,199 objeto, pero claro, ese método 818 00:35:06,199 --> 00:35:08,340 toString hace lo que le da 819 00:35:08,340 --> 00:35:10,340 la gana, bueno, más que lo que le da la gana 820 00:35:10,340 --> 00:35:12,500 lo que tiene programado debajo, ya veamos 821 00:35:12,500 --> 00:35:14,599 ya veremos, y lo que tiene programado 822 00:35:14,599 --> 00:35:16,300 es hacer esto 823 00:35:16,300 --> 00:35:18,440 y es que 824 00:35:18,440 --> 00:35:19,719 esto no nos interesa lo más mínimo 825 00:35:19,719 --> 00:35:22,360 entonces, vamos 826 00:35:22,360 --> 00:35:24,099 a hacernos nosotros en nuestra clase 827 00:35:24,099 --> 00:35:26,099 profesor, nuestro propio 828 00:35:26,099 --> 00:35:28,159 nuestro propio método toString 829 00:35:28,159 --> 00:35:30,380 que sustituya a ese oculto 830 00:35:30,380 --> 00:35:31,219 que no nos ha gustado 831 00:35:31,219 --> 00:35:32,940 vamos a hacerlo 832 00:35:32,940 --> 00:35:33,639 eh 833 00:35:33,639 --> 00:35:41,219 perdón 834 00:35:41,219 --> 00:35:42,320 persona 835 00:35:42,320 --> 00:35:45,639 vale, a ver, hablar 836 00:35:45,639 --> 00:35:47,559 y pensar a la vez 837 00:35:47,559 --> 00:35:48,559 de lo que creéis 838 00:35:48,559 --> 00:35:51,980 vale, pues vamos a hacernos en persona 839 00:35:51,980 --> 00:35:53,900 nuestro propio método toString 840 00:35:53,900 --> 00:35:56,280 para que no funcione 841 00:35:56,280 --> 00:35:57,840 como con la versión 842 00:35:57,840 --> 00:35:59,539 del oculto, que es esta versión 843 00:35:59,539 --> 00:36:01,860 y sino que funcione como la versión que nos demos 844 00:36:01,860 --> 00:36:03,980 nosotros, y ese método 845 00:36:03,980 --> 00:36:05,840 toString tiene que 846 00:36:05,840 --> 00:36:07,860 tener, para que el system.out.println 847 00:36:07,860 --> 00:36:08,739 lo encuentre 848 00:36:08,739 --> 00:36:12,039 tiene que tener una cabecera específica 849 00:36:12,039 --> 00:36:13,860 podemos escribirle 850 00:36:13,860 --> 00:36:15,699 y recordarla, pero sobre todo 851 00:36:15,699 --> 00:36:17,460 esto va a ser interesante cuando hagamos herencia 852 00:36:17,460 --> 00:36:19,280 entonces, para no tener que escribir y recordarla 853 00:36:19,280 --> 00:36:21,760 pues de nuevo tenemos el botón derecho 854 00:36:21,760 --> 00:36:22,460 el source 855 00:36:22,460 --> 00:36:25,619 y en el source, ¿no veis aquí 856 00:36:25,619 --> 00:36:26,840 un generate to stream? 857 00:36:28,579 --> 00:36:29,019 pues 858 00:36:29,019 --> 00:36:31,619 él te genera, dices, vale, te dice 859 00:36:31,619 --> 00:36:32,840 en el to stream, ¿qué quieres 860 00:36:32,840 --> 00:36:35,739 convertir a stream? ¿qué campos 861 00:36:35,739 --> 00:36:37,440 quieres convertir a tu stream? venga 862 00:36:37,440 --> 00:36:39,360 los tres, que en el to stream me aparezca todo 863 00:36:39,360 --> 00:36:41,519 y él te ofrece esto, te hace 864 00:36:41,519 --> 00:36:43,500 un método, esta anotación si queréis 865 00:36:43,500 --> 00:36:45,579 la podéis quitar, yo la voy 866 00:36:45,579 --> 00:36:47,420 a quitar por ahora, porque como no sabemos lo que significa 867 00:36:47,420 --> 00:36:47,900 la quito 868 00:36:47,900 --> 00:36:51,599 ¿vale? y él te ofrece 869 00:36:51,599 --> 00:36:53,579 eso, te dice, vale, pues voy a convertir 870 00:36:53,579 --> 00:36:55,679 a string este objeto, devolviéndome un string 871 00:36:55,679 --> 00:36:57,260 y ese string 872 00:36:57,260 --> 00:36:58,719 tiene esta forma 873 00:36:58,719 --> 00:37:00,340 ¿te gusta esta? 874 00:37:00,940 --> 00:37:03,639 si no te gusta, la cambias, hombre, a mí me gusta 875 00:37:03,639 --> 00:37:05,320 nombre igual al 876 00:37:05,320 --> 00:37:07,440 valor de nombre, dirección igual 877 00:37:07,440 --> 00:37:09,320 al valor de dirección, edad igual 878 00:37:09,320 --> 00:37:11,179 al valor de edad, hombre, pues me gusta este tu string 879 00:37:11,179 --> 00:37:12,460 que no me gusta, pues lo cambio 880 00:37:12,460 --> 00:37:14,440 vale, entonces ahora ya 881 00:37:14,440 --> 00:37:16,519 si volvemos a ejecutar esto 882 00:37:16,519 --> 00:37:24,489 pues hombre 883 00:37:24,489 --> 00:37:27,309 me sale ya la información de la persona 884 00:37:27,309 --> 00:37:27,969 más bonita 885 00:37:27,969 --> 00:37:30,809 y no hemos tenido que 886 00:37:30,809 --> 00:37:32,309 en nuestro 887 00:37:32,309 --> 00:37:35,050 mostrar información, no hemos tenido que sacarla 888 00:37:35,050 --> 00:37:37,150 nosotros una por una, p.get, no hombre 889 00:37:37,150 --> 00:37:38,010 p.no se que 890 00:37:38,010 --> 00:37:40,849 le hemos puesto el objeto entero 891 00:37:40,849 --> 00:37:43,369 y ya el system out se ocupa 892 00:37:43,369 --> 00:37:44,429 de llamar al toString 893 00:37:44,429 --> 00:37:46,789 coge el string 894 00:37:46,789 --> 00:37:48,949 correspondiente que le ha dado el toString 895 00:37:48,949 --> 00:37:49,849 que es todo esto 896 00:37:49,849 --> 00:37:52,369 y ese toString es el que nos muestra 897 00:37:52,369 --> 00:37:54,630 entonces esto nos va a ser muy cómodo 898 00:37:54,630 --> 00:37:56,650 para mostrar contenido de objetos 899 00:37:56,650 --> 00:37:58,230 sin tener que irlo separando 900 00:37:58,230 --> 00:37:59,550 propiedad por propiedad 901 00:37:59,550 --> 00:38:02,949 entonces es algo que se suele hacer 902 00:38:02,949 --> 00:38:04,690 por defecto 903 00:38:04,690 --> 00:38:07,349 cuando uno hace una entidad 904 00:38:07,349 --> 00:38:09,769 pues hace los get, los set 905 00:38:09,769 --> 00:38:11,769 los constructores y suele poner un toString 906 00:38:11,769 --> 00:38:14,210 para si pasa ese objeto 907 00:38:14,210 --> 00:38:15,050 en un system out 908 00:38:15,050 --> 00:38:16,889 pues que se muestre 909 00:38:16,889 --> 00:38:19,230 con algo inteligible 910 00:38:19,230 --> 00:38:20,309 ¿verdad? 911 00:38:20,329 --> 00:38:34,960 vale, pues mostrar 912 00:38:34,960 --> 00:38:37,059 información, obtener información, ya lo tenemos 913 00:38:37,059 --> 00:38:38,619 entonces 914 00:38:38,619 --> 00:38:40,880 obtener conteo, este método 915 00:38:40,880 --> 00:38:42,360 no hace falta ni hacerle, es 916 00:38:42,360 --> 00:38:45,079 retuncontactos.led 917 00:38:45,079 --> 00:38:46,019 ya está 918 00:38:46,019 --> 00:38:49,420 ¿cuántas personas hay? retuncontactos.led 919 00:38:49,420 --> 00:38:51,059 eliminar persona 920 00:38:51,059 --> 00:38:52,519 vamos a hacer eliminar persona 921 00:38:52,519 --> 00:38:55,139 vale, obtener 922 00:38:55,139 --> 00:38:56,500 información, lo que pasa es que aquí dice 923 00:38:56,500 --> 00:38:59,000 que te lo muestre en una 924 00:38:59,000 --> 00:39:00,760 cadena así, pues hombre, podríamos 925 00:39:00,760 --> 00:39:02,639 a adaptarlo a esta cadena. Poner la libreta de direcciones 926 00:39:02,639 --> 00:39:04,079 contiene tres personas. Ir 927 00:39:04,079 --> 00:39:06,699 construyendo esto nosotros. Pero bueno, eso es 928 00:39:06,699 --> 00:39:07,380 lo de menos, ¿no? 929 00:39:08,340 --> 00:39:10,820 Que yo aquí me he limitado en mi obtener información. 930 00:39:11,360 --> 00:39:12,679 Me he limitado a 931 00:39:12,679 --> 00:39:14,860 mostrar la lista 932 00:39:14,860 --> 00:39:16,739 de personas tal cual. Pero podríamos 933 00:39:16,739 --> 00:39:18,139 haber puesto aquí un system out. 934 00:39:18,460 --> 00:39:20,659 La libreta tiene, no sé nombre, 935 00:39:20,780 --> 00:39:22,579 get patatín. Podríamos haber construido 936 00:39:22,579 --> 00:39:24,639 todo ese string y ya está. Para que se adaptara 937 00:39:24,639 --> 00:39:26,440 a esto. Pero bueno, es lo de menos. 938 00:39:27,500 --> 00:39:28,619 Obtener conteo. No hace 939 00:39:28,619 --> 00:39:30,400 falta hacerlo. Es return el array. 940 00:39:30,400 --> 00:39:31,820 Vamos a hacer eliminar personas 941 00:39:31,820 --> 00:39:32,960 Eso sí 942 00:39:32,960 --> 00:39:36,039 Espera, porque no queremos largas