20251212 POO-Ejer_5 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Venga, quince.
00:00:00
Quince.
00:00:01
Trabaja con esta clase, que se caracteriza por un autor, un instrumento y una velocidad,
00:00:02
en la que se interpreta la partitura.
00:00:10
Constructor y los métodos.
00:00:14
Vamos a ver.
00:00:17
Una única clase con métodos.
00:00:19
Pues ya está.
00:00:21
Vamos a ver.
00:00:23
Ejercicio quince, que es esto.
00:00:24
Ah no, esto es el paquete
00:00:27
Que me estoy liando
00:00:40
Venga, Ejer 15
00:00:41
Una clase
00:00:48
Partitura
00:00:52
Partitura
00:00:56
Vale
00:00:58
Se caracteriza
00:00:58
Por un autor
00:01:01
Un instrumento
00:01:05
¿Qué más cosas me dice?
00:01:09
Un tempo
00:01:12
Asumimos que
00:01:13
Un entero
00:01:15
Y ya está
00:01:16
Nada más
00:01:19
Vale, pues con esto
00:01:20
Get, set y constructores
00:01:28
Constructor que use los parámetros
00:01:30
Y get y set
00:01:34
Ahora, ya está
00:01:40
Y ahora, con las partituras
00:01:43
Se pueden hacer cosas
00:01:45
¿Qué cosas? Las que me piden aquí
00:01:46
Aumentar
00:01:48
Pues venga
00:01:50
Este método no me devuelve nada
00:01:52
Porque el efecto
00:01:56
Se queda registrado en la propiedad
00:01:57
Aumentar el tempo en esto
00:02:00
Pues entonces
00:02:02
Dis.tempo
00:02:07
Más igual
00:02:10
Tempo, ala
00:02:11
Ya tenemos ese método, ¿correcto?
00:02:12
Venga, siguiente
00:02:16
Reducirlo
00:02:17
Ah, perdón, aumentar es en 10
00:02:20
Yo le he pasado un parámetro
00:02:23
Yo le he pasado un parámetro y aquí decía 10
00:02:24
vale, pues hombre
00:02:26
sería más fácil todavía, sería quitar
00:02:29
el parámetro
00:02:31
y sumarle 10
00:02:32
disminuir
00:02:35
lo mismo pero al revés, esto es más fácil
00:02:37
que lo que hemos hecho
00:02:39
disminuye
00:02:40
disminuye
00:02:45
pues lo mismo
00:02:47
pero menos igual
00:02:50
ambos devuelven void porque no hace
00:02:51
falta devolver nada, el efecto ya se queda
00:02:54
en la propiedad del objeto
00:02:56
vale, ¿qué más hay que hacer?
00:02:57
una
00:03:00
un método
00:03:01
venga
00:03:02
si te vas no te despidas
00:03:05
y si no te quedas, hasta luego
00:03:07
vale, un método
00:03:09
tu string que devuelve un string que
00:03:11
representa esa partitura, el formato string se refiere
00:03:13
que te cuenta
00:03:15
ya está, entonces este método
00:03:16
public string
00:03:18
vaya, fíjate que puñetera
00:03:22
casualidad
00:03:26
tu string no recibe nada
00:03:27
como parámetro, vale, no recibe
00:03:30
nada, y ahora ya nosotros aquí ya
00:03:32
construimos lo que queramos
00:03:34
retun, pues
00:03:35
autor
00:03:37
venga, pues
00:03:39
autor, el autor
00:03:42
no hace falta que ponga dis, porque
00:03:44
aquí tampoco hubiera hecho falta
00:03:46
desde el momento de que quite el parámetro
00:03:48
autor
00:03:50
más
00:03:51
pues concateno con
00:03:53
instrumento
00:03:56
instrumento
00:03:57
pues el instrumento
00:04:00
más
00:04:02
el tempo al que lo vamos a tocar
00:04:05
pues va a ser
00:04:08
este
00:04:10
y este sería el método
00:04:11
toString que me dicen
00:04:14
fijaos que aquí ha aparecido algo
00:04:16
que no ha aparecido
00:04:18
en los otros métodos que hemos hecho
00:04:20
¿veis algo diferente entre este método de arriba?
00:04:21
El triangulito verde, ese no ha aparecido arriba.
00:04:29
¿Qué significa el triangulito verde?
00:04:36
A ver, ahora mismo significa algo que todavía no podemos entender, porque es la herencia.
00:04:39
Significa que ese es un método, quedémonos por ahora con la palabra demasiado estándar, o sea, muy estándar.
00:04:44
Un método que normalmente se usa en muchas clases.
00:04:52
es decir, el método aumentar
00:04:57
tiempo, disminuir tiempo
00:04:59
no lo usa en el resto de clases del universo
00:05:00
no lo usa la clase punto, no lo usa
00:05:03
la clase vehículo, porque en ellas aumentar
00:05:05
tiempo, disminuir tiempo no tiene ningún sentido
00:05:07
pero el método toString
00:05:09
que es, dame una explicación en
00:05:11
formato string, ese vale
00:05:13
para cualquiera, vehículo, dame
00:05:15
una explicación de tu vehículo en formato string
00:05:17
punto, dame una explicación de tu punto en formato
00:05:19
string, entonces esos métodos
00:05:21
que en principio tienen
00:05:23
interés para cualquier clase
00:05:25
tiene interés para cualquiera
00:05:27
son métodos que se llaman
00:05:28
sobreescritos, que ya lo entenderemos
00:05:31
cuando veamos la herencia, y como este
00:05:33
es ese, me ha puesto un triangulito
00:05:35
verde, vale
00:05:37
de hecho, el método
00:05:39
toString es tan estándar
00:05:41
como método para
00:05:43
devolver una explicación sobre
00:05:45
de qué va eso, es tan
00:05:47
estándar, que también el eclipse
00:05:49
me lo genera automáticamente
00:05:51
si a mí me da la gana, igual que
00:05:53
me generaba el get, el set y el constructor
00:05:55
igual que me generaba eso
00:05:57
si dais
00:05:59
al botón derecho
00:06:01
en source, pues tenéis
00:06:02
un generate to string
00:06:08
vamos a
00:06:09
eliminar el que hemos hecho
00:06:11
a ver como es el que me genera este entorno
00:06:13
de desarrollo, te dice
00:06:15
oye, que parámetros quieres, perdón
00:06:19
que propiedades quieres incluir en la descripción
00:06:21
quiero incluir las tres propiedades
00:06:23
en la descripción, venga
00:06:25
pues
00:06:27
fijaos lo que me ha hecho, me ha construido
00:06:29
un string
00:06:31
con la descripción
00:06:32
que nos gusta este formato
00:06:34
magnífico
00:06:37
nos lo quedamos así
00:06:39
que no nos gusta
00:06:41
lo retocamos aquí dentro
00:06:42
¿vale?
00:06:44
y además del triangulito verde me ha metido esto
00:06:47
que significa
00:06:49
precisamente lo que he dicho antes
00:06:52
sobre escrito
00:06:53
esa traducción es eterna
00:06:54
ahora mismo repito, no sabemos
00:06:56
qué significa sobre escrito, pero
00:06:59
quedémonos con que son
00:07:01
métodos que
00:07:03
aplicables
00:07:05
para cualquier entidad, me da igual lo que
00:07:07
signifique, cualquier entidad puede
00:07:09
necesitar mostrar una descripción
00:07:11
cualquiera
00:07:13
¿vale? otros métodos son demasiado
00:07:14
específicos, estos dos son demasiado
00:07:17
específicos, este
00:07:19
no, este cae bien en cualquier
00:07:21
clase, cae bien, un dame
00:07:23
descripción, en cualquiera cae bien
00:07:25
¿vale?
00:07:27
bueno, pues esta clase en particular
00:07:29
me han dicho, dame un toString
00:07:31
pues venga, lo puedo generar así si quiero
00:07:33
o me lo hago malo, lo que me dé la gana
00:07:35
dime
00:07:37
Es decir, a los que os da error
00:07:38
es porque no habéis respetado
00:08:17
exactamente esta cabecera
00:08:20
por ejemplo, no poniendo el público
00:08:23
¿vale?
00:08:25
porque este sería ese método
00:08:27
estándar
00:08:29
aplicable a cualquier tipo de entidad
00:08:31
porque todas pueden necesitar
00:08:33
mostrar su contenido
00:08:35
para informar, para informar solamente
00:08:36
pero claro, lo que me dice
00:08:39
el compilador me dice
00:08:41
oye, si tú quieres usar ese método
00:08:42
aplicable a cualquier entidad
00:08:45
o me parece perfecto que lo uses
00:08:47
juega bien las reglas
00:08:49
respeta las reglas
00:08:51
para que todos nos entendamos
00:08:53
pues respetar las reglas
00:08:55
implica respetar exactamente
00:08:58
la cabecera
00:09:00
¿vale? porque si no
00:09:01
estás es un quiero y no puedo
00:09:04
estás tratando de decir
00:09:06
oye que yo me apunto
00:09:08
me subo al carro de este método que muestra descripción
00:09:10
me subo al carro de él
00:09:12
¿vale? pero no respeto
00:09:13
exactamente la cabecera
00:09:16
¿vale? entonces ahí se genera
00:09:17
una ambigüedad, una confusión
00:09:20
a ver, que nosotros
00:09:22
podríamos pasar de este método y llamarlo
00:09:25
descríbeme el objeto
00:09:27
vale, no pasa nada
00:09:29
pero respetando esta cabecera
00:09:31
y respetando el nombre
00:09:34
y todo eso, facilitamos la vida
00:09:35
a los demás, porque si jugamos
00:09:38
bien las reglas del juego y jugarlas
00:09:40
significa respetar la cabecera tal cual
00:09:42
en cuanto a dar acceso público
00:09:44
llamarlo tu stream
00:09:46
si las jugamos bien
00:09:47
cualquier otro asume
00:09:48
que si necesita describir mi objeto
00:09:51
puede llamar a tu stream
00:09:54
porque tú has hecho un método que se llama así.
00:09:55
Entonces,
00:09:58
si jugamos bien las reglas
00:09:59
y alguien llama a mi tu stream,
00:10:01
va a encontrar un resultado.
00:10:03
Porque yo me he adaptado al estándar.
00:10:04
Me he adaptado a ese estándar.
00:10:06
Si cambio las reglas,
00:10:08
lo cambio a la cabecera,
00:10:10
lo llamo a otra manera,
00:10:11
pues muy bien.
00:10:12
Pero voy a tener que informar
00:10:13
porque he cambiado el nombre.
00:10:15
Los demás no van a dar por sentado,
00:10:17
no lo van a dar por sentado
00:10:19
que yo tengo uno
00:10:21
que se llama así
00:10:21
¿vale?
00:10:22
entonces esto de aquí arriba
00:10:25
que se llama anotación
00:10:27
como no sabemos
00:10:28
lo que significa
00:10:30
lo podéis quitar
00:10:31
y no pasa nada
00:10:32
da exactamente igual
00:10:33
que esté
00:10:35
que no esté
00:10:35
eso es una especie
00:10:35
de validación
00:10:37
que ya entenderemos
00:10:37
más adelante
00:10:38
esta validación
00:10:39
porque puede tener interés
00:10:40
¿vale?
00:10:41
es una especie
00:10:42
de cosa para validar
00:10:43
que a mí no nos importa
00:10:44
dime
00:10:45
nada
00:10:45
te voy a preguntar
00:10:46
si es un comentario
00:10:47
no, no, no
00:10:48
no es un comentario
00:10:49
es otra cosa
00:10:50
lo que empieza por arrobas
00:10:51
se llama anotación, no es un comentario.
00:10:52
Entonces, son cosas que son código también.
00:10:55
Es decir, la máquina virtual las interpreta
00:10:58
y las tiene en cuenta, no como los comentarios.
00:11:00
Los comentarios no existen.
00:11:03
Desde el momento en que el compilador entra,
00:11:04
el comentario está filtrado y desaparece.
00:11:06
Entonces, la máquina virtual las tiene en cuenta.
00:11:09
En este caso, ¿para qué la tendría en cuenta
00:11:12
si yo pongo verray del compilador?
00:11:15
La tiene en cuenta para validar
00:11:17
si has respetado la cabecera.
00:11:20
¿Vale? O sea, si yo
00:11:23
no pongo el override y aquí
00:11:24
me he equivocado y he puesto
00:11:26
dos Gs, al compilador
00:11:28
le parece estupendo. No pasa nada.
00:11:31
Porque él dice,
00:11:33
vale, has hecho un método que se llama
00:11:34
tu string. Y ya está, y estupendo.
00:11:36
Ya está. Sin embargo,
00:11:39
yo a este mismo método
00:11:41
le pongo override arriba.
00:11:42
Automáticamente me dice,
00:11:49
¿eh? ¿Me estás diciendo
00:11:50
que este método es uno de esos
00:11:52
estándares sobrescritos que tú quieres adherirte
00:11:54
a él, pues perdona,
00:11:57
no me casa, porque no encuentro ninguno
00:11:58
en ese catálogo de métodos.
00:12:00
No encuentro ninguno.
00:12:02
Entonces, valdría para hacer una validación.
00:12:04
Ahora mismo, esto se nos escapa
00:12:06
porque tiene que ver con la herencia.
00:12:09
Entonces, simplemente
00:12:12
lo comentamos porque, como en este
00:12:12
ejercicio ha salido lo del método toString,
00:12:14
¿vale?
00:12:17
Entonces, tiene interés
00:12:19
en cualquier clase que uno haga,
00:12:20
tiene interés hacer por defecto
00:12:22
este método
00:12:24
porque no cuesta nada hacerlo
00:12:25
se lo genera el entorno automáticamente
00:12:27
y todos
00:12:29
toda la comunidad desarrolladora de Java
00:12:32
asume
00:12:34
que si va a usar un objeto tuyo
00:12:35
y por la razón que sea
00:12:38
necesita una descripción
00:12:39
asume que va a poder llamar a un 3D
00:12:41
lo asume
00:12:43
si tú no lo has hecho
00:12:45
pues no va a funcionar
00:12:47
Bueno, todo esto tiene sus matices
00:12:50
Insisto, relacionados con la herencia
00:12:57
Los hemos apuntado
00:12:59
Solamente los hemos apuntado
00:13:01
Pero ya está
00:13:03
Bueno, pues este es el método
00:13:04
Este de aquí
00:13:08
El siguiente que me pedían
00:13:09
¿Qué más métodos me piden?
00:13:10
¿Cambiar? Pues ala
00:13:13
Dime
00:13:15
¿Cambiar no es como en set?
00:13:21
¿Perdón?
00:13:22
Sí, sería un set exactamente
00:13:24
Pero bueno, este enunciado
00:13:26
pues bueno, tiene sus limitaciones
00:13:28
cambiar instrumentos como el set
00:13:29
lo que pasa es que bueno
00:13:32
que si yo hago uno específico de cambiar instrumento
00:13:33
así, le paso
00:13:36
efectivamente el nuevo
00:13:44
y se queda igual que el set
00:13:45
pero algún matiz podemos añadir
00:13:50
vale, entonces
00:13:55
efectivamente el código así
00:14:00
diríamos, jo, tenemos dos métodos iguales
00:14:02
sí, pero puede tener su sentido
00:14:04
el set
00:14:07
está claro para lo que vale
00:14:08
para dar acceso de escritura
00:14:09
la propiedad y es estándar
00:14:11
que lo hagamos así y yo no cambio
00:14:15
su estructura
00:14:17
ni su cabecera ni su contenido
00:14:19
porque todos asumen
00:14:21
que para cambiar el valor de mi propiedad
00:14:23
van a llamar ese método, todos asumen que lo voy a tener
00:14:25
con ese nombre, pues lo tengo así
00:14:27
tal cual y no lo toco
00:14:29
pero luego puede ser
00:14:31
que esté ahí apuntando
00:14:33
una funcionalidad
00:14:34
futura de mi aplicación que es cambiar
00:14:37
el instrumento y que cambiarlo
00:14:39
tenga más implicaciones
00:14:41
que fijarlo sin más.
00:14:43
A lo mejor cambiar el instrumento
00:14:44
implica también
00:14:46
mandar una notificación por e-mail
00:14:48
de que he cambiado el instrumento
00:14:49
o cambiar la partitura.
00:14:51
Entonces, ahí sí tiene sentido
00:14:53
hacer un método aparte.
00:14:54
Porque cambiar instrumento
00:14:56
aparte de cambiar la propiedad,
00:14:58
en el futuro puede ser
00:15:01
que se necesiten más cosas.
00:15:02
Venga, lánzate.
00:15:11
Nada, es tímido.
00:15:13
Ahora.
00:15:15
Vale.
00:15:19
entonces, esto es más escalable
00:15:19
si en el futuro cambiar el instrumento
00:15:22
tiene implicaciones
00:15:25
yo las meto aquí
00:15:26
este sería su sitio
00:15:28
el set no lo tocaría, el set no lo puedo tocar
00:15:30
tiene una única función
00:15:33
una única función que es
00:15:34
darle valor a la propiedad
00:15:37
pero cambiar el instrumento puede ser
00:15:38
algo más amplio, más general
00:15:41
pues todo eso iría aquí metido
00:15:42
¿cuál es tu duda?
00:15:44
y lo añade en el campo instrumentos
00:15:48
sin sobreescribir los que había antes
00:16:03
es que este enunciado está muy feo
00:16:05
porque no queda muy claro
00:16:09
instrumento
00:16:10
entonces se supone que es un array
00:16:11
o como es
00:16:13
claro, es que no está muy claro
00:16:14
añade, ¿a qué añades?
00:16:16
es una cadena
00:16:19
indica para cuantos
00:16:21
es esta partitura
00:16:26
claro, es que esto no está
00:16:28
muy bien definido
00:16:29
este enunciado no está definido
00:16:32
porque tendría que decir, los instrumentos
00:16:33
estarían concatenados en el array
00:16:36
el instrumento musical asociado
00:16:38
con la partitura
00:16:40
la velocidad de impulsaciones por minuto
00:16:41
cambiar
00:16:44
y lo cambia en la partitura
00:16:46
del libro antiguo y añade un nuevo
00:16:48
y lo añade en el campo instrumentos
00:16:50
sin sobreescribirlos que había, concatenando
00:16:52
es lo único que podemos hacer
00:16:54
y cuenta, puedes hacer un split
00:16:55
con
00:16:58
sí, vamos a terminarlo
00:16:58
añade instrumentos, vamos a interpretarlo como vosotros
00:17:01
vale
00:17:04
claro, habría que ese string que tiene
00:17:04
muchos separados con espacios, pues contar cuánto
00:17:12
lo que pasa es que claro, si es el
00:17:14
oboe de amor, por ejemplo
00:17:15
es una versión del OE
00:17:17
pues ahí tengo dos espacios
00:17:20
y un solo instrumento
00:17:26
a ver, que está muy mal
00:17:27
este enunciado
00:17:29
yo lo he cortado con comas
00:17:39
yo he cortado las comas
00:17:43
ah, pues con comas sería mejor que con espacios
00:17:45
efectivamente
00:17:47
pero sí, aquí esto
00:17:48
instrumento
00:17:50
claro, pues aquí
00:17:51
claro, a ver, pues tu duda
00:17:53
viene de que el enunciado
00:18:00
está mal planteado, está ambiguo
00:18:02
entonces pues claro, hay que tomar una decisión
00:18:04
¿cómo lo hacemos?
00:18:06
si lo hacemos concatenando
00:18:07
que tiene su interés para ya ver
00:18:11
el método split que es muy útil
00:18:12
vale, pues vamos a suponer que
00:18:14
si añadimos un instrumento más, pues concatenamos
00:18:16
coma y el instrumento, y ya está
00:18:18
ahora, ahora, ahora, en el siguiente
00:18:20
entonces
00:18:24
instrumento
00:18:25
más igual coma
00:18:29
el instrumento que me han dado
00:18:32
perdón, this instrumento
00:18:34
vale, por ejemplo, os supone que cada vez que ponemos
00:18:36
un instrumento nuevo, pim, le añadimos
00:18:45
con coma
00:18:47
jolín, perdón
00:18:47
soy tonta, ¿vale? por ejemplo
00:18:52
vamos a asumir que
00:18:54
este convenio, que podría ser otro
00:18:56
podría ser como un array que tendría mucho más sentido
00:18:59
tendría mucho más sentido guardarlos en un array
00:19:01
que no separados por comas
00:19:03
pero bueno, ya que tenemos la oportunidad y así ya jugamos
00:19:05
luego con
00:19:07
métodos de stream, vale, añadir instrumento
00:19:08
y ya está, con cambiar
00:19:11
con esto directamente
00:19:13
cambio
00:19:15
este instrumento
00:19:17
por lo que haya
00:19:19
vale
00:19:20
y aquí podemos poner incluso
00:19:22
añadiendo
00:19:25
añadiendo
00:19:27
vale, vamos a hacer el último
00:19:28
y nos vamos
00:19:30
pues venga, el último es
00:19:32
cuenta
00:19:35
contar, ya sí que me devuelve un valor
00:19:36
el número de instrumentos
00:19:41
¿necesita algún parámetro?
00:19:42
no, porque sus datos
00:19:49
de trabajo, sus datos
00:19:51
son estos, es este string
00:19:53
estos son sus datos de trabajo
00:19:54
vale
00:19:58
pues ahora
00:19:59
con este convenio
00:20:01
podríamos contar las comas
00:20:03
que hay
00:20:06
y instrumentos va a ser el número de comas más uno
00:20:06
¿verdad?
00:20:09
sí, vale
00:20:14
pero vamos a aprovechar para meter un método
00:20:15
que es muy útil, a ver, yo tengo
00:20:17
instrumento
00:20:19
que es un objeto string
00:20:21
y al ser un objeto puede llamar
00:20:23
a un montón de métodos y a un montón de cosas, ¿verdad?
00:20:25
Bueno, pues hay un método muy útil
00:20:29
que es el método split
00:20:31
que si tú le das un carácter
00:20:32
como en nuestro caso la coma
00:20:36
le doy un carácter
00:20:39
te separa ese string en substring
00:20:40
los que quedan separados precisamente
00:20:45
por ese separador, por esa coma
00:20:48
y te los mete todos en un array.
00:20:50
Es decir, este método
00:20:53
me devolvería
00:20:54
un array de string
00:20:55
con todos los instrumentos
00:20:57
que hay ahí, que los tengo
00:21:00
separados por espacios, pues cambio eso
00:21:04
por un espacio, que los tengo separados
00:21:06
por dos puntos, cambio eso por dos puntos
00:21:08
¿vale? entonces la clase
00:21:10
string, como cualquier otra clase
00:21:12
tiene un montón
00:21:13
de métodos para hacer cosas
00:21:16
entonces siempre está bien aprovechar
00:21:17
un despliegue para decir
00:21:20
oye, voy a ver que en lugar de hacer algo yo a mano
00:21:21
voy a ver si hay algún método que me lo haga
00:21:24
bueno, pues este
00:21:26
me separa
00:21:28
todo el string en subcadenas
00:21:30
que se hayan
00:21:32
precisamente separadas
00:21:34
por este separador que yo he puesto aquí
00:21:36
entonces en este caso
00:21:38
el número de instrumentos sería el tamaño
00:21:40
del string, ¿verdad?
00:21:42
pero vamos a aprovechar y vamos a mostrar los instrumentos
00:21:44
vamos a mostrar los instrumentos
00:21:46
que hay y luego ya devolvemos la cantidad
00:21:48
ya que estamos
00:21:50
pues entonces podríamos hacerlo así
00:21:51
instrumentos
00:21:56
inst, no int
00:21:58
vale, y ya de paso
00:22:03
voy a devolver ahora ya el tamaño
00:22:09
que es instrumentos
00:22:11
punto len
00:22:13
vale, entonces este método es muy cómodo
00:22:14
y muy útil para trabajar con string
00:22:17
pues ya, como lo hemos hecho una vez, ya se nos
00:22:19
queda ahí la idea de que está
00:22:21
vale, entonces, pues de que
00:22:22
otra manera se puede hacer, pues claro
00:22:25
depende de que me lo detallen un poquito
00:22:27
más, vale
00:22:29
no, porque es el tamaño
00:22:30
del array lo que estoy devolviendo
00:22:36
la cantidad de subcadenas
00:22:37
que hay separadas por comas
00:22:40
si contara las comas
00:22:41
entonces sí, tendría que sumarle uno
00:22:43
vale, pues bueno
00:22:45
haced un mail y lo probáis
00:22:51
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Primer Curso
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 3
- Fecha:
- 14 de diciembre de 2025 - 19:10
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 22′ 56″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 94.38 MBytes