Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Clase 29-01-24 - 2 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 29 de enero de 2024 por Raquel G.

9 visualizaciones

Descargar la transcripción

Bueno, pues ahora este objeto puede llamar a todos los métodos que hemos hecho, 00:00:00
vamos a probar si los métodos que hemos hecho están bien, 00:00:09
vamos a probarlos, ¿no? 00:00:11
Este objeto está ya inicializado con unas cuantas aplicaciones, 00:00:12
tiene ya unas cuantas ahí, estas de aquí. 00:00:16
Vamos a probar alguno de los métodos que hemos hecho, ¿vale? 00:00:20
Entonces, el método de listar, por ejemplo, 00:00:25
vamos a listar las aplicaciones. 00:00:31
A ver si es verdad que este método de listar lo hace bien. 00:00:34
Vale. 00:00:37
Vale, este es el primer método que mostraríamos, ¿verdad? 00:00:51
Perdón, este es el método que vamos a probar. 00:00:55
Este que lista las aplicaciones que tiene el objeto. 00:00:58
Yo he creado este objeto, me tendrá que listar, pues, 00:01:02
Minecraft y su tamaño, que es 10. 00:01:05
Lost of Legends y su tamaño, que es 33. 00:01:06
Vale, todos sabéis lo que significa, yo ni idea. 00:01:09
Esto como, este en particular, este enunciado como lo ha 00:01:11
escrito Estefano, por eso veis que está medio en italiano, 00:01:14
medio raro. 00:01:17
Vale, a ver, ahora hago yo la pregunta. 00:01:21
Voy a ejecutar este mail. 00:01:24
¿Qué me va a salir en pantalla? 00:01:28
Qué sudores, estás menopáusito. 00:01:30
Sí, algo así. 00:01:32
Bueno. 00:01:33
¿Qué me va a salir por pantalla cuando ejecute yo este mail? 00:01:39
No ejecutéis este mail. 00:01:48
Si yo ejecuto este mail, ¿qué me va a salir por pantalla y 00:01:50
por qué? 00:01:56
Nada ya, porque ya lo habéis probado. 00:01:57
Eso sí, eso sí, parece evidente. 00:02:01
Vamos a ver, ese método me devuelve una cadena. 00:02:04
Eso no significa que sea obligatorio que yo asigne el 00:02:08
resultado del método a ningún sitio. 00:02:12
En realidad no es obligatorio. 00:02:13
¿Vale? 00:02:17
No hace falta que yo en realidad lo asigne a ningún sitio. 00:02:18
En realidad no se lo tengo por qué asignar a ningún lado. 00:02:27
Yo lo puedo llamar, pero claro, si no se lo asigno a ningún 00:02:30
sitio, el valor de retorno se va a la basura. 00:02:33
Es un poco estúpido, ¿no? 00:02:38
Un poco estúpido llamar a un método para que me devuelva 00:02:40
algo o valor de retorno y no usar ese valor de retorno. 00:02:43
Es un poco estúpido. 00:02:46
Bueno, pues vamos a usar ese valor de retorno, claro. 00:02:47
Vamos a usarlo en particular para mandárselo a un sistema o 00:02:50
para que lo muestre, para mandárselo. 00:02:54
¿Vale? 00:02:58
Esto ya sí, en el caso de que el método esté bien hecho, 00:03:00
que no lo sabemos, esto ya sí, el valor de retorno del método 00:03:03
me mostrará lo que sea. 00:03:09
Vamos a ejecutarlo a ver si es verdad que está bien hecho. 00:03:11
Pues sí, me está mostrando el nombre de la aplicación, 00:03:17
el tamaño, guión, nombre de la aplicación y tamaño, guión, 00:03:26
nombre de la aplicación y tamaño. 00:03:30
Y así con todas. 00:03:32
Acaba con el guión, claro, acaba con un guión, pues, 00:03:35
porque me va concatenando el nombre de la aplicación, 00:03:38
tamaño y guión. 00:03:40
Bueno, ese es el aspecto que hemos decidido, 00:03:44
pero vamos a edicionar otra cosa. 00:03:45
¿Vale? 00:03:48
Silencio. 00:03:50
Vale, por ejemplo, pues, lo que ha hecho él. 00:03:54
Hombre, ¿y si te las muestra una detrás de otra con un salto de 00:03:57
línea? 00:04:02
Vale, o sea, no os olvidéis de los caracteres de escape que 00:04:03
existen. 00:04:05
No tengo el roto. 00:04:06
No os olvidéis. 00:04:09
¿Vale? 00:04:11
A ver. 00:04:11
Los char, los caracteres son los que conocemos de toda la vida, 00:04:16
¿no? 00:04:24
Esto es un carácter, esto es otro, esto es otro, 00:04:26
esto es otro, ¿vale? 00:04:29
Y esos caracteres me forman las cadenas. 00:04:31
Pero en la tabla ASCII, que es la que recoge, 00:04:33
la tabla ASCII, que es la que recoge todos los caracteres 00:04:37
codificables, todos los caracteres, 00:04:41
también hay caracteres como saltos de línea, tabuladores, 00:04:44
etcétera, que también son codificables y también son 00:04:48
escribibles. 00:04:52
Entonces, esos son los caracteres de escape. 00:04:53
Entonces, un salto de línea. 00:04:55
¿Cómo se escribe un salto de línea? 00:04:56
Así. 00:04:59
Eso es un salto de línea. 00:05:00
¿Cómo se escribe un tabulador? 00:05:01
Así, ¿vale? 00:05:03
Esta es la barrita de escape que se llama. 00:05:05
Entonces, cuando nos encontramos esta barrita, 00:05:07
significa, oye, que lo que viene después no es la T. 00:05:13
Lo que viene después no es la T. 00:05:16
Lo que viene después, interprétalo como carácter de 00:05:18
escape, ¿vale? 00:05:20
Pues la T es el carácter tabulador. 00:05:21
Cuando nos encontramos la barra, oye, 00:05:24
que lo que viene detrás no es el carácter N, 00:05:26
lo que viene detrás es un carácter especial, 00:05:28
el salto de línea, ¿vale? 00:05:30
Familiarizaros con esos. 00:05:32
Con los caracteres que son también imprimibles, 00:05:34
el salto de línea es imprimible, el tabulador es imprimible, 00:05:38
pero que a la hora de escribirlos, 00:05:40
se escriben de esta manera. 00:05:43
Y están en la tabla ASCII todos. 00:05:45
Entonces, ¿que queremos separar en lugar de por guiones, 00:05:47
por saltos de línea, porque lo vamos a ver y nos queda más 00:05:51
bonito? 00:05:53
Bueno, pues cuando hacemos en el método de lista apps la 00:05:54
concatenación, en lugar de concatenar con el guión, 00:05:58
vamos a concatenarlo con este carácter, 00:06:01
que es un carácter de la tabla ASCII, ¿vale? 00:06:03
Aquí podemos poner cualquier cosa de la tabla ASCII, 00:06:07
cualquiera, los caracteres que conocemos y los otros. 00:06:10
Bueno, pues venga, vamos a probar esta versión. 00:06:15
Pues, hala, hombre, así se ve más bonito, ¿vale? 00:06:24
Bueno, esto es para recordar que en la tabla ASCII hay un montón 00:06:29
de caracteres, hay muchísimos y muchos de ellos son 00:06:32
interesantes ahora de formatear salidas. 00:06:35
Entonces, no nos olvidemos de que existen a la hora de darle 00:06:37
formato a las salidas por consola para que queden más 00:06:41
bonitas. 00:06:43
Bueno, pues nuestro método de lista apps, 00:06:47
pues parece que funciona. 00:06:49
Nos da el nombre y el tamaño. 00:06:51
Vale, ¿algún otro método por ahí que probar? 00:06:53
Bueno, podemos probar el de cambiar versión, ¿vale? 00:06:58
A ver, callaos. 00:07:02
Ya venís hablados del recreo. 00:07:05
Vale, venga, pues vamos a probar a cambiar la versión de una y 00:07:08
volver a mostrarlas. 00:07:11
A ver si la, ah, no, es que el de mostrar no muestra la 00:07:13
versión, entonces no vamos a verlo. 00:07:15
Vamos a hacer una versión de lista apps 2 que nos muestra 00:07:18
también la versión para ver si nos cambia, 00:07:26
si el método cambiar versión funciona. 00:07:28
Vamos a copiar y pegar este y vamos a hacer una versión 2 de 00:07:32
lista apps. 00:07:39
Los guiones es que son tan feos en Java, 00:07:43
se usan tan poco que lo quito. 00:07:47
Lista apps 2. 00:07:48
Y vamos a concatenar con el lugar, con el tamaño y con la 00:07:50
versión, ¿vale? 00:07:55
O sea, me he limitado a hacer otra versión del listado de 00:07:59
aplicaciones, otra versión que me muestra nombre y versión, 00:08:02
en lugar de nombre y tamaño. 00:08:06
Nombre y versión. 00:08:08
Vale, lo vamos a hacer para ver si funciona el método de 00:08:10
cambiar versión. 00:08:13
Vamos a probarlo. 00:08:14
Vamos a la aplicación que se llama Minecraft, esta de aquí, 00:08:16
a esta, a esta. 00:08:24
Vamos a cambiar la versión. 00:08:33
Tenía la 1, tenía la 1. 00:08:35
Vamos a ponerle la versión 2. 00:08:37
Y ahora vamos a volver a listarlas. 00:08:40
Vamos a volver a listarlas, pero con la versión 2 del método 00:08:45
para que me liste las versiones, a ver si es verdad que ha 00:08:49
cambiado. 00:08:51
Pues, venga. 00:08:54
Estamos usando el main, ups, estamos usando el main para 00:08:56
hacer pruebas. 00:08:59
Este no es el main de nuestra aplicación. 00:09:00
Es un main para hacer pruebas de los métodos que estamos 00:09:02
haciendo. 00:09:04
Pues, venga, vamos a ver si el método cambiar versión lo hemos 00:09:05
hecho bien o no. 00:09:09
Entonces, volvemos a ejecutar esto. 00:09:12
Y inicialmente el Minecraft tenía la 1. 00:09:16
Y después de llamar a versión, efectivamente, 00:09:21
al cambiar versión, lo ha cambiado a la 2. 00:09:23
Entonces, parece que ese método también está funcionando, 00:09:26
el de cambiar versión. 00:09:28
Una única prueba, no es que sea un conjunto de pruebas muy 00:09:30
grande, pero, bueno, son métodos pequeñitos. 00:09:33
De la fase de pruebas, ¿habéis visto ya cosas en entornos de 00:09:40
desarrollo? 00:09:42
No. 00:09:45
Creación de casos de prueba, métodos de caja blanca, 00:09:47
caja negra y Java Unit. 00:09:50
¿No suenan las palabras que os digo? 00:09:52
PÚBLICO 1. Sí, sí, pero las ha mencionado ya. 00:09:53
PÚBLICO 2. Vale. 00:09:56
Bueno, que con 2 horas tampoco necesito tiempo, mucho más. 00:09:58
Vale. 00:10:03
A ver, pues, ya está, ¿qué más métodos podemos probar? 00:10:05
Ya que tenemos aquí el main, ¿algún otro método? 00:10:08
Cambiar versión, incorporar aplicación. 00:10:12
Vamos a incorporarle una aplicación y luego la listamos 00:10:15
otra vez. 00:10:18
A ver si incorporar aplicación está bien hecho. 00:10:19
Pues, venga, vámonos al main. 00:10:21
Vamos a incorporar al almacén una aplicación que voy a crear 00:10:23
aquí mismo. 00:10:31
Una aplicación que se llame otra, que sea la versión 4 y que 00:10:33
ocupe 80 gigas. 00:10:40
¿Vale? 00:10:43
Porque al método incorporar aplicación, 00:10:45
hay que pasarle un objeto aplicación. 00:10:48
Eso es lo que hay que pasar en un objeto aplicación. 00:10:50
Vale, pues, nada, ahí lo creo. 00:10:52
Lo creo y en el momento de crearlo, pa, se lo paso. 00:10:55
Lo creo y se lo paso. 00:10:59
Y ahora voy a volver a listar a ver si está, 00:11:01
a ver si lo ha incorporado. 00:11:02
Pues, venga, vamos a listar las aplicaciones, 00:11:06
a ver si lo ha incorporado. 00:11:11
A ver si aquí no peta o qué ocurre. 00:11:14
Pues, venga, petar no ha petado y no la ha incorporado, ¿verdad? 00:11:19
La nueva aplicación, incorporar a App Store. 00:11:29
Ah, no, soy idiota, que no le metí en un, ahí, vale. 00:11:31
No lo he mostrado. 00:11:37
No sé si lo ha incorporado o no, porque no lo he mostrado. 00:11:38
Vamos a ver ahora si lo ha incorporado. 00:11:41
Sí, parece que sí. 00:11:45
Este es el primer listado. 00:11:47
Este es el segundo después de cambiar la versión. 00:11:52
Y este es el tercero después de incorporar la nueva 00:11:55
aplicación. 00:11:58
Luego, vale, lo que hemos hecho hasta ahora de esta clase, 00:12:02
los métodos que hemos hecho, parece que están bien hechos, 00:12:06
parece que están bien hechos. 00:12:09
Ala, venga, pues, vamos a seguir con más métodos. 00:12:12
Tenemos ya cambiar versión, listar aplicaciones y este. 00:12:17
Dime. 00:12:22
El que has llamado es el de añadir o el de instalar. 00:12:23
No, incorporar, este. 00:12:28
Sí, pero incorporar era el de. 00:12:30
Incorporar era el que metía una nueva aplicación al almacén. 00:12:32
Incorporar era este. 00:12:36
Este, ay. 00:12:39
Incorporar una aplicación nueva, la metí en el almacén extendiendo 00:12:41
la RAI y todo eso. 00:12:45
Es que instar, este no lo tiene, ¿no? 00:12:52
Instar lo tenía. 00:12:53
Ah, sí, perdón. 00:12:54
Sí, instar, lo que hacía era devolver una copia. 00:12:56
Este no lo he probado porque devolver esa copia ahora mismo 00:13:00
no tenemos como. 00:13:02
O sea, este método, cuando lo has llamado, te da. 00:13:11
No me lo deja, no me deja. 00:13:13
Que no te deja llamar a este método. 00:13:21
Porque estás en un main de otra clase. 00:13:24
Claro, es que entonces, si quieres llamarlo desde un main 00:13:26
de otra clase, tienes que ponerle público. 00:13:30
Claro. 00:13:34
Claro. 00:13:36
Este es que, este lo habíamos puesto aquí. 00:13:37
Lo habíamos puesto aquí porque lo habíamos puesto solo como 00:13:39
método auxiliar para usarlo desde el constructor, ¿verdad? 00:13:41
Para usarlo desde el constructor e incorporar la aplicación. 00:13:50
Pero luego dijimos, a ver, el constructor parte directamente 00:13:54
de una RAI vacío. 00:13:59
Entonces, ¿para qué vamos a usar el método de incorporar sobre 00:13:59
lo que hay si ya sabemos que la RAI está vacío? 00:14:02
Entonces, aquí ya hicimos una versión ya no usando ese método. 00:14:05
Por eso tú lo tenías comentado, ¿vale? 00:14:10
Pero era privado por eso, porque la idea no era usarlo desde 00:14:12
fuera, no era usarlo desde fuera, 00:14:16
sino usarlo desde este constructor simplemente, ¿vale? 00:14:17
Pero, bueno, lo hemos probado ahí. 00:14:21
Vale, pues, a ver, ya está, más métodos. 00:14:24
Ya solo nos falta uno de esta clase. 00:14:28
Que este es un poco más raro. 00:14:31
Vale, le pasamos una aplicación. 00:14:36
Un objeto aplicación, le pasamos un objeto aplicación. 00:14:39
Y te tiene que devolver otro objeto, otro objeto. 00:14:42
Vale, el objeto puede ser o null, ¿en qué caso? 00:14:48
Te devolverá un objeto null si el objeto aplicación que le hemos 00:14:51
pasado es de la misma versión que el que hay en el almacén para 00:14:55
ese mismo nombre. 00:14:59
Es decir, le pasamos la aplicación WhatsApp versión 3, 00:15:01
el objeto que tiene WhatsApp versión 3. 00:15:05
Él mira en el almacén y te dice, a ver, 00:15:07
en el almacén, ¿la aplicación WhatsApp tiene también la 00:15:10
versión 3 o tiene otra superior? 00:15:13
Tiene otra actualizada, tiene otra superior. 00:15:17
Si tiene también la versión 3, entonces se supone que no hay 00:15:19
nada que devolver y te devuelve null. 00:15:22
Pero si la que hay en el almacén con ese mismo nombre tiene una 00:15:25
versión superior a la que le hemos pasado, 00:15:28
entonces te devuelve una nueva copia, 00:15:31
una nueva copia de esa versión del almacén que es más null. 00:15:33
Te devuelve una nueva copia. 00:15:37
Entonces, esto en realidad no está muy bien expresado. 00:15:41
Esto se entendería mejor este método o una copia del objeto 00:15:50
del almacén, que si no, no se entiende bien. 00:15:54
Entonces, la idea es esa. 00:16:05
La idea es, tú tienes tu almacén con las aplicaciones ahí 00:16:06
estáticas. 00:16:09
A este método le pasas un objeto aplicación. 00:16:11
Tienes que buscar cuál del almacén se llama igual, 00:16:13
cuál se llama igual, cuál se llama igual. 00:16:16
Si encuentras uno del almacén que se llama igual, 00:16:19
pero la versión es la misma, se sobreentiende que el método en 00:16:21
ese caso no tiene que hacer nada y te devuelve null. 00:16:24
Es su forma de expresarlo, no tiene que hacer nada. 00:16:26
Pero si encuentras uno del almacén que se llama igual que 00:16:28
la que le has pasado, pero su versión es más actual, 00:16:31
pues, entonces, te devuelve una nueva copia, 00:16:33
otra copia de la que hay en el almacén, 00:16:36
que tiene esa versión más o menos. 00:16:39
Eso es lo que se supone que hace este método. 00:16:41
Pues, bueno, ya que he entendido, ahora vamos a hacerlo. 00:16:44
Vamos a hacerlo de siempre. 00:16:49
Venga, trata de hacerlo. 00:16:51
Vamos a poner la cabecera para que. 00:16:55
Para ver si podías ponerlo de importar, 00:16:58
porque no sé si lo tengo completo. 00:17:00
Bueno, este era simplemente lo de siempre. 00:17:04
El array store, ampliarlo en una posición, copiar y pegar. 00:17:07
Para meter una aplicación más, si es que hace falta usar ese 00:17:10
método, si es que hace falta. 00:17:13
Para tenerlo ahí, por si hace falta meter una aplicación 00:17:16
nueva en el almacén. 00:17:18
Aunque se supone el funcionamiento global de esta 00:17:19
aplicación es que tú creas el almacén con el constructor y ya 00:17:21
no lo vuelves a tocar. 00:17:24
Se supone que es el uso, no lo vuelves a tocar. 00:17:25
Entonces, este método no se usaría. 00:17:27
Ahora, de todas formas, si te sigue no funcionando lo que 00:17:31
sea, ahora lo. 00:17:34
Vale, pues, el método que nos falta, que es el de checkUpdate, 00:17:37
será, ¿no? 00:17:43
Sí. 00:17:44
Pues, este. 00:17:45
Si es un método para usar desde fuera. 00:17:48
A este se le pasa, a este se le pasa un objeto de tipo 00:17:56
aplicación que, por tanto, tendrá su nombre, su versión y 00:18:14
su tamaño. 00:18:18
Porque eso es lo que se le pasa, un objeto de tipo aplicación, 00:18:18
con su nombre, su versión y su tamaño. 00:18:20
¿Qué hace? 00:18:23
Busca en el almacén uno que se llame igual. 00:18:24
Mira a ver si la versión del que ha encontrado que se llama 00:18:28
igual es la misma o es superior. 00:18:30
Asumimos que el caso de que sea inferior no se va a dar. 00:18:34
Que el almacén siempre tiene versiones superiores. 00:18:37
Si encuentra una y la versión es la misma, 00:18:40
como el objeto tiene que volver igual, 00:18:44
porque desde el momento en que ponemos ahí que hay que 00:18:46
devolver una, hay que devolver un objeto, pues, 00:18:48
en ese caso no tendría nada que devolver porque no hay nada que 00:18:50
actualizar. 00:18:52
Devolvería null, que null es un objeto. 00:18:53
Luego es válido como valor de retorno porque es null. 00:18:55
Que la aplicación del almacén es más reciente, 00:18:58
pues, devuelve una copia de esa. 00:19:00
Devuelve una copia de la más reciente. 00:19:02
Y ya está, es lo que va a hacer ese método. 00:19:06
Pues, venga, ¿qué habéis hecho aquí? 00:19:09
Bueno, pues, otra vez lo de siempre. 00:19:17
Parámetro de búsqueda, una aplicación. 00:19:18
Tenemos que encontrar en el array algo. 00:19:21
Pues, de nuevo, recorrer el array. 00:19:24
En este caso, el criterio de búsqueda, ¿cuál va a ser? 00:19:27
Un nombre igual que el nombre de esta. 00:19:31
Pues, tenemos el array a recorrer, 00:19:35
el criterio de búsqueda, que es que el nombre en el array sea 00:19:38
igual que el nombre de aquí. 00:19:42
Y una vez que hemos encontrado ya, 00:19:43
se decide qué se hace, lo de siempre. 00:19:46
Que recorro, ¿cuál es mi criterio de búsqueda? 00:19:48
Y cuando he encontrado, ¿qué hago? 00:19:51
Son las 3 preguntas, ¿no? 00:19:53
Las 3 preguntas de la vida. 00:19:56
¿Qué recorremos? 00:19:58
El array de aplicaciones. 00:19:59
Vale. 00:20:11
¿Y para qué lo recorremos? 00:20:12
Para encontrar una que cumpla una condición. 00:20:14
¿Qué condición? 00:20:19
Pues, la condición es que su nombre, 00:20:22
y su nombre accedo con getNombre, 00:20:26
sea igual que el nombre de la aplicación que me han pasado. 00:20:28
¿Vale? 00:20:34
Segunda pregunta resuelta. 00:20:35
Primera, recorremos el array. 00:20:37
¿Para qué? 00:20:39
Para encontrar una cuyo nombre sea igual que el nombre de la 00:20:39
que me han pasado. 00:20:42
Segunda pregunta resuelta. 00:20:43
Tercera pregunta. 00:20:45
¿Ahora qué hago con ese store de ahí que ya la he encontrado? 00:20:46
¿Qué hago con ese store de ahí? 00:20:49
Pues, mirar a ver si su versión es superior a la del app. 00:20:50
Y si lo es, devuelvo una copia de store de ahí. 00:20:56
¿Vale? 00:20:59
Devuelvo una copia de store de ahí. 00:21:00
Pues, venga, vamos a ver. 00:21:02
Ya la hemos encontrado. 00:21:03
Y ahora, como ya la hemos encontrado, ¿qué hacemos? 00:21:04
Voy a poner esto en una llave, aunque no haría falta, 00:21:08
porque va en un if, porque, bueno, 00:21:11
para que quede como más claro. 00:21:13
Ya la hemos encontrado. 00:21:17
¿Qué hacemos con ella? 00:21:18
Pues, vamos a ver si la versión de la que está en el almacén y 00:21:20
su versión la sacamos con el método get correspondiente, 00:21:25
si su versión es mayor que la versión de la que me acaban de 00:21:32
pasar. 00:21:36
Porque si es mayor que la que me acaban de pasar, 00:21:40
entonces tengo que hacer una copia de esta y devolverla. 00:21:43
Eso es lo que tenemos que hacer. 00:21:49
Si se cumple esta condición, tenemos que hacer una copia de 00:21:51
esta y devolverla. 00:21:53
Bien ahí o bien usando, efectivamente, 00:21:55
ya que lo tenemos que hacer varias veces, 00:21:57
podemos hacer un método auxiliar que lo haga. 00:21:59
Voy a hacerlo ahí para que quede bien claro lo que es hacer una 00:22:01
copia, etcétera. 00:22:05
Vale. 00:22:07
Como es superior la versión de esta que la versión de la que 00:22:09
me han pasado, lo que hay que hacer es esto de aquí. 00:22:13
Hacer copia de esta y devolverla. 00:22:18
Y que nadie me diga returnearla o le parto la cabeza. 00:22:28
Devolverla. 00:22:31
Vale. 00:22:32
Pues, venga, vamos a hacer una copia, ala, pasito a paso, 00:22:38
para tenerlo y tenerlo muy claro. 00:22:42
Pues, es un objeto aplicación. 00:22:44
Vamos a instanciar uno nuevo. 00:22:46
Venga, vamos a instanciar un objeto aplicación. 00:22:48
New aplicación. 00:22:51
Yo la otra vez hice la versión más extendida del mundo, 00:22:52
que es, me hago un objeto aplicación enterito. 00:22:55
Le fijo los valores. 00:22:59
Se los fijo setTamaño, getTamaño, 00:23:13
y ahora e.setVersión, getVersión y la devuelvo. 00:23:29
O sea, me lo he hecho todo. 00:23:41
Entonces, esto sería todo igual que lo hice la otra vez, 00:23:49
paso a paso. 00:23:53
Me hice un objeto nuevo, un new, lo cual significa otro espacio 00:23:55
en memoria, copia, otro espacio. 00:23:59
Porque me hice un new, apuntado por la dirección a. 00:24:00
Le fijo como valores los mismos que tiene el otro, 00:24:03
para que sea una copia. 00:24:08
Y ahora lo devuelvo. 00:24:10
Es lo mismo que hice. 00:24:11
Entonces, hombre, como este ejercicio parece que va de 00:24:13
hacer copias, porque ya es la segunda vez que hacemos lo 00:24:16
mismo, pues, podemos efectivamente plantearnos 00:24:18
empezar a compactar, ¿vale? 00:24:22
Pues, como lo que me habéis enseñado vosotros, por ejemplo. 00:24:23
Entonces, ¿vale? 00:24:29
Podemos plantearnos empezar a compactar. 00:24:31
A ver, uno podría decirme, hombre, 00:24:34
ya que tienes un constructor con parámetros, 00:24:36
pues, en lugar de crear el objeto sin valores y luego setearlo, 00:24:39
perdón, fijarlos o como queráis, pues, 00:24:44
hombre, llama al constructor con parámetros y se los pasas. 00:24:48
Mira, ya con eso parece que estamos acortando un poco. 00:24:51
Pero a ver, es que esta clase la hemos hecho nosotros, ojo. 00:24:55
Pero muchísimas veces las clases que usamos no las hemos hecho 00:24:58
nosotros y tendremos que adaptarnos a los constructores 00:25:00
que hayan. 00:25:05
Y esta modalidad, crear el objeto sin parámetros y luego tener 00:25:06
que llamar al set a 1x1, es un patrón de hacer las cosas muy 00:25:11
habitual, ¿vale? 00:25:17
Es un patrón de hacerlas muy habitual. 00:25:18
Digo, para que os vayan sonando las estructuras básicas que 00:25:19
vais a ir encontrando. 00:25:22
Pero, bueno, como nosotros aquí hemos hecho la clase app y 00:25:23
hemos creado el constructor con 3 parámetros y no solo lo hemos 00:25:27
creado, sino que lo tenemos público, 00:25:31
es decir, lo hemos ofrecido al exterior, pues, venga, 00:25:32
vamos a usarlo. 00:25:35
Uh, no quería abrir esto. 00:25:36
Vamos a usarlo, por ejemplo, y nos hacemos una versión más 00:25:37
comprimida de esta manera, ¿verdad? 00:25:40
Hacemos esto. 00:25:45
Pongo el, no sé cuál iba antes, si tamaño o versión. 00:25:48
Va primero versión y luego tamaño. 00:25:52
Va primero versión y luego tamaño. 00:25:54
¿Vale? 00:26:05
Uy, perdón, que me he pasado con el copia. 00:26:13
Así, vale. 00:26:17
Con lo cual esto ya me lo he quitado de en medio, ¿vale? 00:26:19
Ya un poquito he simplificado la parte de hacer copia y 00:26:25
devolverla. 00:26:28
Un poquito la he simplificado gracias a que tengo el 00:26:29
constructor con parámetros. 00:26:31
Lo he llamado dándole directamente los 3 parámetros 00:26:33
que quiero. 00:26:36
Vale. 00:26:37
De nuevo, hombre, ya que estoy, voy a seguir compactando. 00:26:39
Crea el objeto y devolverlo, pues, ya de paso, 00:26:42
vamos a mandárselo al propio retún. 00:26:45
Al propio retún vamos a mandarle directamente ya el new. 00:26:47
En lugar de esta variable intermedia, 00:26:50
esta variable intermedia que no me vale para nada, 00:26:52
esta variable intermedia, vamos directamente a hacer retún 00:26:54
todo el new. 00:27:00
Pues, otra forma de dejarlo más bonito, ¿no? 00:27:01
Así. 00:27:09
¿Vale? 00:27:15
Vale, pues, hombre, eso que he hecho paso a paso, pues, 00:27:18
directamente ya lo meto en el retún. 00:27:23
Devuélveme un nuevo objeto aplicación cuyos valores sean 00:27:24
los mismos que el del almacén que acabas de encontrar, 00:27:29
que su versión es mayor. 00:27:32
Ya está. 00:27:33
Que, además, ¿uno quiere meter esto en otro método y llamarlo? 00:27:34
Como he dicho vosotros, bueno, pues, ya está. 00:27:38
Lo que pasa es que en este caso ya hay un método que lo hace, 00:27:40
lo que pasa es que hay que implementar una interfaz y por 00:27:42
eso no lo vamos a usar ahora porque no entendemos la 00:27:44
interfaz. 00:27:46
¿Vale? 00:27:50
Lo que nos importa ahora sobre todo es que el new te habilita 00:27:51
un espacio nuevo. 00:27:56
Entonces, es otro objeto distinto. 00:27:58
Que luego yo quiero que los valores sean iguales. 00:28:00
Bueno, pues, voy copiando uno y otro. 00:28:02
Pero serán 2 objetos distintos. 00:28:04
Vale, entonces, los pasos que me he ido cepillando para 00:28:05
compactar con esa línea está claro, ¿no? 00:28:10
¿Está claro? 00:28:14
¿A nadie le angustia? 00:28:15
Bueno. 00:28:21
¿Vale? 00:28:28
Pues, entonces, este método, no miréis, no pongáis la manita 00:28:29
ahí. 00:28:38
Decidme sin poner la manita. 00:28:39
¿Por qué me sigue apareciendo roja la línea de arriba? 00:28:42
¿Por qué me sigue apareciendo rojo ahí? 00:28:46
Porque el compilador le dice, sí, muy bonito, 00:28:48
muy estupendo, pero sigue sin gustarme. 00:28:51
Le falta un valor de 8. 00:28:53
No es de 8. 00:28:55
Le falta. 00:28:57
Este no es suficiente. 00:28:58
No. 00:28:59
No. 00:28:59
No, porque este es de 8. 00:29:00
Sí. 00:29:02
Y no puede mirar fuera del compu. 00:29:03
Efectivamente. 00:29:05
O sea, este método va a funcionar perfectamente si 00:29:06
encuentra la aplicación y si la versión es mayor. 00:29:09
Pero si no se dan ambas cosas, no devuelve nada. 00:29:13
Y el método tiene que devolver algo siempre, sí o sí. 00:29:18
Pase lo que pase. 00:29:21
Encuentre la aplicación o la encuentre. 00:29:22
Sea mayor la versión o no lo sea. 00:29:24
Entonces, este método solo me hace el retún en un caso muy 00:29:26
concreto. 00:29:29
Y es en el caso de que esto sea true y esto sea true. 00:29:30
Pero si algo de esto no es true, entonces, 00:29:33
yo siempre tengo que salir de este método. 00:29:37
Bueno, pues, entonces, aquí, ¿veis por qué no me gusta a mí 00:29:39
poner las llaves y cuando hay solo una línea no pongo llaves? 00:29:42
Porque al final aparece aquí un chorizo muy feo. 00:29:44
¿Vale? 00:29:49
Entonces, cuando aparece un chorizo muy feo, 00:29:50
lo ideal es irlas marcando. 00:29:51
Esta es la llave de lib de no sé qué. 00:29:53
Esta es la llave de lib de no sé cuántos. 00:29:56
Esta es la del for. 00:30:01
Oye, un momento, ya se pierde el formato. 00:30:04
Vale, pues, entonces, cuando el for ha terminado, 00:30:07
si nosotros hemos llegado a este punto, si hemos llegado ahí, 00:30:10
es porque nunca ha salido por aquí. 00:30:13
¿Y eso por qué es? 00:30:16
Porque no encontró la aplicación o en caso de encontrarla, 00:30:17
su versión no era superior. 00:30:20
Entonces, en ambos casos queremos que devuelva null. 00:30:23
Es lo que nos dicen los requisitos. 00:30:25
Pues, aquí es el momento de decirlo. 00:30:27
Aquí es el momento de decirlo. 00:30:30
Y decir, oye, si me has salido del for, 00:30:33
es que por aquí no entraste. 00:30:36
Porque si no habrías terminado el método, obviamente, 00:30:37
lo habrías terminado y no habría más que hacer. 00:30:39
Entonces, en este caso, returno. 00:30:41
Y ahora ya sí que se calla. 00:30:45
¿Vale? 00:30:47
Bueno, pues, ya tenemos, creo, la clase almacén de aplicaciones 00:30:51
con todas las cosas que se pueden hacer con él. 00:30:59
La tenemos, creo, que completa. 00:31:02
Vale, la tenemos creo que completa. 00:31:05
Hay una tercera entidad en mi aplicación, el teléfono. 00:31:08
Tenemos la entidad la aplicación, 00:31:12
la entidad almacén de aplicaciones y la entidad 00:31:14
teléfono. 00:31:17
El que fuera que hizo esto decidió con esas 3, 00:31:18
tenía suficiente. 00:31:20
Y luego ya la clase main que ya hace que exista un teléfono, 00:31:21
que existan aplicaciones, que exista lo que sea. 00:31:25
Eso ya lo hace la clase main. 00:31:28
Vale, pues, nos falta hacer la clase teléfono, 00:31:29
ver qué puede hacer un teléfono con las aplicaciones, 00:31:33
qué puede hacer, meterlo en métodos. 00:31:36
Y luego ya hacer la propia aplicación de gestión. 00:31:39
La aplicación que ya sí que estará instalada y que será la 00:31:42
que se lance, la que haga cosas con el teléfono, 00:31:46
le ponga aplicaciones, se las quite, etcétera. 00:31:48
Venga, vamos a parar unos minutejos. 00:31:51
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
9
Fecha:
29 de enero de 2024 - 17:54
Visibilidad:
Público
Centro:
IES ROSA CHACEL
Duración:
31′ 57″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
141.49 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid