1 00:00:00,000 --> 00:00:09,320 Bueno, pues ahora este objeto puede llamar a todos los métodos que hemos hecho, 2 00:00:09,320 --> 00:00:11,760 vamos a probar si los métodos que hemos hecho están bien, 3 00:00:11,760 --> 00:00:12,760 vamos a probarlos, ¿no? 4 00:00:12,760 --> 00:00:16,840 Este objeto está ya inicializado con unas cuantas aplicaciones, 5 00:00:16,840 --> 00:00:20,000 tiene ya unas cuantas ahí, estas de aquí. 6 00:00:20,000 --> 00:00:25,880 Vamos a probar alguno de los métodos que hemos hecho, ¿vale? 7 00:00:25,880 --> 00:00:31,080 Entonces, el método de listar, por ejemplo, 8 00:00:31,080 --> 00:00:34,000 vamos a listar las aplicaciones. 9 00:00:34,000 --> 00:00:37,840 A ver si es verdad que este método de listar lo hace bien. 10 00:00:37,840 --> 00:00:38,340 Vale. 11 00:00:51,880 --> 00:00:55,600 Vale, este es el primer método que mostraríamos, ¿verdad? 12 00:00:55,600 --> 00:00:58,560 Perdón, este es el método que vamos a probar. 13 00:00:58,560 --> 00:01:02,240 Este que lista las aplicaciones que tiene el objeto. 14 00:01:02,240 --> 00:01:05,240 Yo he creado este objeto, me tendrá que listar, pues, 15 00:01:05,240 --> 00:01:06,840 Minecraft y su tamaño, que es 10. 16 00:01:06,840 --> 00:01:09,840 Lost of Legends y su tamaño, que es 33. 17 00:01:09,840 --> 00:01:11,960 Vale, todos sabéis lo que significa, yo ni idea. 18 00:01:11,960 --> 00:01:14,840 Esto como, este en particular, este enunciado como lo ha 19 00:01:14,840 --> 00:01:17,200 escrito Estefano, por eso veis que está medio en italiano, 20 00:01:17,200 --> 00:01:17,760 medio raro. 21 00:01:21,040 --> 00:01:24,440 Vale, a ver, ahora hago yo la pregunta. 22 00:01:24,440 --> 00:01:25,800 Voy a ejecutar este mail. 23 00:01:28,480 --> 00:01:30,360 ¿Qué me va a salir en pantalla? 24 00:01:30,360 --> 00:01:32,280 Qué sudores, estás menopáusito. 25 00:01:32,280 --> 00:01:33,520 Sí, algo así. 26 00:01:33,520 --> 00:01:34,020 Bueno. 27 00:01:39,760 --> 00:01:42,360 ¿Qué me va a salir por pantalla cuando ejecute yo este mail? 28 00:01:48,600 --> 00:01:49,960 No ejecutéis este mail. 29 00:01:50,840 --> 00:01:56,520 Si yo ejecuto este mail, ¿qué me va a salir por pantalla y 30 00:01:56,520 --> 00:01:57,480 por qué? 31 00:01:57,480 --> 00:02:01,400 Nada ya, porque ya lo habéis probado. 32 00:02:01,400 --> 00:02:04,680 Eso sí, eso sí, parece evidente. 33 00:02:04,680 --> 00:02:08,200 Vamos a ver, ese método me devuelve una cadena. 34 00:02:08,200 --> 00:02:12,040 Eso no significa que sea obligatorio que yo asigne el 35 00:02:12,040 --> 00:02:13,760 resultado del método a ningún sitio. 36 00:02:13,760 --> 00:02:17,080 En realidad no es obligatorio. 37 00:02:17,080 --> 00:02:18,200 ¿Vale? 38 00:02:18,400 --> 00:02:27,800 No hace falta que yo en realidad lo asigne a ningún sitio. 39 00:02:27,800 --> 00:02:30,240 En realidad no se lo tengo por qué asignar a ningún lado. 40 00:02:30,240 --> 00:02:33,320 Yo lo puedo llamar, pero claro, si no se lo asigno a ningún 41 00:02:33,320 --> 00:02:38,600 sitio, el valor de retorno se va a la basura. 42 00:02:38,600 --> 00:02:40,080 Es un poco estúpido, ¿no? 43 00:02:40,080 --> 00:02:43,200 Un poco estúpido llamar a un método para que me devuelva 44 00:02:43,200 --> 00:02:46,360 algo o valor de retorno y no usar ese valor de retorno. 45 00:02:46,360 --> 00:02:47,920 Es un poco estúpido. 46 00:02:47,960 --> 00:02:50,240 Bueno, pues vamos a usar ese valor de retorno, claro. 47 00:02:50,240 --> 00:02:54,080 Vamos a usarlo en particular para mandárselo a un sistema o 48 00:02:54,080 --> 00:02:55,920 para que lo muestre, para mandárselo. 49 00:02:58,920 --> 00:03:00,880 ¿Vale? 50 00:03:00,880 --> 00:03:03,960 Esto ya sí, en el caso de que el método esté bien hecho, 51 00:03:03,960 --> 00:03:09,360 que no lo sabemos, esto ya sí, el valor de retorno del método 52 00:03:09,360 --> 00:03:11,840 me mostrará lo que sea. 53 00:03:11,840 --> 00:03:16,320 Vamos a ejecutarlo a ver si es verdad que está bien hecho. 54 00:03:17,920 --> 00:03:26,240 Pues sí, me está mostrando el nombre de la aplicación, 55 00:03:26,240 --> 00:03:30,400 el tamaño, guión, nombre de la aplicación y tamaño, guión, 56 00:03:30,400 --> 00:03:32,520 nombre de la aplicación y tamaño. 57 00:03:32,520 --> 00:03:35,080 Y así con todas. 58 00:03:35,080 --> 00:03:38,200 Acaba con el guión, claro, acaba con un guión, pues, 59 00:03:38,200 --> 00:03:40,320 porque me va concatenando el nombre de la aplicación, 60 00:03:40,320 --> 00:03:41,000 tamaño y guión. 61 00:03:44,120 --> 00:03:45,960 Bueno, ese es el aspecto que hemos decidido, 62 00:03:45,960 --> 00:03:48,160 pero vamos a edicionar otra cosa. 63 00:03:48,160 --> 00:03:50,600 ¿Vale? 64 00:03:50,600 --> 00:03:51,100 Silencio. 65 00:03:54,640 --> 00:03:57,760 Vale, por ejemplo, pues, lo que ha hecho él. 66 00:03:57,760 --> 00:04:02,000 Hombre, ¿y si te las muestra una detrás de otra con un salto de 67 00:04:02,000 --> 00:04:03,120 línea? 68 00:04:03,120 --> 00:04:05,720 Vale, o sea, no os olvidéis de los caracteres de escape que 69 00:04:05,720 --> 00:04:06,840 existen. 70 00:04:06,840 --> 00:04:09,080 No tengo el roto. 71 00:04:09,080 --> 00:04:11,280 No os olvidéis. 72 00:04:11,280 --> 00:04:11,760 ¿Vale? 73 00:04:11,760 --> 00:04:12,260 A ver. 74 00:04:16,960 --> 00:04:24,880 Los char, los caracteres son los que conocemos de toda la vida, 75 00:04:24,880 --> 00:04:26,040 ¿no? 76 00:04:26,040 --> 00:04:29,200 Esto es un carácter, esto es otro, esto es otro, 77 00:04:29,200 --> 00:04:31,080 esto es otro, ¿vale? 78 00:04:31,080 --> 00:04:33,880 Y esos caracteres me forman las cadenas. 79 00:04:33,880 --> 00:04:37,560 Pero en la tabla ASCII, que es la que recoge, 80 00:04:37,560 --> 00:04:41,960 la tabla ASCII, que es la que recoge todos los caracteres 81 00:04:41,960 --> 00:04:44,760 codificables, todos los caracteres, 82 00:04:44,760 --> 00:04:48,840 también hay caracteres como saltos de línea, tabuladores, 83 00:04:48,840 --> 00:04:52,280 etcétera, que también son codificables y también son 84 00:04:52,280 --> 00:04:53,600 escribibles. 85 00:04:53,600 --> 00:04:55,440 Entonces, esos son los caracteres de escape. 86 00:04:55,440 --> 00:04:56,640 Entonces, un salto de línea. 87 00:04:56,640 --> 00:04:59,240 ¿Cómo se escribe un salto de línea? 88 00:04:59,240 --> 00:05:00,000 Así. 89 00:05:00,000 --> 00:05:01,480 Eso es un salto de línea. 90 00:05:01,480 --> 00:05:03,280 ¿Cómo se escribe un tabulador? 91 00:05:03,280 --> 00:05:05,200 Así, ¿vale? 92 00:05:05,200 --> 00:05:07,680 Esta es la barrita de escape que se llama. 93 00:05:07,680 --> 00:05:13,360 Entonces, cuando nos encontramos esta barrita, 94 00:05:13,360 --> 00:05:16,640 significa, oye, que lo que viene después no es la T. 95 00:05:16,640 --> 00:05:18,120 Lo que viene después no es la T. 96 00:05:18,120 --> 00:05:20,560 Lo que viene después, interprétalo como carácter de 97 00:05:20,560 --> 00:05:21,640 escape, ¿vale? 98 00:05:21,640 --> 00:05:24,960 Pues la T es el carácter tabulador. 99 00:05:24,960 --> 00:05:26,600 Cuando nos encontramos la barra, oye, 100 00:05:26,600 --> 00:05:28,600 que lo que viene detrás no es el carácter N, 101 00:05:28,600 --> 00:05:30,640 lo que viene detrás es un carácter especial, 102 00:05:30,640 --> 00:05:32,000 el salto de línea, ¿vale? 103 00:05:32,000 --> 00:05:34,040 Familiarizaros con esos. 104 00:05:34,040 --> 00:05:38,200 Con los caracteres que son también imprimibles, 105 00:05:38,200 --> 00:05:40,720 el salto de línea es imprimible, el tabulador es imprimible, 106 00:05:40,760 --> 00:05:43,120 pero que a la hora de escribirlos, 107 00:05:43,120 --> 00:05:45,640 se escriben de esta manera. 108 00:05:45,640 --> 00:05:47,720 Y están en la tabla ASCII todos. 109 00:05:47,720 --> 00:05:51,360 Entonces, ¿que queremos separar en lugar de por guiones, 110 00:05:51,360 --> 00:05:53,520 por saltos de línea, porque lo vamos a ver y nos queda más 111 00:05:53,520 --> 00:05:54,800 bonito? 112 00:05:54,800 --> 00:05:58,000 Bueno, pues cuando hacemos en el método de lista apps la 113 00:05:58,000 --> 00:06:01,840 concatenación, en lugar de concatenar con el guión, 114 00:06:01,840 --> 00:06:03,560 vamos a concatenarlo con este carácter, 115 00:06:03,560 --> 00:06:07,760 que es un carácter de la tabla ASCII, ¿vale? 116 00:06:07,760 --> 00:06:10,240 Aquí podemos poner cualquier cosa de la tabla ASCII, 117 00:06:10,240 --> 00:06:15,240 cualquiera, los caracteres que conocemos y los otros. 118 00:06:15,240 --> 00:06:17,400 Bueno, pues venga, vamos a probar esta versión. 119 00:06:24,000 --> 00:06:29,120 Pues, hala, hombre, así se ve más bonito, ¿vale? 120 00:06:29,120 --> 00:06:32,400 Bueno, esto es para recordar que en la tabla ASCII hay un montón 121 00:06:32,400 --> 00:06:35,480 de caracteres, hay muchísimos y muchos de ellos son 122 00:06:35,480 --> 00:06:37,880 interesantes ahora de formatear salidas. 123 00:06:37,880 --> 00:06:41,200 Entonces, no nos olvidemos de que existen a la hora de darle 124 00:06:41,200 --> 00:06:43,720 formato a las salidas por consola para que queden más 125 00:06:43,720 --> 00:06:44,280 bonitas. 126 00:06:47,400 --> 00:06:49,480 Bueno, pues nuestro método de lista apps, 127 00:06:49,480 --> 00:06:51,440 pues parece que funciona. 128 00:06:51,440 --> 00:06:53,880 Nos da el nombre y el tamaño. 129 00:06:53,880 --> 00:06:58,760 Vale, ¿algún otro método por ahí que probar? 130 00:06:58,760 --> 00:07:02,920 Bueno, podemos probar el de cambiar versión, ¿vale? 131 00:07:02,920 --> 00:07:05,160 A ver, callaos. 132 00:07:05,160 --> 00:07:08,440 Ya venís hablados del recreo. 133 00:07:08,440 --> 00:07:11,960 Vale, venga, pues vamos a probar a cambiar la versión de una y 134 00:07:11,960 --> 00:07:13,040 volver a mostrarlas. 135 00:07:13,040 --> 00:07:15,000 A ver si la, ah, no, es que el de mostrar no muestra la 136 00:07:15,000 --> 00:07:16,400 versión, entonces no vamos a verlo. 137 00:07:18,880 --> 00:07:26,680 Vamos a hacer una versión de lista apps 2 que nos muestra 138 00:07:26,680 --> 00:07:28,960 también la versión para ver si nos cambia, 139 00:07:28,960 --> 00:07:32,160 si el método cambiar versión funciona. 140 00:07:32,160 --> 00:07:39,800 Vamos a copiar y pegar este y vamos a hacer una versión 2 de 141 00:07:39,800 --> 00:07:40,480 lista apps. 142 00:07:43,680 --> 00:07:47,760 Los guiones es que son tan feos en Java, 143 00:07:47,760 --> 00:07:48,960 se usan tan poco que lo quito. 144 00:07:48,960 --> 00:07:50,760 Lista apps 2. 145 00:07:50,760 --> 00:07:55,000 Y vamos a concatenar con el lugar, con el tamaño y con la 146 00:07:55,000 --> 00:07:59,240 versión, ¿vale? 147 00:07:59,440 --> 00:08:02,080 O sea, me he limitado a hacer otra versión del listado de 148 00:08:02,080 --> 00:08:06,800 aplicaciones, otra versión que me muestra nombre y versión, 149 00:08:06,800 --> 00:08:08,160 en lugar de nombre y tamaño. 150 00:08:08,160 --> 00:08:10,600 Nombre y versión. 151 00:08:10,600 --> 00:08:13,080 Vale, lo vamos a hacer para ver si funciona el método de 152 00:08:13,080 --> 00:08:14,560 cambiar versión. 153 00:08:14,560 --> 00:08:16,480 Vamos a probarlo. 154 00:08:16,480 --> 00:08:24,320 Vamos a la aplicación que se llama Minecraft, esta de aquí, 155 00:08:24,320 --> 00:08:33,400 a esta, a esta. 156 00:08:33,400 --> 00:08:35,760 Vamos a cambiar la versión. 157 00:08:35,760 --> 00:08:37,640 Tenía la 1, tenía la 1. 158 00:08:37,640 --> 00:08:40,360 Vamos a ponerle la versión 2. 159 00:08:40,360 --> 00:08:42,000 Y ahora vamos a volver a listarlas. 160 00:08:45,600 --> 00:08:49,520 Vamos a volver a listarlas, pero con la versión 2 del método 161 00:08:49,520 --> 00:08:51,760 para que me liste las versiones, a ver si es verdad que ha 162 00:08:51,760 --> 00:08:54,080 cambiado. 163 00:08:54,240 --> 00:08:56,520 Pues, venga. 164 00:08:56,520 --> 00:08:59,600 Estamos usando el main, ups, estamos usando el main para 165 00:08:59,600 --> 00:09:00,200 hacer pruebas. 166 00:09:00,200 --> 00:09:02,560 Este no es el main de nuestra aplicación. 167 00:09:02,560 --> 00:09:04,520 Es un main para hacer pruebas de los métodos que estamos 168 00:09:04,520 --> 00:09:05,960 haciendo. 169 00:09:05,960 --> 00:09:09,200 Pues, venga, vamos a ver si el método cambiar versión lo hemos 170 00:09:09,200 --> 00:09:12,760 hecho bien o no. 171 00:09:12,760 --> 00:09:16,600 Entonces, volvemos a ejecutar esto. 172 00:09:16,600 --> 00:09:21,040 Y inicialmente el Minecraft tenía la 1. 173 00:09:21,040 --> 00:09:23,320 Y después de llamar a versión, efectivamente, 174 00:09:23,360 --> 00:09:26,120 al cambiar versión, lo ha cambiado a la 2. 175 00:09:26,120 --> 00:09:28,760 Entonces, parece que ese método también está funcionando, 176 00:09:28,760 --> 00:09:30,920 el de cambiar versión. 177 00:09:30,920 --> 00:09:33,560 Una única prueba, no es que sea un conjunto de pruebas muy 178 00:09:33,560 --> 00:09:36,680 grande, pero, bueno, son métodos pequeñitos. 179 00:09:40,040 --> 00:09:42,960 De la fase de pruebas, ¿habéis visto ya cosas en entornos de 180 00:09:42,960 --> 00:09:45,480 desarrollo? 181 00:09:45,480 --> 00:09:47,600 No. 182 00:09:47,600 --> 00:09:50,080 Creación de casos de prueba, métodos de caja blanca, 183 00:09:50,080 --> 00:09:52,120 caja negra y Java Unit. 184 00:09:52,120 --> 00:09:53,560 ¿No suenan las palabras que os digo? 185 00:09:53,560 --> 00:09:56,560 PÚBLICO 1. Sí, sí, pero las ha mencionado ya. 186 00:09:56,560 --> 00:09:58,840 PÚBLICO 2. Vale. 187 00:09:58,840 --> 00:10:03,960 Bueno, que con 2 horas tampoco necesito tiempo, mucho más. 188 00:10:03,960 --> 00:10:05,600 Vale. 189 00:10:05,600 --> 00:10:08,280 A ver, pues, ya está, ¿qué más métodos podemos probar? 190 00:10:08,280 --> 00:10:12,040 Ya que tenemos aquí el main, ¿algún otro método? 191 00:10:12,040 --> 00:10:15,800 Cambiar versión, incorporar aplicación. 192 00:10:15,800 --> 00:10:18,320 Vamos a incorporarle una aplicación y luego la listamos 193 00:10:18,320 --> 00:10:19,000 otra vez. 194 00:10:19,000 --> 00:10:21,880 A ver si incorporar aplicación está bien hecho. 195 00:10:21,880 --> 00:10:23,360 Pues, venga, vámonos al main. 196 00:10:23,360 --> 00:10:31,840 Vamos a incorporar al almacén una aplicación que voy a crear 197 00:10:31,840 --> 00:10:33,960 aquí mismo. 198 00:10:33,960 --> 00:10:40,960 Una aplicación que se llame otra, que sea la versión 4 y que 199 00:10:40,960 --> 00:10:43,600 ocupe 80 gigas. 200 00:10:43,600 --> 00:10:45,880 ¿Vale? 201 00:10:45,880 --> 00:10:48,360 Porque al método incorporar aplicación, 202 00:10:48,360 --> 00:10:50,480 hay que pasarle un objeto aplicación. 203 00:10:50,480 --> 00:10:52,840 Eso es lo que hay que pasar en un objeto aplicación. 204 00:10:52,840 --> 00:10:55,200 Vale, pues, nada, ahí lo creo. 205 00:10:55,200 --> 00:10:59,280 Lo creo y en el momento de crearlo, pa, se lo paso. 206 00:10:59,280 --> 00:11:01,000 Lo creo y se lo paso. 207 00:11:01,000 --> 00:11:02,880 Y ahora voy a volver a listar a ver si está, 208 00:11:02,880 --> 00:11:06,520 a ver si lo ha incorporado. 209 00:11:06,520 --> 00:11:11,840 Pues, venga, vamos a listar las aplicaciones, 210 00:11:11,840 --> 00:11:14,320 a ver si lo ha incorporado. 211 00:11:14,320 --> 00:11:19,200 A ver si aquí no peta o qué ocurre. 212 00:11:19,200 --> 00:11:29,320 Pues, venga, petar no ha petado y no la ha incorporado, ¿verdad? 213 00:11:29,320 --> 00:11:31,840 La nueva aplicación, incorporar a App Store. 214 00:11:31,840 --> 00:11:37,080 Ah, no, soy idiota, que no le metí en un, ahí, vale. 215 00:11:37,080 --> 00:11:38,360 No lo he mostrado. 216 00:11:38,360 --> 00:11:41,240 No sé si lo ha incorporado o no, porque no lo he mostrado. 217 00:11:41,240 --> 00:11:45,960 Vamos a ver ahora si lo ha incorporado. 218 00:11:45,960 --> 00:11:47,760 Sí, parece que sí. 219 00:11:47,760 --> 00:11:48,880 Este es el primer listado. 220 00:11:52,120 --> 00:11:55,280 Este es el segundo después de cambiar la versión. 221 00:11:55,280 --> 00:11:58,400 Y este es el tercero después de incorporar la nueva 222 00:11:58,400 --> 00:11:59,160 aplicación. 223 00:12:02,160 --> 00:12:06,240 Luego, vale, lo que hemos hecho hasta ahora de esta clase, 224 00:12:06,240 --> 00:12:09,480 los métodos que hemos hecho, parece que están bien hechos, 225 00:12:09,480 --> 00:12:12,080 parece que están bien hechos. 226 00:12:12,080 --> 00:12:14,080 Ala, venga, pues, vamos a seguir con más métodos. 227 00:12:17,800 --> 00:12:22,560 Tenemos ya cambiar versión, listar aplicaciones y este. 228 00:12:22,560 --> 00:12:23,040 Dime. 229 00:12:23,040 --> 00:12:28,960 El que has llamado es el de añadir o el de instalar. 230 00:12:28,960 --> 00:12:30,320 No, incorporar, este. 231 00:12:30,320 --> 00:12:32,840 Sí, pero incorporar era el de. 232 00:12:32,840 --> 00:12:36,440 Incorporar era el que metía una nueva aplicación al almacén. 233 00:12:36,440 --> 00:12:39,520 Incorporar era este. 234 00:12:39,520 --> 00:12:41,520 Este, ay. 235 00:12:41,520 --> 00:12:45,360 Incorporar una aplicación nueva, la metí en el almacén extendiendo 236 00:12:45,360 --> 00:12:46,480 la RAI y todo eso. 237 00:12:52,280 --> 00:12:53,800 Es que instar, este no lo tiene, ¿no? 238 00:12:53,800 --> 00:12:54,880 Instar lo tenía. 239 00:12:54,880 --> 00:12:56,000 Ah, sí, perdón. 240 00:12:56,000 --> 00:13:00,120 Sí, instar, lo que hacía era devolver una copia. 241 00:13:00,120 --> 00:13:02,440 Este no lo he probado porque devolver esa copia ahora mismo 242 00:13:02,440 --> 00:13:03,640 no tenemos como. 243 00:13:11,240 --> 00:13:13,840 O sea, este método, cuando lo has llamado, te da. 244 00:13:13,840 --> 00:13:14,920 No me lo deja, no me deja. 245 00:13:21,280 --> 00:13:24,200 Que no te deja llamar a este método. 246 00:13:24,200 --> 00:13:26,760 Porque estás en un main de otra clase. 247 00:13:26,760 --> 00:13:30,680 Claro, es que entonces, si quieres llamarlo desde un main 248 00:13:30,680 --> 00:13:34,160 de otra clase, tienes que ponerle público. 249 00:13:34,160 --> 00:13:36,360 Claro. 250 00:13:36,360 --> 00:13:37,000 Claro. 251 00:13:37,000 --> 00:13:39,800 Este es que, este lo habíamos puesto aquí. 252 00:13:39,800 --> 00:13:41,800 Lo habíamos puesto aquí porque lo habíamos puesto solo como 253 00:13:41,800 --> 00:13:47,760 método auxiliar para usarlo desde el constructor, ¿verdad? 254 00:13:50,680 --> 00:13:54,480 Para usarlo desde el constructor e incorporar la aplicación. 255 00:13:54,480 --> 00:13:59,000 Pero luego dijimos, a ver, el constructor parte directamente 256 00:13:59,000 --> 00:13:59,840 de una RAI vacío. 257 00:13:59,840 --> 00:14:02,360 Entonces, ¿para qué vamos a usar el método de incorporar sobre 258 00:14:02,360 --> 00:14:05,240 lo que hay si ya sabemos que la RAI está vacío? 259 00:14:05,240 --> 00:14:10,040 Entonces, aquí ya hicimos una versión ya no usando ese método. 260 00:14:10,040 --> 00:14:12,840 Por eso tú lo tenías comentado, ¿vale? 261 00:14:12,840 --> 00:14:16,160 Pero era privado por eso, porque la idea no era usarlo desde 262 00:14:16,160 --> 00:14:17,720 fuera, no era usarlo desde fuera, 263 00:14:17,720 --> 00:14:21,120 sino usarlo desde este constructor simplemente, ¿vale? 264 00:14:21,120 --> 00:14:24,960 Pero, bueno, lo hemos probado ahí. 265 00:14:24,960 --> 00:14:28,960 Vale, pues, a ver, ya está, más métodos. 266 00:14:28,960 --> 00:14:31,920 Ya solo nos falta uno de esta clase. 267 00:14:31,920 --> 00:14:36,080 Que este es un poco más raro. 268 00:14:36,080 --> 00:14:39,160 Vale, le pasamos una aplicación. 269 00:14:39,160 --> 00:14:42,560 Un objeto aplicación, le pasamos un objeto aplicación. 270 00:14:42,560 --> 00:14:48,000 Y te tiene que devolver otro objeto, otro objeto. 271 00:14:48,000 --> 00:14:51,480 Vale, el objeto puede ser o null, ¿en qué caso? 272 00:14:51,480 --> 00:14:55,160 Te devolverá un objeto null si el objeto aplicación que le hemos 273 00:14:55,160 --> 00:14:59,800 pasado es de la misma versión que el que hay en el almacén para 274 00:14:59,800 --> 00:15:01,360 ese mismo nombre. 275 00:15:01,360 --> 00:15:05,480 Es decir, le pasamos la aplicación WhatsApp versión 3, 276 00:15:05,480 --> 00:15:07,760 el objeto que tiene WhatsApp versión 3. 277 00:15:07,760 --> 00:15:10,800 Él mira en el almacén y te dice, a ver, 278 00:15:10,800 --> 00:15:13,680 en el almacén, ¿la aplicación WhatsApp tiene también la 279 00:15:13,680 --> 00:15:17,520 versión 3 o tiene otra superior? 280 00:15:17,520 --> 00:15:19,800 Tiene otra actualizada, tiene otra superior. 281 00:15:19,800 --> 00:15:22,840 Si tiene también la versión 3, entonces se supone que no hay 282 00:15:22,840 --> 00:15:25,040 nada que devolver y te devuelve null. 283 00:15:25,040 --> 00:15:28,760 Pero si la que hay en el almacén con ese mismo nombre tiene una 284 00:15:28,760 --> 00:15:31,280 versión superior a la que le hemos pasado, 285 00:15:31,280 --> 00:15:33,840 entonces te devuelve una nueva copia, 286 00:15:33,840 --> 00:15:37,400 una nueva copia de esa versión del almacén que es más null. 287 00:15:37,400 --> 00:15:41,720 Te devuelve una nueva copia. 288 00:15:41,720 --> 00:15:50,200 Entonces, esto en realidad no está muy bien expresado. 289 00:15:50,200 --> 00:15:54,800 Esto se entendería mejor este método o una copia del objeto 290 00:15:54,800 --> 00:16:00,720 del almacén, que si no, no se entiende bien. 291 00:16:05,320 --> 00:16:06,560 Entonces, la idea es esa. 292 00:16:06,560 --> 00:16:09,760 La idea es, tú tienes tu almacén con las aplicaciones ahí 293 00:16:09,760 --> 00:16:11,040 estáticas. 294 00:16:11,040 --> 00:16:13,680 A este método le pasas un objeto aplicación. 295 00:16:13,680 --> 00:16:16,240 Tienes que buscar cuál del almacén se llama igual, 296 00:16:16,240 --> 00:16:19,000 cuál se llama igual, cuál se llama igual. 297 00:16:19,000 --> 00:16:21,360 Si encuentras uno del almacén que se llama igual, 298 00:16:21,360 --> 00:16:24,280 pero la versión es la misma, se sobreentiende que el método en 299 00:16:24,280 --> 00:16:26,520 ese caso no tiene que hacer nada y te devuelve null. 300 00:16:26,520 --> 00:16:28,840 Es su forma de expresarlo, no tiene que hacer nada. 301 00:16:28,840 --> 00:16:31,160 Pero si encuentras uno del almacén que se llama igual que 302 00:16:31,160 --> 00:16:33,800 la que le has pasado, pero su versión es más actual, 303 00:16:33,840 --> 00:16:36,840 pues, entonces, te devuelve una nueva copia, 304 00:16:36,840 --> 00:16:39,360 otra copia de la que hay en el almacén, 305 00:16:39,360 --> 00:16:41,520 que tiene esa versión más o menos. 306 00:16:41,520 --> 00:16:44,680 Eso es lo que se supone que hace este método. 307 00:16:44,680 --> 00:16:49,960 Pues, bueno, ya que he entendido, ahora vamos a hacerlo. 308 00:16:49,960 --> 00:16:51,440 Vamos a hacerlo de siempre. 309 00:16:51,440 --> 00:16:55,360 Venga, trata de hacerlo. 310 00:16:55,360 --> 00:16:57,400 Vamos a poner la cabecera para que. 311 00:16:58,080 --> 00:17:00,240 Para ver si podías ponerlo de importar, 312 00:17:00,240 --> 00:17:01,680 porque no sé si lo tengo completo. 313 00:17:04,680 --> 00:17:07,640 Bueno, este era simplemente lo de siempre. 314 00:17:07,640 --> 00:17:10,880 El array store, ampliarlo en una posición, copiar y pegar. 315 00:17:10,880 --> 00:17:13,880 Para meter una aplicación más, si es que hace falta usar ese 316 00:17:13,880 --> 00:17:16,040 método, si es que hace falta. 317 00:17:16,040 --> 00:17:18,520 Para tenerlo ahí, por si hace falta meter una aplicación 318 00:17:18,520 --> 00:17:19,880 nueva en el almacén. 319 00:17:19,880 --> 00:17:21,840 Aunque se supone el funcionamiento global de esta 320 00:17:21,840 --> 00:17:24,280 aplicación es que tú creas el almacén con el constructor y ya 321 00:17:24,280 --> 00:17:25,520 no lo vuelves a tocar. 322 00:17:25,520 --> 00:17:27,560 Se supone que es el uso, no lo vuelves a tocar. 323 00:17:27,560 --> 00:17:31,840 Entonces, este método no se usaría. 324 00:17:31,840 --> 00:17:34,920 Ahora, de todas formas, si te sigue no funcionando lo que 325 00:17:34,920 --> 00:17:37,120 sea, ahora lo. 326 00:17:37,120 --> 00:17:43,480 Vale, pues, el método que nos falta, que es el de checkUpdate, 327 00:17:43,480 --> 00:17:44,000 será, ¿no? 328 00:17:44,000 --> 00:17:45,880 Sí. 329 00:17:45,880 --> 00:17:48,280 Pues, este. 330 00:17:48,280 --> 00:17:50,120 Si es un método para usar desde fuera. 331 00:17:56,440 --> 00:18:14,720 A este se le pasa, a este se le pasa un objeto de tipo 332 00:18:14,720 --> 00:18:18,040 aplicación que, por tanto, tendrá su nombre, su versión y 333 00:18:18,040 --> 00:18:18,640 su tamaño. 334 00:18:18,640 --> 00:18:20,920 Porque eso es lo que se le pasa, un objeto de tipo aplicación, 335 00:18:20,920 --> 00:18:23,280 con su nombre, su versión y su tamaño. 336 00:18:23,280 --> 00:18:24,240 ¿Qué hace? 337 00:18:24,240 --> 00:18:28,080 Busca en el almacén uno que se llame igual. 338 00:18:28,080 --> 00:18:30,600 Mira a ver si la versión del que ha encontrado que se llama 339 00:18:30,600 --> 00:18:34,840 igual es la misma o es superior. 340 00:18:34,840 --> 00:18:37,640 Asumimos que el caso de que sea inferior no se va a dar. 341 00:18:37,640 --> 00:18:40,800 Que el almacén siempre tiene versiones superiores. 342 00:18:40,800 --> 00:18:44,320 Si encuentra una y la versión es la misma, 343 00:18:44,320 --> 00:18:46,320 como el objeto tiene que volver igual, 344 00:18:46,320 --> 00:18:48,000 porque desde el momento en que ponemos ahí que hay que 345 00:18:48,000 --> 00:18:50,280 devolver una, hay que devolver un objeto, pues, 346 00:18:50,280 --> 00:18:52,880 en ese caso no tendría nada que devolver porque no hay nada que 347 00:18:52,880 --> 00:18:53,400 actualizar. 348 00:18:53,400 --> 00:18:55,160 Devolvería null, que null es un objeto. 349 00:18:55,160 --> 00:18:58,560 Luego es válido como valor de retorno porque es null. 350 00:18:58,560 --> 00:19:00,680 Que la aplicación del almacén es más reciente, 351 00:19:00,680 --> 00:19:02,680 pues, devuelve una copia de esa. 352 00:19:02,680 --> 00:19:06,640 Devuelve una copia de la más reciente. 353 00:19:06,640 --> 00:19:09,720 Y ya está, es lo que va a hacer ese método. 354 00:19:09,720 --> 00:19:17,200 Pues, venga, ¿qué habéis hecho aquí? 355 00:19:17,200 --> 00:19:18,720 Bueno, pues, otra vez lo de siempre. 356 00:19:18,720 --> 00:19:21,600 Parámetro de búsqueda, una aplicación. 357 00:19:21,600 --> 00:19:24,560 Tenemos que encontrar en el array algo. 358 00:19:24,560 --> 00:19:27,880 Pues, de nuevo, recorrer el array. 359 00:19:27,880 --> 00:19:31,720 En este caso, el criterio de búsqueda, ¿cuál va a ser? 360 00:19:31,720 --> 00:19:35,160 Un nombre igual que el nombre de esta. 361 00:19:35,160 --> 00:19:38,000 Pues, tenemos el array a recorrer, 362 00:19:38,000 --> 00:19:42,560 el criterio de búsqueda, que es que el nombre en el array sea 363 00:19:42,560 --> 00:19:43,920 igual que el nombre de aquí. 364 00:19:43,920 --> 00:19:46,120 Y una vez que hemos encontrado ya, 365 00:19:46,120 --> 00:19:48,440 se decide qué se hace, lo de siempre. 366 00:19:48,440 --> 00:19:51,160 Que recorro, ¿cuál es mi criterio de búsqueda? 367 00:19:51,200 --> 00:19:53,200 Y cuando he encontrado, ¿qué hago? 368 00:19:53,200 --> 00:19:56,760 Son las 3 preguntas, ¿no? 369 00:19:56,760 --> 00:19:58,520 Las 3 preguntas de la vida. 370 00:19:58,520 --> 00:19:59,640 ¿Qué recorremos? 371 00:19:59,640 --> 00:20:01,280 El array de aplicaciones. 372 00:20:11,760 --> 00:20:12,240 Vale. 373 00:20:12,240 --> 00:20:14,640 ¿Y para qué lo recorremos? 374 00:20:14,640 --> 00:20:19,440 Para encontrar una que cumpla una condición. 375 00:20:19,440 --> 00:20:22,560 ¿Qué condición? 376 00:20:22,560 --> 00:20:26,360 Pues, la condición es que su nombre, 377 00:20:26,360 --> 00:20:28,800 y su nombre accedo con getNombre, 378 00:20:28,800 --> 00:20:34,600 sea igual que el nombre de la aplicación que me han pasado. 379 00:20:34,600 --> 00:20:35,080 ¿Vale? 380 00:20:35,080 --> 00:20:37,080 Segunda pregunta resuelta. 381 00:20:37,080 --> 00:20:39,160 Primera, recorremos el array. 382 00:20:39,160 --> 00:20:39,800 ¿Para qué? 383 00:20:39,800 --> 00:20:42,920 Para encontrar una cuyo nombre sea igual que el nombre de la 384 00:20:42,920 --> 00:20:43,720 que me han pasado. 385 00:20:43,720 --> 00:20:45,120 Segunda pregunta resuelta. 386 00:20:45,120 --> 00:20:46,160 Tercera pregunta. 387 00:20:46,160 --> 00:20:49,080 ¿Ahora qué hago con ese store de ahí que ya la he encontrado? 388 00:20:49,080 --> 00:20:50,920 ¿Qué hago con ese store de ahí? 389 00:20:50,920 --> 00:20:56,480 Pues, mirar a ver si su versión es superior a la del app. 390 00:20:56,480 --> 00:20:59,600 Y si lo es, devuelvo una copia de store de ahí. 391 00:20:59,600 --> 00:21:00,120 ¿Vale? 392 00:21:00,120 --> 00:21:02,000 Devuelvo una copia de store de ahí. 393 00:21:02,000 --> 00:21:03,040 Pues, venga, vamos a ver. 394 00:21:03,040 --> 00:21:04,800 Ya la hemos encontrado. 395 00:21:04,800 --> 00:21:08,760 Y ahora, como ya la hemos encontrado, ¿qué hacemos? 396 00:21:08,760 --> 00:21:11,240 Voy a poner esto en una llave, aunque no haría falta, 397 00:21:11,240 --> 00:21:13,480 porque va en un if, porque, bueno, 398 00:21:13,480 --> 00:21:17,360 para que quede como más claro. 399 00:21:17,360 --> 00:21:18,600 Ya la hemos encontrado. 400 00:21:18,600 --> 00:21:20,960 ¿Qué hacemos con ella? 401 00:21:20,960 --> 00:21:25,720 Pues, vamos a ver si la versión de la que está en el almacén y 402 00:21:25,720 --> 00:21:32,520 su versión la sacamos con el método get correspondiente, 403 00:21:32,520 --> 00:21:36,800 si su versión es mayor que la versión de la que me acaban de 404 00:21:36,800 --> 00:21:37,300 pasar. 405 00:21:40,880 --> 00:21:43,720 Porque si es mayor que la que me acaban de pasar, 406 00:21:43,720 --> 00:21:49,200 entonces tengo que hacer una copia de esta y devolverla. 407 00:21:49,200 --> 00:21:51,080 Eso es lo que tenemos que hacer. 408 00:21:51,080 --> 00:21:53,880 Si se cumple esta condición, tenemos que hacer una copia de 409 00:21:53,880 --> 00:21:55,240 esta y devolverla. 410 00:21:55,240 --> 00:21:57,840 Bien ahí o bien usando, efectivamente, 411 00:21:57,840 --> 00:21:59,720 ya que lo tenemos que hacer varias veces, 412 00:21:59,720 --> 00:22:01,680 podemos hacer un método auxiliar que lo haga. 413 00:22:01,680 --> 00:22:05,040 Voy a hacerlo ahí para que quede bien claro lo que es hacer una 414 00:22:05,040 --> 00:22:07,840 copia, etcétera. 415 00:22:07,840 --> 00:22:09,080 Vale. 416 00:22:09,080 --> 00:22:13,320 Como es superior la versión de esta que la versión de la que 417 00:22:13,320 --> 00:22:18,200 me han pasado, lo que hay que hacer es esto de aquí. 418 00:22:18,200 --> 00:22:28,280 Hacer copia de esta y devolverla. 419 00:22:28,280 --> 00:22:31,600 Y que nadie me diga returnearla o le parto la cabeza. 420 00:22:31,600 --> 00:22:32,600 Devolverla. 421 00:22:32,600 --> 00:22:33,100 Vale. 422 00:22:38,040 --> 00:22:42,560 Pues, venga, vamos a hacer una copia, ala, pasito a paso, 423 00:22:42,600 --> 00:22:44,960 para tenerlo y tenerlo muy claro. 424 00:22:44,960 --> 00:22:46,360 Pues, es un objeto aplicación. 425 00:22:46,360 --> 00:22:48,200 Vamos a instanciar uno nuevo. 426 00:22:48,200 --> 00:22:51,240 Venga, vamos a instanciar un objeto aplicación. 427 00:22:51,240 --> 00:22:52,800 New aplicación. 428 00:22:52,800 --> 00:22:55,760 Yo la otra vez hice la versión más extendida del mundo, 429 00:22:55,760 --> 00:22:59,040 que es, me hago un objeto aplicación enterito. 430 00:22:59,040 --> 00:23:00,120 Le fijo los valores. 431 00:23:13,440 --> 00:23:29,240 Se los fijo setTamaño, getTamaño, 432 00:23:29,240 --> 00:23:41,440 y ahora e.setVersión, getVersión y la devuelvo. 433 00:23:41,440 --> 00:23:42,560 O sea, me lo he hecho todo. 434 00:23:49,960 --> 00:23:53,280 Entonces, esto sería todo igual que lo hice la otra vez, 435 00:23:53,280 --> 00:23:55,040 paso a paso. 436 00:23:55,040 --> 00:23:59,000 Me hice un objeto nuevo, un new, lo cual significa otro espacio 437 00:23:59,000 --> 00:24:00,680 en memoria, copia, otro espacio. 438 00:24:00,680 --> 00:24:03,800 Porque me hice un new, apuntado por la dirección a. 439 00:24:03,800 --> 00:24:08,000 Le fijo como valores los mismos que tiene el otro, 440 00:24:08,000 --> 00:24:10,000 para que sea una copia. 441 00:24:10,000 --> 00:24:11,240 Y ahora lo devuelvo. 442 00:24:11,240 --> 00:24:13,600 Es lo mismo que hice. 443 00:24:13,600 --> 00:24:16,240 Entonces, hombre, como este ejercicio parece que va de 444 00:24:16,240 --> 00:24:18,960 hacer copias, porque ya es la segunda vez que hacemos lo 445 00:24:18,960 --> 00:24:22,200 mismo, pues, podemos efectivamente plantearnos 446 00:24:22,200 --> 00:24:23,920 empezar a compactar, ¿vale? 447 00:24:23,920 --> 00:24:26,400 Pues, como lo que me habéis enseñado vosotros, por ejemplo. 448 00:24:29,320 --> 00:24:31,080 Entonces, ¿vale? 449 00:24:31,080 --> 00:24:34,200 Podemos plantearnos empezar a compactar. 450 00:24:34,200 --> 00:24:36,160 A ver, uno podría decirme, hombre, 451 00:24:36,160 --> 00:24:39,640 ya que tienes un constructor con parámetros, 452 00:24:39,800 --> 00:24:44,240 pues, en lugar de crear el objeto sin valores y luego setearlo, 453 00:24:44,240 --> 00:24:48,600 perdón, fijarlos o como queráis, pues, 454 00:24:48,600 --> 00:24:51,280 hombre, llama al constructor con parámetros y se los pasas. 455 00:24:51,280 --> 00:24:55,600 Mira, ya con eso parece que estamos acortando un poco. 456 00:24:55,600 --> 00:24:58,320 Pero a ver, es que esta clase la hemos hecho nosotros, ojo. 457 00:24:58,320 --> 00:25:00,880 Pero muchísimas veces las clases que usamos no las hemos hecho 458 00:25:00,880 --> 00:25:05,040 nosotros y tendremos que adaptarnos a los constructores 459 00:25:05,040 --> 00:25:06,680 que hayan. 460 00:25:06,680 --> 00:25:11,320 Y esta modalidad, crear el objeto sin parámetros y luego tener 461 00:25:11,320 --> 00:25:17,000 que llamar al set a 1x1, es un patrón de hacer las cosas muy 462 00:25:17,000 --> 00:25:18,120 habitual, ¿vale? 463 00:25:18,120 --> 00:25:19,680 Es un patrón de hacerlas muy habitual. 464 00:25:19,680 --> 00:25:22,640 Digo, para que os vayan sonando las estructuras básicas que 465 00:25:22,640 --> 00:25:23,960 vais a ir encontrando. 466 00:25:23,960 --> 00:25:27,120 Pero, bueno, como nosotros aquí hemos hecho la clase app y 467 00:25:27,120 --> 00:25:31,080 hemos creado el constructor con 3 parámetros y no solo lo hemos 468 00:25:31,080 --> 00:25:32,720 creado, sino que lo tenemos público, 469 00:25:32,720 --> 00:25:35,440 es decir, lo hemos ofrecido al exterior, pues, venga, 470 00:25:35,440 --> 00:25:36,240 vamos a usarlo. 471 00:25:36,240 --> 00:25:37,880 Uh, no quería abrir esto. 472 00:25:37,880 --> 00:25:40,760 Vamos a usarlo, por ejemplo, y nos hacemos una versión más 473 00:25:40,760 --> 00:25:45,440 comprimida de esta manera, ¿verdad? 474 00:25:45,440 --> 00:25:48,640 Hacemos esto. 475 00:25:48,640 --> 00:25:52,040 Pongo el, no sé cuál iba antes, si tamaño o versión. 476 00:25:52,040 --> 00:25:54,720 Va primero versión y luego tamaño. 477 00:25:54,720 --> 00:26:04,040 Va primero versión y luego tamaño. 478 00:26:05,440 --> 00:26:13,440 ¿Vale? 479 00:26:13,440 --> 00:26:17,520 Uy, perdón, que me he pasado con el copia. 480 00:26:17,520 --> 00:26:19,720 Así, vale. 481 00:26:19,720 --> 00:26:25,080 Con lo cual esto ya me lo he quitado de en medio, ¿vale? 482 00:26:25,080 --> 00:26:28,800 Ya un poquito he simplificado la parte de hacer copia y 483 00:26:28,800 --> 00:26:29,320 devolverla. 484 00:26:29,320 --> 00:26:31,360 Un poquito la he simplificado gracias a que tengo el 485 00:26:31,360 --> 00:26:33,360 constructor con parámetros. 486 00:26:33,360 --> 00:26:36,280 Lo he llamado dándole directamente los 3 parámetros 487 00:26:36,280 --> 00:26:37,560 que quiero. 488 00:26:37,560 --> 00:26:39,000 Vale. 489 00:26:39,000 --> 00:26:42,400 De nuevo, hombre, ya que estoy, voy a seguir compactando. 490 00:26:42,400 --> 00:26:45,720 Crea el objeto y devolverlo, pues, ya de paso, 491 00:26:45,720 --> 00:26:47,800 vamos a mandárselo al propio retún. 492 00:26:47,800 --> 00:26:50,600 Al propio retún vamos a mandarle directamente ya el new. 493 00:26:50,600 --> 00:26:52,560 En lugar de esta variable intermedia, 494 00:26:52,560 --> 00:26:54,720 esta variable intermedia que no me vale para nada, 495 00:26:54,720 --> 00:27:00,280 esta variable intermedia, vamos directamente a hacer retún 496 00:27:00,280 --> 00:27:01,200 todo el new. 497 00:27:01,200 --> 00:27:03,640 Pues, otra forma de dejarlo más bonito, ¿no? 498 00:27:09,760 --> 00:27:10,260 Así. 499 00:27:15,640 --> 00:27:18,520 ¿Vale? 500 00:27:18,520 --> 00:27:23,080 Vale, pues, hombre, eso que he hecho paso a paso, pues, 501 00:27:23,080 --> 00:27:24,920 directamente ya lo meto en el retún. 502 00:27:24,920 --> 00:27:29,520 Devuélveme un nuevo objeto aplicación cuyos valores sean 503 00:27:29,520 --> 00:27:32,000 los mismos que el del almacén que acabas de encontrar, 504 00:27:32,000 --> 00:27:33,520 que su versión es mayor. 505 00:27:33,520 --> 00:27:34,680 Ya está. 506 00:27:34,680 --> 00:27:38,560 Que, además, ¿uno quiere meter esto en otro método y llamarlo? 507 00:27:38,560 --> 00:27:40,560 Como he dicho vosotros, bueno, pues, ya está. 508 00:27:40,560 --> 00:27:42,840 Lo que pasa es que en este caso ya hay un método que lo hace, 509 00:27:42,840 --> 00:27:44,840 lo que pasa es que hay que implementar una interfaz y por 510 00:27:44,840 --> 00:27:46,840 eso no lo vamos a usar ahora porque no entendemos la 511 00:27:46,840 --> 00:27:47,340 interfaz. 512 00:27:50,840 --> 00:27:51,320 ¿Vale? 513 00:27:51,320 --> 00:27:56,960 Lo que nos importa ahora sobre todo es que el new te habilita 514 00:27:56,960 --> 00:27:58,000 un espacio nuevo. 515 00:27:58,000 --> 00:28:00,320 Entonces, es otro objeto distinto. 516 00:28:00,320 --> 00:28:02,440 Que luego yo quiero que los valores sean iguales. 517 00:28:02,440 --> 00:28:04,000 Bueno, pues, voy copiando uno y otro. 518 00:28:04,000 --> 00:28:05,640 Pero serán 2 objetos distintos. 519 00:28:05,640 --> 00:28:10,920 Vale, entonces, los pasos que me he ido cepillando para 520 00:28:10,920 --> 00:28:14,160 compactar con esa línea está claro, ¿no? 521 00:28:14,160 --> 00:28:15,600 ¿Está claro? 522 00:28:15,600 --> 00:28:16,480 ¿A nadie le angustia? 523 00:28:21,760 --> 00:28:22,260 Bueno. 524 00:28:28,960 --> 00:28:29,440 ¿Vale? 525 00:28:29,440 --> 00:28:38,840 Pues, entonces, este método, no miréis, no pongáis la manita 526 00:28:38,840 --> 00:28:39,760 ahí. 527 00:28:39,760 --> 00:28:42,000 Decidme sin poner la manita. 528 00:28:42,000 --> 00:28:46,760 ¿Por qué me sigue apareciendo roja la línea de arriba? 529 00:28:46,760 --> 00:28:48,600 ¿Por qué me sigue apareciendo rojo ahí? 530 00:28:48,600 --> 00:28:51,080 Porque el compilador le dice, sí, muy bonito, 531 00:28:51,080 --> 00:28:53,080 muy estupendo, pero sigue sin gustarme. 532 00:28:53,560 --> 00:28:55,040 Le falta un valor de 8. 533 00:28:55,040 --> 00:28:57,520 No es de 8. 534 00:28:57,520 --> 00:28:58,080 Le falta. 535 00:28:58,080 --> 00:28:59,320 Este no es suficiente. 536 00:28:59,320 --> 00:28:59,820 No. 537 00:28:59,820 --> 00:29:00,320 No. 538 00:29:00,320 --> 00:29:02,680 No, porque este es de 8. 539 00:29:02,680 --> 00:29:03,180 Sí. 540 00:29:03,180 --> 00:29:05,080 Y no puede mirar fuera del compu. 541 00:29:05,080 --> 00:29:06,040 Efectivamente. 542 00:29:06,040 --> 00:29:09,440 O sea, este método va a funcionar perfectamente si 543 00:29:09,440 --> 00:29:13,280 encuentra la aplicación y si la versión es mayor. 544 00:29:13,280 --> 00:29:18,600 Pero si no se dan ambas cosas, no devuelve nada. 545 00:29:18,600 --> 00:29:21,200 Y el método tiene que devolver algo siempre, sí o sí. 546 00:29:21,200 --> 00:29:22,560 Pase lo que pase. 547 00:29:22,560 --> 00:29:24,160 Encuentre la aplicación o la encuentre. 548 00:29:24,160 --> 00:29:26,000 Sea mayor la versión o no lo sea. 549 00:29:26,000 --> 00:29:29,360 Entonces, este método solo me hace el retún en un caso muy 550 00:29:29,360 --> 00:29:30,240 concreto. 551 00:29:30,240 --> 00:29:33,320 Y es en el caso de que esto sea true y esto sea true. 552 00:29:33,320 --> 00:29:37,320 Pero si algo de esto no es true, entonces, 553 00:29:37,320 --> 00:29:39,800 yo siempre tengo que salir de este método. 554 00:29:39,800 --> 00:29:42,240 Bueno, pues, entonces, aquí, ¿veis por qué no me gusta a mí 555 00:29:42,240 --> 00:29:44,740 poner las llaves y cuando hay solo una línea no pongo llaves? 556 00:29:44,740 --> 00:29:49,600 Porque al final aparece aquí un chorizo muy feo. 557 00:29:49,600 --> 00:29:50,100 ¿Vale? 558 00:29:50,100 --> 00:29:51,980 Entonces, cuando aparece un chorizo muy feo, 559 00:29:51,980 --> 00:29:53,700 lo ideal es irlas marcando. 560 00:29:53,700 --> 00:29:56,260 Esta es la llave de lib de no sé qué. 561 00:29:56,260 --> 00:29:58,340 Esta es la llave de lib de no sé cuántos. 562 00:30:01,420 --> 00:30:04,820 Esta es la del for. 563 00:30:04,820 --> 00:30:07,300 Oye, un momento, ya se pierde el formato. 564 00:30:07,300 --> 00:30:10,500 Vale, pues, entonces, cuando el for ha terminado, 565 00:30:10,500 --> 00:30:13,660 si nosotros hemos llegado a este punto, si hemos llegado ahí, 566 00:30:13,660 --> 00:30:16,740 es porque nunca ha salido por aquí. 567 00:30:16,740 --> 00:30:17,580 ¿Y eso por qué es? 568 00:30:17,580 --> 00:30:20,940 Porque no encontró la aplicación o en caso de encontrarla, 569 00:30:20,940 --> 00:30:23,100 su versión no era superior. 570 00:30:23,100 --> 00:30:25,300 Entonces, en ambos casos queremos que devuelva null. 571 00:30:25,300 --> 00:30:27,220 Es lo que nos dicen los requisitos. 572 00:30:27,220 --> 00:30:30,700 Pues, aquí es el momento de decirlo. 573 00:30:30,700 --> 00:30:33,060 Aquí es el momento de decirlo. 574 00:30:33,060 --> 00:30:36,020 Y decir, oye, si me has salido del for, 575 00:30:36,020 --> 00:30:37,260 es que por aquí no entraste. 576 00:30:37,260 --> 00:30:39,560 Porque si no habrías terminado el método, obviamente, 577 00:30:39,560 --> 00:30:41,980 lo habrías terminado y no habría más que hacer. 578 00:30:41,980 --> 00:30:45,620 Entonces, en este caso, returno. 579 00:30:45,620 --> 00:30:47,620 Y ahora ya sí que se calla. 580 00:30:47,620 --> 00:30:48,120 ¿Vale? 581 00:30:51,620 --> 00:30:59,540 Bueno, pues, ya tenemos, creo, la clase almacén de aplicaciones 582 00:30:59,540 --> 00:31:02,540 con todas las cosas que se pueden hacer con él. 583 00:31:02,540 --> 00:31:05,460 La tenemos, creo, que completa. 584 00:31:05,460 --> 00:31:08,260 Vale, la tenemos creo que completa. 585 00:31:08,260 --> 00:31:12,300 Hay una tercera entidad en mi aplicación, el teléfono. 586 00:31:12,300 --> 00:31:14,740 Tenemos la entidad la aplicación, 587 00:31:14,740 --> 00:31:17,580 la entidad almacén de aplicaciones y la entidad 588 00:31:17,580 --> 00:31:18,540 teléfono. 589 00:31:18,540 --> 00:31:20,420 El que fuera que hizo esto decidió con esas 3, 590 00:31:20,420 --> 00:31:21,660 tenía suficiente. 591 00:31:21,660 --> 00:31:25,620 Y luego ya la clase main que ya hace que exista un teléfono, 592 00:31:25,620 --> 00:31:28,100 que existan aplicaciones, que exista lo que sea. 593 00:31:28,100 --> 00:31:29,940 Eso ya lo hace la clase main. 594 00:31:29,940 --> 00:31:33,780 Vale, pues, nos falta hacer la clase teléfono, 595 00:31:33,780 --> 00:31:36,340 ver qué puede hacer un teléfono con las aplicaciones, 596 00:31:36,340 --> 00:31:39,380 qué puede hacer, meterlo en métodos. 597 00:31:39,380 --> 00:31:42,260 Y luego ya hacer la propia aplicación de gestión. 598 00:31:42,260 --> 00:31:46,180 La aplicación que ya sí que estará instalada y que será la 599 00:31:46,220 --> 00:31:48,460 que se lance, la que haga cosas con el teléfono, 600 00:31:48,460 --> 00:31:51,300 le ponga aplicaciones, se las quite, etcétera. 601 00:31:51,300 --> 00:31:54,900 Venga, vamos a parar unos minutejos.