Saltar navegación

Solución simulacro 230113 parte1 - Contenido educativo - 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 16 de enero de 2023 por Stefano C.

19 visualizaciones

Descargar la transcripción

voy a grabar la clase de corrección del simulacro todo lo que vais a decir será 00:00:01
grabado y por lo tanto me dais consentimiento para que sea grabado vale entonces el enunciado 00:00:07
es sustancialmente hacer un sistema que simula unos móviles empezamos con la aplicación vale 00:00:14
esta parte de aquí entonces una aplicación a ver si puedo ver las dos cosas a la vez 00:00:21
tiene que tener 00:00:33
vamos a ver, un nombre 00:00:36
esto es una aplicación, por lo tanto tendrá un nombre 00:00:38
lo pongo aquí, string 00:00:40
nombre 00:00:42
tendrá 00:00:45
una versión, por ejemplo 00:00:48
un entero 00:00:50
sí, pero asumiendo 00:00:51
que luego después le tendré que sumar 00:00:56
uno o cosas así, a lo mejor le tengo que hacer 00:00:59
operaciones, por lo tanto 00:01:01
a lo mejor me viene bien que sea uno 00:01:03
Si tengo que pillar una versión 00:01:04
Y dar la siguiente 00:01:07
Y es una string, la tengo que pillar 00:01:08
Y transformarla en un entero 00:01:10
Sumarle uno y volver a ponerla como string 00:01:13
Entonces a lo mejor me compensa 00:01:15
Que sea un número, ¿vale? 00:01:17
Pero, lo que sea 00:01:18
No es que no se pueda hacer 00:01:19
Con 00:01:22
Si, si sea un string 00:01:22
Y un tamaño 00:01:26
Tamaño, int, size 00:01:27
¿Vale? 00:01:30
hago en inglés 00:01:34
así me quito problemas de acentos 00:01:38
y cosas por el estilo 00:01:41
vale, además 00:01:42
tiene un método ejecutar 00:01:43
vale, antes voy a hacer 00:01:47
un constructor, vale 00:01:48
public 00:01:50
app de 00:01:51
string 00:01:54
name 00:01:55
int version 00:01:57
int 00:02:00
size 00:02:02
this.name 00:02:03
es igual a name 00:02:10
this.version 00:02:11
es igual a version 00:02:14
this.size 00:02:16
es igual a size 00:02:19
vale 00:02:21
otra cosa es que 00:02:24
no quiero que desde fuera 00:02:26
mi aplicación sea modificable 00:02:28
al menos no 00:02:30
no el nombre 00:02:32
versión de tamaño 00:02:35
podría ser 00:02:38
Asumiendo que nosotros modificaremos en el futuro solo la versión 00:02:39
Pues casi esto lo podría dejar private también 00:02:45
Pero lo dejo así por posibles cambios 00:02:50
Podría ponerlos privados y luego ponerle aquí un setting get 00:02:53
Pero por ahora lo dejo lo más sencillo posible 00:02:58
Seguramente no quiero que la gente me cambie el nombre 00:03:01
Si cambia el nombre cambia la aplicación 00:03:04
Que es una aplicación nueva 00:03:06
Y ahora hay un método para ejecutarlo, entonces hay el public void execute, aquí sería ejecutar, no se ve nada, y lo único que tiene que hacer, cuidado aquí no devuelve una string sino escribe por pantalla, por lo tanto si eso, 00:03:07
Y aquí escribo la aplicación 00:03:36
Más this.name 00:03:42
Más se está ejecutando 00:03:47
Esto son lo que hacía falta de la clase app 00:03:55
La clase app es sencilla, es básica 00:04:04
Con esto me permitirá crear aplicaciones en el futuro 00:04:07
Voy, si quiero probarla, la puedo probar 00:04:11
Me puedo hacer aquí un public static void main string args 00:04:15
Y aquí lo que hago es me creo una aplicación 00:04:25
AppX es igual a newApp de aplicación, versión 1, 10 de tamaño 00:04:30
Y luego lo que hago es x.ejecutarch 00:04:43
Entonces lo que me espero lanzando esta clase de aquí 00:04:48
Es que la aplicación, aplicación porque se llama así, se está ejecutando 00:04:54
con eso ya veo que la he podido crear 00:04:59
y que se puede ejecutar 00:05:03
ya está, esto es un 00:05:05
este método 00:05:07
no lo usaré en la vida 00:05:11
es solo un método para ejecutar 00:05:13
para probar esta clase aquí 00:05:16
lo puedo poner hasta en 00:05:18
si quiero lo dejo así 00:05:19
así que tengo 00:05:21
una prueba 00:05:23
un comentario 00:05:24
en cualquier momento si quiero probar 00:05:30
Esta clase concreta, pero una clase tan sencilla 00:05:32
Que tampoco tiene mucho sentido de probar 00:05:34
¿Vale? Vamos a la segunda 00:05:35
Que tiene un poquito más de complejidad 00:05:37
Vamos a 00:05:39
Crear 00:05:41
Esto lo quito 00:05:42
Vamos a crear una nueva clase 00:05:44
Que es la clase App Store 00:05:47
Podría poner un main para probarla 00:05:50
¿Vale? Por ahora no se lo pongo, ya veamos como vamos 00:05:58
¿Vale? Entonces 00:06:00
¿Qué tiene App Store? ¿Vale? 00:06:01
Un array de apps, por lo tanto 00:06:03
app array 00:06:06
apps 00:06:12
que ahora tendréis que crear 00:06:14
de alguna forma 00:06:19
y poco más 00:06:20
lo que pone que ahora tengo 00:06:23
que hacer un constructor 00:06:25
esto será privado 00:06:26
hago un constructor 00:06:29
public 00:06:31
app store 00:06:33
lo que debería hacer 00:06:35
este app store es recibir un string 00:06:40
string 00:06:42
code 00:06:43
un código que me crea 00:06:45
las aplicaciones, ¿vale? 00:06:48
por ahora no lo voy a hacer, voy a saltarme 00:06:49
esta cosa de aquí 00:06:52
¿vale? para hacer una versión 00:06:53
más sencilla, también porque 00:06:56
esta cosa de aquí, luego simplemente 00:06:57
la sustituiré aquí y me funcionará 00:07:00
¿vale? pero como ahora quiero 00:07:02
ir a hacer cosas un poquito más complejas 00:07:04
o no sé hacerlo esto 00:07:06
pues entonces la única cosa que hago es 00:07:07
me creo un array de 00:07:09
tres 00:07:11
stores 00:07:13
de tres aplicaciones, no lo sé 00:07:16
algo así, vamos a verlo 00:07:17
como me lo hago 00:07:20
por ejemplo digo que apps 00:07:21
es igual a new app 00:07:24
de tres posiciones 00:07:28
por ejemplo 00:07:30
y ahora pongo que apps 00:07:32
de cero es igual 00:07:36
a new app 00:07:38
App 1 00:07:41
Coma 00:07:44
1,5 00:07:48
Esto lo copio 00:07:50
Tres veces 00:07:59
Apps 1, apps 2 00:08:00
Esto es app 2, app 3 00:08:05
Versión 4 00:08:08
Versión 7, números a caso 00:08:10
Esto es de 10 00:08:12
Esto es de 3 00:08:14
¿Vale? 00:08:15
Con esto, por ejemplo, ya tengo 00:08:17
un array de tres 00:08:20
en mi App Store hay tres aplicaciones 00:08:23
distintas, ¿vale? que se llaman 00:08:25
App1, App2, App3 00:08:26
con estos números de aquí no conseguiría 00:08:27
rellenar 00:08:31
un móvil 00:08:32
¿vale? entonces no podría hacer 00:08:35
la prueba de si cabe 00:08:37
¿qué pasa si 00:08:39
una cosa llena 00:08:40
intento meter algo más 00:08:42
por lo tanto aumento un poco el tamaño 00:08:44
estas son 15, estas son 00:08:46
Así que si intento poner las 3 00:08:51
No debería haber 00:08:55
¿Vale? Porque mi móvil era de 30 00:08:56
Cuando haré la prueba 00:08:58
¿Vale? 00:08:59
Esto es una forma de decir 00:09:02
Oye, mira, necesito un App Store 00:09:04
Para poder trabajar y seguir adelante 00:09:06
Pues lo hago así 00:09:09
Lo hago sin 00:09:10
La parte compleja de 00:09:11
Sacarlo desde un código que me han dado 00:09:14
¿Vale? Ahora después 00:09:16
si queréis lo cambiamos y lo hacemos con el código vale por ahora como tengo prisa y si 00:09:18
si no hago esta parte de aquí no puedo seguir adelante y no quiero liar me con una parte que 00:09:24
es reciente opcional porque si lo hago así ya la tengo pues entonces prefiero hacerlas y fijaos que 00:09:30
aquí pide un cole que luego no usa pasada la mejor pongo aquí un un comentario de el enunciado dice 00:09:36
que pilla un string pero por falta de tiempo no lo estoy haciendo de esta forma no lo sé 00:09:44
voy a la implementación de los métodos que son las cosas un poquito interesante lo tengo 00:09:53
que implementar de cara a no tengo que pensar que esto sea de tres vale pensar que esto esté 00:09:58
llenado mi ejemplo tiene tres aplicaciones cuando luego me mandaran este de aquí tendrá 00:10:04
5, cuando me darán otro tendrá 27 00:10:10
¿Vale? Entonces yo sé simplemente que 00:10:13
Una vez que se ha creado 00:10:15
Esto está rellenado con aplicaciones 00:10:16
¿Cuántas? No lo sé, ¿cuántas aplicaciones 00:10:19
Habrá? 00:10:21
Apps.length 00:10:24
¿Vale? 00:10:25
Por lo tanto voy a utilizar apps.length 00:10:27
Tened en cuenta que también este es un app store 00:10:29
Por como está 00:10:30
Planteado aquí 00:10:32
Ni se añaden 00:10:36
ni se quitan aplicaciones en el app store donde se aplica donde se añaden donde se quitan es en 00:10:38
el móvil vale por lo tanto esto es bastante estático es esto es lo cuanto la unión se 00:10:44
cambiará del app store es la versión en un futuro por ahora se queda más sencillo que 00:10:49
un app store real el app store real debería tener también la posibilidad de poder quitar 00:10:58
o meter una nueva aplicación 00:11:02
vale 00:11:03
vamos a ver que me dice 00:11:04
de todos los métodos aquí está 00:11:07
install change version list apps 00:11:09
empiezo por lo fácil 00:11:12
list apps, vale 00:11:13
public 00:11:15
list apps me devuelve un string 00:11:16
string list apps 00:11:20
list apps 00:11:22
sí, sí, ahora supo 00:11:26
lo que tiene que hacer 00:11:27
es crearme un string 00:11:32
Que contenga dentro 00:11:35
Toda la información que está aquí 00:11:36
Versión 00:11:39
Lazy 00:11:40
Que no tengo tiempo 00:11:41
Quiero hacer algo 00:11:45
¿Vale? 00:11:46
Return 00:11:47
Apps 00:11:48
No, arrays 00:11:50
Punto to string 00:11:52
De apps 00:11:56
Ya está 00:11:58
Feo 00:12:01
¿Vale? 00:12:03
Pero funciona 00:12:04
public static void main me voy a crear un objeto app store es igual a new app store de inutil 00:12:04
y luego appStore tengo que dar un nombre, miAppStore, y luego lo que hago, recordadmelo 00:12:41
que miAppStore.listApps.b, vale, como esto debe haber un string, hago un system.out.println 00:12:50
esta cosa que me crea un app store tanto está necesita un string más de string no sirve de 00:13:07
nada puede escribir cualquier cosa aquí dentro hasta dejarlo vacío porque no se usa en el 00:13:23
constructor se usará y es sólo para ver que me crea un objeto que me lo imprime o como me lo 00:13:27
imprime vale aquí lanzó aquí cosas rarísimas esto porque claro él me escribe el contenido y los 00:13:33
contenidos son app y los contenidos de app no me lo está escribiendo bien vale entonces lo 00:13:45
que estoy haciendo aquí no me funciona a menos que no sepa un truquillo que es si me voy a public 00:13:51
string 00:14:01
to string 00:14:03
y le escribo aquí 00:14:05
como se escribe 00:14:09
como se representa 00:14:11
un objeto 00:14:14
mío 00:14:16
esto se enfada porque 00:14:17
entonces string res 00:14:18
es igual a nada 00:14:25
y luego pongo que 00:14:27
el resultado 00:14:29
es el nombre 00:14:31
pongamos entonces this.name 00:14:33
Más 00:14:35
Paréntesis 00:14:38
Más 00:14:39
10.6 00:14:41
Más 00:14:44
Paréntesis 00:14:48
Gigabyte 00:14:52
Paréntesis 00:14:54
Y luego devuelvo esto 00:14:55
Return res 00:15:00
Si me sé esta cosa de aquí 00:15:03
Que es el método toString 00:15:06
El método toString sirve para decir 00:15:07
Si alguien quiere imprimir en pantalla 00:15:10
Una app 00:15:12
¿Cómo se representa una app en formato de string? 00:15:13
Y se lo estoy diciendo aquí 00:15:17
Entonces ahora como magia 00:15:18
Esto funciona 00:15:22
No lo hemos visto este año todavía 00:15:24
Del año pasado a lo mejor se lo sabe 00:15:30
¿Vale? 00:15:33
Que no me sé este truquillo 00:15:34
Pues nada, pasa nada 00:15:37
Esto lo puedo dejar, pero no lo uso 00:15:39
¿Vale? O lo uso directamente 00:15:41
Con tu string, ¿vale? Este método de aquí 00:15:43
Lo puedo crear 00:15:45
¿Vale? Entonces, ¿cómo hago 00:15:46
Sin utilizar esto 00:15:49
Hacer lo mismo? 00:15:51
Pues haré algo 00:15:54
Como esto 00:15:55
String, resultado 00:15:55
Estoy en App Store, ¿eh? 00:15:58
En ListApp 00:16:00
es igual a nada 00:16:02
y luego for 00:16:06
int es igual a cero 00:16:08
y menor de que 00:16:10
apps.length 00:16:11
y más más 00:16:20
o sea por cada aplicación 00:16:25
dentro de 00:16:27
mi array de aplicaciones 00:16:28
lo que voy a hacer es 00:16:30
res es igual a res 00:16:32
más 00:16:35
apps 00:16:36
de i.toString 00:16:39
más 00:16:42
un espacio 00:16:47
y al final 00:16:49
lo que devuelvo 00:16:54
es este res 00:16:55
entonces ahora 00:16:57
me hace esto 00:17:01
que no he hecho el método 00:17:03
upToString aquí 00:17:14
pues quiere decir que esto 00:17:16
lo tengo que hacer allá 00:17:18
ahora el name es privado 00:17:19
entonces tengo que 00:17:23
no lo puedo acceder directamente 00:17:25
tendré que hacer aquí un 00:17:27
public 00:17:29
string 00:17:31
get name 00:17:33
si no, no lo puedo 00:17:35
pillar, que me hará 00:17:37
return name 00:17:39
y ahora 00:17:41
desde aquí, en vez de 00:17:43
llamar el toString su API 00:17:45
lo tengo que hacer explícitamente 00:17:47
get name 00:17:49
Más 00:17:51
Abierta paréntesis 00:17:56
Más 00:17:58
Apps 00:18:00
.sice 00:18:03
Que si puede acceder porque es público 00:18:05
O sea, no es privado 00:18:08
No es público, pero tampoco es privado 00:18:09
Más 00:18:11
Paréntesis 00:18:12
Paz 00:18:15
O sea, lo que antes hacía 00:18:16
Aquí con un metodito 00:18:20
recogido aquí dentro para escribirlo 00:18:21
pues ahora lo tengo que sacar la información 00:18:24
directamente desde 00:18:26
desde 00:18:28
desde 00:18:29
App Store, donde los encuentro 00:18:32
pues por cada i 00:18:34
que vaya de 1 a 2 00:18:36
en este caso, de 0, 1 y 2 00:18:38
en este caso, pues accederé 00:18:40
a esa aplicación, pillaré su nombre 00:18:42
y luego entre paréntesis pongo su tamaño 00:18:44
la versión no porque me lo decía 00:18:46
el enunciado creo 00:18:48
Un error 00:18:49
Get the name 00:18:53
Me da un error 00:18:54
Porque no he guardado el otro 00:18:55
Ahí, ya está 00:18:57
¿Cómo? 00:18:58
Ejecuto 00:19:02
Y aquí tengo mi listado de aplicación 00:19:03
¿Qué quiero hacerlo un poquito más bonito? 00:19:06
Pues al final aquí le pongo un barra n 00:19:09
Este es un carácter especial que me dice 00:19:12
Vete a una nueva línea 00:19:16
Hemos visto uno o dos veces al principio de Qt 00:19:17
Entonces al final me sale 00:19:20
Que 00:19:22
Fijaos que 00:19:25
Aquí me da solo el listado 00:19:31
No me escribe 00:19:33
Las aplicaciones disponibles son 00:19:34
Porque esto lo escribiré en el main 00:19:36
Y aquí en el main puedo poner 00:19:39
Las aplicaciones disponibles son 00:19:40
Y luego pido el listado 00:19:41
¿Dudas? 00:19:44
Y fijaos que 00:19:50
Este método de aquí que he hecho 00:19:51
¿Vale? 00:19:53
Que no es el más elegante de los tres 00:19:55
quizás el más elegante a lo mejor era el primero 00:19:57
que hemos visto, pero independientemente 00:19:59
este de aquí es independiente de lo que haya puesto 00:20:01
aquí, si ahora de repente 00:20:03
pongo una cuarta 00:20:05
aplicación 00:20:06
aquí 00:20:08
él me instará también la cuarta aplicación 00:20:14
encantado de la vida 00:20:21
¿sí? 00:20:22
que es la clave de la idea 00:20:28
de que cuando luego después implementaré 00:20:30
aquí 00:20:32
lo que tengo que implementar con el code 00:20:32
Pues el resto del programa me tiene que seguir funcionando 00:20:35
No puedo basarme 00:20:38
Sobre este 4 00:20:40
O sobre estas aplicaciones aquí 00:20:41
No sé que va a haber ahí dentro 00:20:43
Tiene que ser todo genérico 00:20:44
Me baso sobre 00:20:46
Los atributos de estas aplicaciones 00:20:47
En posición i 00:20:51
Basta uplength 00:20:52
¿Dudas? 00:20:55
¿Dónde? 00:20:58
Name es un método 00:21:10
Que he hecho aquí 00:21:12
Que me devuelve el name 00:21:13
en app, porque puesto que 00:21:15
app es privada 00:21:18
como app es privada no puede acceder 00:21:19
al name directamente 00:21:22
return name 00:21:23
es el get 00:21:26
hasta te lo crea en automático, si tu le das 00:21:28
botón derecho aquí, vas a 00:21:30
refactor 00:21:32
y le pone 00:21:33
no, no era refactor, donde estaba, surfe 00:21:35
y hay aquí, generate getter 00:21:38
and setter, te lo crea en automático 00:21:40
literalmente 00:21:42
Otra cosa es que luego tú le quedas 00:21:44
Algo más complejo 00:21:46
Pero a este nivel es 00:21:48
Nada más que devolver esto 00:21:50
Esto me sirve porque 00:21:53
Esto lo he puesto privado 00:21:54
Si quito privado ni siquiera me sirve esto 00:21:55
Accedo directamente al name 00:21:58
¿Vale? 00:21:59
¿Cómo hago por otro lado del size? 00:22:02
Como el size no lo he puesto privado 00:22:04
Al size accedo directamente allí 00:22:05
Al size 00:22:08
¿Dudas? 00:22:08
Lo he hecho así también para que veáis 00:22:12
Las dos versiones 00:22:14
¿Dudas? ¿Más dudas? 00:22:16
Vale, entonces listapp 00:22:20
Hecho 00:22:21
Vale 00:22:23
Voy a hacer otra 00:22:29
Por ejemplo 00:22:34
Hagamos install 00:22:36
Venga, que aquí tiene 00:22:38
La cosa compleja 00:22:40
A ver, install de un string 00:22:42
Recibe el nombre de una app 00:22:44
Y devuelve 00:22:48
Una copia del objeto app correspondiente 00:22:48
Vale, entonces 00:22:51
public 00:22:52
devuelve una copia 00:22:57
app 00:23:00
vale 00:23:01
como devuelve una copia del objeto app 00:23:03
devuelve un app 00:23:06
install 00:23:08
string 00:23:10
name 00:23:13
recibo el name 00:23:16
tengo que devolver un app 00:23:20
vale, ok, perfecto 00:23:21
como lo hago, pues tendré que 00:23:24
Ir a mirar todos mis 00:23:26
Como se llaman 00:23:28
Las posiciones de mi array 00:23:30
Buscar la aplicación que se llama así 00:23:32
Y devolverla 00:23:35
¿Vale? Atención 00:23:36
Entonces, for 00:23:38
Bueno, app 00:23:40
Resultado es igual a null 00:23:41
Si al final no la encuentro 00:23:44
Cosa por estilo, devolveré un null 00:23:48
¿Si? No es un problema mío 00:23:49
Devolver un null, será un problema 00:23:52
de quien llama install 00:23:54
que tendrá que comprobar que el resultado 00:23:56
no sea null 00:23:58
si es null o he pedido una aplicación que no existe 00:23:59
o ha habido un problema 00:24:02
en encontrarla 00:24:04
for 00:24:05
int is igual a 0 00:24:07
y menor que 00:24:10
como no, apps.lang 00:24:12
y más más 00:24:14
voy recorriendo 00:24:19
array 00:24:24
de aplicaciones preguntándome 00:24:26
que 00:24:28
name.equals 00:24:30
a mi me gusta 00:24:43
más poner el sujeto 00:24:57
del otro lado, vale, entonces 00:24:59
si la posición de i 00:25:01
de que 00:25:05
de apps 00:25:06
si voy a apps 00:25:08
en la posición i, la posición actual 00:25:11
pillo que 00:25:13
Si esto no es null 00:25:18
Pero no puede, por como lo he hecho 00:25:20
No puede ser null 00:25:22
AppStore nunca es null 00:25:23
Porque lo relleno con aplicaciones reales 00:25:26
Vale, entonces 00:25:29
Pero para ser completo no está mal 00:25:30
Apps.di 00:25:33
.name 00:25:39
Si su nombre, pero no puede acceder a name 00:25:42
Por lo tanto 00:25:45
GetName 00:25:45
o getName 00:25:48
.equals 00:25:48
el nombre que me han pasado 00:25:53
este de aquí arriba 00:25:57
si esto es verdad 00:25:59
quiere decir que la aplicación 00:26:02
en posición i 00:26:04
es la aplicación que estamos buscando 00:26:05
entonces vosotros 00:26:08
la primera 00:26:12
¿cómo se dice? 00:26:14
Impulso que tenéis 00:26:18
Es decir que el resultado 00:26:20
Es igual a 00:26:22
Abs de i 00:26:24
Como la he encontrado 00:26:25
Esa es la que te devuelvo 00:26:30
Return 00:26:31
Si la encuentro te devolveré la que es 00:26:38
Si no te encuentro es null 00:26:43
Este es un error 00:26:44
¿Vale? 00:26:46
Porque esto no devuelve una copia 00:26:49
Esto 00:26:51
Nosotros tenemos nuestro 00:26:52
App Store 00:26:58
Donde dentro hay 00:27:01
Cuatro apps 00:27:05
App 1 00:27:06
App 2 00:27:09
App 3 00:27:12
Y App 4 00:27:14
Lo que hemos hecho es 00:27:16
Me han dicho busca App 2 00:27:19
Con un nombre 00:27:21
Vale, yo me metí aquí dentro y he dicho 00:27:23
¿El nombre de esta aquí es app2? 00:27:25
No, vale 00:27:27
¿El nombre de esta aquí es app2? 00:27:28
Sí, entonces mi res 00:27:30
Que antes valía nul 00:27:33
Ahora le he dicho 00:27:35
Vale, ahora vales 00:27:39
Un puntero a este señor de aquí 00:27:41
Que es un objeto de tipo app 00:27:43
Que tiene dentro app2 00:27:48
Y los tamaños y lo que sea 00:27:50
No, he hecho una copia 00:27:52
He hecho una referencia aquí, que devolveré, y entonces desde donde se ha llamado, que no sé qué, tendré una referencia a esta cosa aquí. 00:27:53
Si ahora cambio algo en esta aplicación, se cambiará también en el App Store, cosa que yo no quiero. 00:28:04
Yo quiero una copia de esto. 00:28:13
esto me servirá porque cuando el App Store 00:28:14
se actualiza 00:28:17
a la versión 2 00:28:19
yo quiero tener una en mi móvil 00:28:21
que es a versión 1 00:28:24
y en el App Store ha salido 00:28:26
la versión 2 y comparar 00:28:28
si tengo que instalarla o no 00:28:30
si en vez le he dado como referencia 00:28:31
en el momento en que cambio la versión 00:28:34
en el App Store, se ha cambiado 00:28:35
también en mi móvil 00:28:38
porque es el mismo objeto 00:28:38
en vez no, yo te he dicho, dame una copia 00:28:41
De ese objeto 00:28:44
Entonces, ¿cómo hago una copia de un objeto? 00:28:44
Esto es el clásico momento trampa malvado del profesor 00:28:49
Esto no lo hemos hecho nunca 00:28:53
El profesor es malvado 00:28:55
En un examen colapso 00:28:57
¿Vale? 00:28:59
En un examen lo hago así 00:29:00
Y no sacaré 10 00:29:01
¿Vale? 00:29:02
Si en vez quiero sacar 10 00:29:05
Pienso a qué quiere decir hacer una copia de un objeto 00:29:07
Dice que res es igual a un nuevo objeto 00:29:10
Estoy creando un objeto nuevo 00:29:23
¿Vale? 00:29:26
Pero tiene que tener los mismos valores del objeto viejo 00:29:28
Entonces, ¿cómo será su nombre? 00:29:31
Porque soy vago 00:29:34
Acabo de comprobar que son iguales 00:29:47
Entonces me da igual utilizar esto que el otro 00:29:50
¿Quiero ser más puntilloso? 00:29:54
Vale, perfecto 00:29:57
El nombre de la app 00:29:57
Y de versión 00:30:00
¿Qué versión tendrá? 00:30:07
La versión de la app 00:30:10
Estoy copiando el objeto 00:30:12
Y de tamaño 00:30:13
El tamaño de la app 00:30:17
Estoy yendo 00:30:21
Aquí 00:30:26
En vez de decirle 00:30:28
Res apunta aquí 00:30:30
Antes de decir que res apunta allí 00:30:31
Me estoy creando un nuevo objeto app 00:30:33
donde copio 00:30:35
el nombre de esta app 00:30:37
copio 00:30:39
la versión de esta app 00:30:41
el tamaño de esta app 00:30:43
y ahora le digo 00:30:45
a res que apunte aquí 00:30:48
no aquí 00:30:49
entonces estoy creando 00:30:51
una copia y pasándome una copia 00:30:55
ahora 00:30:57
si yo cambio algo en este objeto 00:30:59
no estoy afectando esto 00:31:01
Es una copia de ese objeto 00:31:03
Podría hasta un cierto nivel 00:31:06
Si me gustara y me interesa 00:31:10
Irme a app 00:31:12
Y crear aquí un objeto copy 00:31:13
Un método copy, perdón 00:31:16
Podría hacer 00:31:19
Public 00:31:20
App 00:31:21
Porque devuelve un app 00:31:24
Copy 00:31:25
Que lo que hace es 00:31:27
Return 00:31:32
New 00:31:34
app de 00:31:35
this.name 00:31:38
this.version 00:31:40
this.size 00:31:42
esto crea un nuevo 00:31:46
objeto 00:31:51
igual a mi 00:31:51
pero estoy invocando 00:31:54
un nuevo constructor que crea un nuevo objeto 00:31:57
y esto te lo devuelvo 00:31:59
vale, fenomenal, ¿cómo lo usaría 00:32:01
desde aquí? 00:32:03
aquí haría que 00:32:05
res 00:32:06
es igual a 00:32:08
appc.copy 00:32:10
llamar copy 00:32:12
sobre un objeto de tipo app 00:32:23
lo que me hace es 00:32:25
crearme un nuevo 00:32:27
app con las mismas 00:32:29
características 00:32:32
del viejo, pero es uno nuevo 00:32:33
es un objeto nuevo, son dos instancias 00:32:35
distintas, con los mismos valores 00:32:37
son dos instancias distintas 00:32:39
este es uno de los momentos 00:32:41
complejos de este 00:32:49
examen simulacro, ¿vale? La pregunta es, ¿lo hemos hecho alguna vez? No. Copiar no. 00:32:51
La otra pregunta es, ¿con lo que sabéis o deberíais saber de objetos es implausible 00:33:02
que vosotros podáis pensar esto? Si soy de 10 es sí. ¿Sí? ¿No soy de 10? Pues lo 00:33:09
hago como mensaje. ¿Sí? ¿Dudas? Dílas. Párame. Si hay unas cuantas dudas, paradme. 00:33:20
No, no, faltaría más. Ah, vale. Vamos a... Sí. Aquí. Aquí, aquí, aquí. La estoy 00:33:33
creando en algún lado de la memoria, copiando los... Y luego después tengo una variable 00:33:58
res que ahora apuntará a este nuevo objeto y este nuevo res lo devuelvo otra vez a quien ha llamado 00:34:05
este módulo este esta cosa que estará el móvil ahora el móvil tendrá una propia copia de la 00:34:13
del objeto aplicación en su móvil en su memoria del móvil sí que esa aplicación 1 en el móvil sí 00:34:20
apps.di.copy 00:34:46
no, porque ya la copia la has hecho 00:34:54
es que cuando tú llamaras 00:34:55
install, te llegará una cosa 00:34:58
tú dirás 00:35:00
mi array en el móvil 00:35:00
de posición 0 es igual a 00:35:03
install 00:35:06
lo veremos 00:35:06
el objeto app store que yo 00:35:11
tengo en el móvil, punto 00:35:14
install de la aplicación que yo quiero 00:35:15
Vale 00:35:17
Cuatro minutos 00:35:22
Cuatro minutos me da tiempo de hacer 00:35:25
Change version 00:35:27
Ah, sí 00:35:28
Venga, entonces 00:35:29
Hago otro rápidamente 00:35:31
Public 00:35:33
Void 00:35:34
Change 00:35:36
Se llama change version 00:35:39
Version 00:35:43
String name 00:35:45
Int ver 00:35:48
Lo que tiene que hacer es cambiarme la versión de este name 00:35:50
¿Vale? Entonces lo mismo que antes 00:35:57
Voy a buscar en todas 00:35:59
Esto lo puedo reutilizar 00:36:01
Voy a buscar en todo mi array 00:36:03
Hasta que encuentre la aplicación correcta 00:36:08
¿Vale? 00:36:13
Hasta que la aplicación actual que estoy comprobando 00:36:15
Sea igual a la aplicación que me han dado 00:36:18
¿Vale? 00:36:19
Y a este punto ¿Qué hago? 00:36:20
Pues cambio su versión 00:36:21
Apps.di.version 00:36:24
Es igual a ver 00:36:29
Quiero hacerlo un poquito más fino 00:36:31
Versión 00:36:42
Si ver es mayor 00:36:44
Que esta cosa de aquí 00:36:46
Entonces la actualizo 00:36:49
Si no, no 00:36:53
Si me intentas actualizar en el App Store 00:36:54
Con una versión más vieja 00:36:58
No te lo cambio 00:37:00
Acabaría 00:37:00
Check update 00:37:14
Pero lo hacemos en otro momento 00:37:16
Dudas 00:37:19
Esto lo paro 00:37:22
Autor/es:
Stefano Chiesa
Subido por:
Stefano C.
Licencia:
Reconocimiento - No comercial
Visualizaciones:
19
Fecha:
16 de enero de 2023 - 11:13
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
37′ 24″
Relación de aspecto:
1.78:1
Resolución:
1280x720 píxeles
Tamaño:
446.64 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid