Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Clase 15-12-23 - 1 - 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:
Bueno, confío en que recordéis lo del otro día, porque os habéis repasado
00:00:00
esos apuntes que cogéis tan estupendos, ¿vale?
00:00:11
No te ofendas, ¿eh?
00:00:14
Ahora ya estamos desarrollando según el patrón de la programación
00:00:19
orientada a objetos por a nivel básico, en el cual las aplicaciones
00:00:25
están formadas por diferentes clases. Cada clase asociadla a un fichero
00:00:29
distinto, ¿vale? A un fichero distinto. El código fuente se va a organizar
00:00:37
en ficheros diferentes. Cada uno de ellos es una clase y cada uno de ellos
00:00:43
con su extensión .java. ¿Vale? Entonces, de todas esas clases que forman
00:00:47
la aplicación, en general habrá un conjunto de clases que son las que
00:00:56
representan las realidades con las que trabaja nuestra aplicación.
00:01:06
Las clases de entidad. Nosotros, el otro día, por ejemplo, si era una aplicación
00:01:11
de hacer cosas con pedido, pues entonces dijimos, ah, vale, pues
00:01:16
identificamos, por tanto, una clase pedido. Vamos a identificar una clase
00:01:23
pedido porque uno de los elementos con los que trabaja nuestra aplicación
00:01:27
son los pedidos, ¿vale? Pues una clase pedido y una vez que uno tiene ya
00:01:31
las clases entidad y bondificadas, las programa, como dijimos el otro día,
00:01:36
¿vale? Dos partes, propiedades y métodos con la que aún no nos metimos.
00:01:45
Dos partes, propiedades y métodos con la que aún no nos hemos metido.
00:01:52
Entonces, la parte de propiedades es una lista de declaración de variables.
00:01:57
Exactamente igual como nosotros declaramos las variables en los programas
00:02:03
que hemos hecho hasta ahora. Exactamente igual. Esto es una lista de declaración
00:02:07
de variables. Y cada variable, ¿a qué se corresponde? Cada variable se
00:02:11
corresponde a alguna de las propiedades que caracterizan el pedido,
00:02:17
que hemos decidido nosotros previamente, claro, en la fase de diseño,
00:02:22
que nos interesa. Nos interesa que el pedido se caracterice por el código,
00:02:25
la descripción, lo que sea. Bueno, pues entonces yo he identificado ya
00:02:29
que esas son las características que me importan de los pedidos,
00:02:34
para cada una de ellas una variable. ¿Vale? Y esto es lo que se llama
00:02:37
el conjunto de propiedades, atributos, se suele usar también ese nombre,
00:02:42
propiedades, atributos, incluso campos, incluso campos en literatura que veáis
00:02:47
por ahí, en tutoriales, en incluso campos. ¿Por qué? Por el paralelismo
00:02:54
que hay entre las clases y las tablas de una base de datos. ¿Verdad?
00:02:58
En la tabla de una base de datos, si esta fuera una aplicación que guardara
00:03:04
luego los pedidos en una base de datos, habría una tabla que se llamaría
00:03:07
pedido para guardar los pedidos y esa tabla sería un conjunto de filas,
00:03:14
cada fila sería un pedido y cada pedido tendría los campos con sus propiedades.
00:03:21
Entonces, como es absolutamente paralelo el concepto de clase al concepto
00:03:26
de mi tabla de base de datos, pues por eso a veces a eso también se le llaman
00:03:30
campos, porque en base de datos a cada uno de los elementos que forman
00:03:35
cada registro, pues se le llama campo también. El campo código, el campo nombre,
00:03:41
el campo no sé qué. El eclipse, de hecho, eclipse, pues para entender
00:03:46
la información contextual que da para todo eso, pues eclipse a cada uno
00:03:55
de estos los llama así. Pero eso, luego ya programado en Java es una
00:03:59
declaración de variable, una declaración de variable normal y corriente.
00:04:10
Bueno, entonces, esto es la plantilla, habrá ya una clase especial,
00:04:14
por llamar de alguna manera una clase especial, que es la que tiene este
00:04:21
famoso método main, que la máquina virtual arranca y a partir de aquí
00:04:24
empieza el programa. Y ya el programa hace las sentencias que nos dé la gana
00:04:29
hacer a nosotros, tal y como hemos hecho hasta ahora, nuestros códigos
00:04:34
con sentencias. Pero ahora además, ¿qué podemos hacer ahora?
00:04:38
Pues podemos ahora ya, además de todo lo que hemos hecho antes,
00:04:42
podemos además crear objetos de estas clases. Uno, dos, tres, mil.
00:04:45
Una única clase, una única plantilla, pero objetos, todos los que a mí me den
00:04:52
la gana. Ya vimos el otro día cómo, cada uno con su nombre, lo declaro
00:04:57
del tipo pedido, cómo lo tengo que crear y una vez que lo tengo creado
00:05:01
ya puedo acceder a sus propiedades, ¿vale? Esto fue más o menos
00:05:05
pues lo que vimos el otro día.
00:05:12
Subtítulos realizados por la comunidad de Amara.org
00:05:22
Subtítulos realizados por la comunidad de Amara.org
00:05:52
Subtítulos realizados por la comunidad de Amara.org
00:06:22
Subtítulos realizados por la comunidad de Amara.org
00:06:52
Subtítulos realizados por la comunidad de Amara.org
00:07:22
Subtítulos realizados por la comunidad de Amara.org
00:07:52
Subtítulos realizados por la comunidad de Amara.org
00:08:22
Subtítulos realizados por la comunidad de Amara.org
00:08:52
Subtítulos realizados por la comunidad de Amara.org
00:09:22
Subtítulos realizados por la comunidad de Amara.org
00:09:52
Subtítulos realizados por la comunidad de Amara.org
00:10:22
Subtítulos realizados por la comunidad de Amara.org
00:10:52
Subtítulos realizados por la comunidad de Amara.org
00:11:22
Subtítulos realizados por la comunidad de Amara.org
00:11:52
Subtítulos realizados por la comunidad de Amara.org
00:12:22
Subtítulos realizados por la comunidad de Amara.org
00:12:52
Subtítulos realizados por la comunidad de Amara.org
00:13:22
Subtítulos realizados por la comunidad de Amara.org
00:13:52
Subtítulos realizados por la comunidad de Amara.org
00:14:22
Subtítulos realizados por la comunidad de Amara.org
00:14:52
Subtítulos realizados por la comunidad de Amara.org
00:15:22
Subtítulos realizados por la comunidad de Amara.org
00:15:52
Subtítulos realizados por la comunidad de Amara.org
00:16:22
Subtítulos realizados por la comunidad de Amara.org
00:16:52
Subtítulos realizados por la comunidad de Amara.org
00:17:22
Subtítulos realizados por la comunidad de Amara.org
00:17:52
Subtítulos realizados por la comunidad de Amara.org
00:18:22
Subtítulos realizados por la comunidad de Amara.org
00:18:52
Subtítulos realizados por la comunidad de Amara.org
00:19:22
Subtítulos realizados por la comunidad de Amara.org
00:19:52
Subtítulos realizados por la comunidad de Amara.org
00:20:22
Subtítulos realizados por la comunidad de Amara.org
00:20:52
Subtítulos realizados por la comunidad de Amara.org
00:21:22
Subtítulos realizados por la comunidad de Amara.org
00:21:52
Subtítulos realizados por la comunidad de Amara.org
00:22:22
Subtítulos realizados por la comunidad de Amara.org
00:22:52
Subtítulos realizados por la comunidad de Amara.org
00:23:22
Subtítulos realizados por la comunidad de Amara.org
00:23:52
Subtítulos realizados por la comunidad de Amara.org
00:24:22
Subtítulos realizados por la comunidad de Amara.org
00:24:52
Subtítulos realizados por la comunidad de Amara.org
00:25:22
Bueno, declaración de propiedades, luego, claro,
00:25:53
se le pueden poner delante modificadores, cosas,
00:25:56
pero tendremos que incorporarlo más adelante.
00:25:58
Bueno, pues, ¿qué otra parte dijimos que contiene una clase?
00:26:00
Hablamos de que contiene una parte que son los métodos,
00:26:04
los métodos, con los que todavía no nos hemos metido.
00:26:10
Entonces, una clase tiene propiedades que ya sabemos exactamente
00:26:13
lo que son, las características que van a caracterizar
00:26:17
a cada uno de los objetos.
00:26:22
Cada objeto tendrá los valores suyos propios.
00:26:24
Cada objeto tendrá un código, una descripción,
00:26:27
cada uno el suyo, y los métodos.
00:26:30
Bueno, pues los métodos, a los métodos se les suele llamar
00:26:33
el comportamiento del objeto.
00:26:37
Bueno, pues esta es la diferencia fundamental,
00:26:47
aparte de que el objeto es una dirección de memoria,
00:26:50
en realidad sería una variable primitiva, ¿no?
00:26:52
Entre las variables primitivas y las variables objetos.
00:26:54
Que las variables primitivas solo valen para meter en ellas un valor,
00:26:58
ya está, para meter en ellas un valor, y luego yo, claro,
00:27:02
recoger ese valor en una expresión para asignarlo,
00:27:05
pero solamente valen como contenedores de valores.
00:27:08
Solo valen como contenedores de valores las variables primitivas,
00:27:11
no valen para nada más.
00:27:14
Las variables objeto valen como contenedores de valores también,
00:27:16
porque contienen el valor de un objeto, su código, su descripción,
00:27:20
pero también valen para hacer cosas.
00:27:24
Luego los objetos pueden hacer cosas también.
00:27:28
Las variables primitivas no hacen nada, solo contienen un valor.
00:27:30
Por si yo lo quiero coger en una expresión, pero no hacen nada.
00:27:34
Las variables objeto contienen un valor, el valor de las propiedades,
00:27:38
y además pueden hacer cosas.
00:27:42
Hacer, ¿qué significa en Java?
00:27:45
Hacer significa ejecutar sentencias.
00:27:47
Luego las variables objeto, cuando existen y están creadas,
00:27:50
además pueden ejecutar sentencias de Java,
00:27:54
cosas que no puede una variable primitiva.
00:27:57
Pues eso que pueden hacer las variables objeto,
00:28:00
esas sentencias que ellas pueden ejecutar,
00:28:03
se escriben aquí, en los métodos, ¿vale?
00:28:06
Luego una clase tiene propiedades, lo que caracteriza al objeto,
00:28:10
y métodos, que para que lo entendamos mejor es,
00:28:13
cada método es como una función a la que el objeto puede llamar.
00:28:16
Eso es el significado de método,
00:28:20
una función a la que un objeto puede llamar.
00:28:23
Esa es la idea.
00:28:27
Vamos a ver cómo se declaran.
00:28:30
Puede llamar y al llamarlo se va a ejecutar lo que hay dentro.
00:28:32
Claro, por eso se dice que el objeto hace cosas.
00:28:35
El objeto lo que hace es llamar al método
00:28:37
y cuando se llama al método se ejecuta todo lo que hay dentro.
00:28:40
Vamos a ver cómo se declaran los métodos,
00:28:45
las cosas básicas primero,
00:28:48
y cómo un objeto puede llamar a los métodos.
00:28:51
¿Cómo se declaran los métodos?
00:28:56
Exactamente igual que se declaran las funciones
00:28:58
que hemos visto ya en su momento,
00:29:02
que las vimos como una pequeña introducción,
00:29:05
nos sirven como pequeña introducción al concepto de método.
00:29:08
Bueno, pues el método, por ejemplo, para poner un ejemplo.
00:29:15
Cuando yo tengo un objeto pedido,
00:29:19
¿qué cosas me pueden interesar a mí que ocurran con ese pedido?
00:29:22
Pues depende de mi aplicación lo que yo quiero que haga.
00:29:29
Pues ver si un cliente lo ha pedido, ese pedido por ejemplo,
00:29:32
porque ver si la descripción contiene la palabra boli,
00:29:37
por ver si es un pedido de bolis.
00:29:44
O sea, cuando uno hace una aplicación tiene,
00:29:46
y hay muchas otras veces,
00:29:48
tener una fase previa con lápiz, papel, hablando con el cliente,
00:29:50
en la cual tiene que tener muy claro
00:29:53
qué tiene que hacer la aplicación.
00:29:56
Mi aplicación primero va a trabajar con pedidos, clientes, ¿vale?
00:29:58
Y ahora, ¿qué tiene que hacer con ellos?
00:30:02
¿Qué tiene que hacer?
00:30:04
Bueno, pues el cliente dirá,
00:30:05
oye, la necesito para almacenar pedidos y calcular precios.
00:30:06
La necesito para buscar dentro de los pedidos
00:30:10
los clientes que me lo han pedido.
00:30:13
Pero tendrá que decir,
00:30:15
el que te ha pedido el software te dirá,
00:30:16
necesito para esto.
00:30:17
Todo esto lo recorre, lo recoge.
00:30:18
Dices, ah, vale.
00:30:20
Lo que tengo yo que hacer con esos pedidos de mi aplicación
00:30:21
es esto, esto y esto.
00:30:24
Pues, en general, muy en términos generales,
00:30:26
cada cosa que yo identifico
00:30:28
que hay que hacer con un pedido,
00:30:30
la meto en un método concreto.
00:30:32
Cada cosa la meto en un método concreto.
00:30:34
Entonces, estos métodos
00:30:37
son trozos de código
00:30:40
que hacen cosas
00:30:42
con los objetos pedidos.
00:30:44
Ese sería su significado.
00:30:47
Vamos a poner un ejemplo.
00:30:50
Por ejemplo, a mí el cliente,
00:30:51
el que me ha pedido el software me dice,
00:30:53
sí, esta aplicación mía va a trabajar con pedidos
00:30:54
y una de las cosas que yo quiero que haga la aplicación es
00:30:57
que si yo le meto un nombre de un cliente,
00:31:00
un nombre de un cliente,
00:31:04
te tiene que decir
00:31:06
si el pedido lo ha pedido ese cliente o no.
00:31:08
Por ejemplo, vamos a poner aquí.
00:31:12
Entonces, uno ya dice, ah, vale.
00:31:14
Esa funcionalidad va a ser la siguiente.
00:31:17
Dado un nombre de cliente,
00:31:21
tiene que indicar
00:31:26
si el pedido que llame a este método,
00:31:29
ahora lo entenderemos mejor
00:31:34
cuando ya hagamos una clase main que llame al método,
00:31:35
el pedido que llame al método,
00:31:38
¿lo ha pedido ese cliente o no?
00:31:42
Bueno, un poco retorcido explicado, ¿o no?
00:31:44
¿Lo ha pedido ese cliente o no?
00:31:46
Vale, entonces esto ya es un funcionamiento,
00:31:52
eso es un comportamiento.
00:31:55
Esto no son propiedades.
00:31:56
Las propiedades son, el pedido se caracteriza
00:31:58
por código de descripción y lista de clientes.
00:32:00
Y ahora otra cosa es,
00:32:02
¿qué cosas me interesa a mí hacer?
00:32:04
¿Qué cosas me interesa a mí hacer con los pedidos?
00:32:06
Pues hemos identificado una.
00:32:08
Hemos identificado una.
00:32:10
Me va a interesar cuando el usuario de la aplicación
00:32:11
me dé un nombre,
00:32:14
me va a interesar que me diga
00:32:15
si los pedidos los ha hecho ese cliente o no.
00:32:17
Eso es una funcionalidad que me han dicho que me interesa.
00:32:22
Vale, pues automáticamente.
00:32:25
Eso es un comportamiento
00:32:27
que se va a programar en un método
00:32:29
y ese método decir,
00:32:31
dado un nombre de cliente como entrada,
00:32:33
me tiene que decir si el pedido
00:32:35
está pedido por ese cliente o no está pedido.
00:32:38
Vamos a programar esto.
00:32:43
Una vez programado lo entenderemos mejor.
00:32:44
Vale, pues esto es como una función como hemos visto.
00:32:46
Primero, ¿qué nombre le queremos dar a este método?
00:32:49
Pues comprobar cliente, por ejemplo.
00:32:52
Le vamos a llamar comprobar cliente a este método.
00:32:57
Comprobar cliente para ver si el cliente está.
00:33:00
Comprobar cliente.
00:33:03
De nuevo, pauta regla de estilo no obligatoria
00:33:05
pero altísimamente recomendable.
00:33:10
Los nombres de los métodos que arranquen con minúscula.
00:33:13
Igual que los nombres de las propiedades.
00:33:19
Porque luego los códigos quedan muchísimo más claros
00:33:22
para todos que esperamos eso.
00:33:25
Nombres de clases con mayúscula,
00:33:32
nombres de propiedades y de métodos
00:33:34
que arranquen con minúscula.
00:33:36
Vale, ya he decidido mi nombre.
00:33:38
Comprobar cliente.
00:33:39
Ahora, tengo que pensar, vale,
00:33:40
¿este método qué información de entrada
00:33:42
necesita para trabajar?
00:33:44
Siguiente.
00:33:46
Vale, pues me pongo a pensar.
00:33:47
Pues solo el nombre del cliente.
00:33:50
¿No?
00:33:52
El nombre del cliente.
00:33:53
Ya está, dado un nombre del cliente,
00:33:54
comprueba si está o no.
00:33:55
Vale, pues eso será un parámetro del método.
00:33:57
Exactamente igual que los parámetros de funciones
00:34:00
que vimos, hemos visto.
00:34:02
¿Cómo se declaran los parámetros de los métodos?
00:34:05
Tipo de dato del parámetro.
00:34:07
Como es un nombre de cliente,
00:34:09
un nombre se recoge un string.
00:34:11
Pues string.
00:34:14
Nombre que le doy al parámetro,
00:34:15
el que me dé la gana.
00:34:17
Nombre cliente.
00:34:19
Vale, ya tengo el dato de entrada que necesita.
00:34:24
¿Qué es un método que necesita más datos de entrada?
00:34:29
Se los pongo separados por comas.
00:34:33
En este caso, este ejemplo mío,
00:34:36
solo necesita un dato de entrada,
00:34:38
que es el nombre del cliente.
00:34:40
Pues ya está.
00:34:41
Solo uno.
00:34:43
Vale, siguiente cosa que me falta para completar
00:34:45
la primera línea, la que se llama
00:34:48
cabecera o firma del método.
00:34:50
Cabecera del método o firma del método.
00:34:53
Firma porque en inglés
00:34:58
se suele traducir con signature.
00:35:02
Vale, pues esta cabecera, firmas,
00:35:14
me ha recogido.
00:35:17
El nombre, el que a mí me dé la gana.
00:35:18
Parámetros, datos de entrada.
00:35:21
En este caso, uno solo, el nombre.
00:35:23
Y ahora, ¿ese método me va a devolver algo?
00:35:26
Pues vamos a ver qué tiene que hacer.
00:35:30
El método me tiene que decir
00:35:32
si ocurre que el cliente está en la lista de clientes
00:35:34
o si no ocurre.
00:35:37
La forma de trasladarme a mí
00:35:39
una información sobre si algo pasa o no pasa
00:35:41
es un boolean.
00:35:44
No hay otra.
00:35:45
Vale, pues entonces tiene sentido
00:35:46
que este método me devuelva un boolean.
00:35:48
¿Vale?
00:35:53
Entonces, este método recibe un nombre de cliente
00:35:55
y me devuelve true o me devuelve false
00:35:59
en función de si ocurre
00:36:02
lo que tengo que programar yo ahora,
00:36:05
que es si el cliente está en la lista de clientes o no.
00:36:07
Vale, pues ahora ya que tenemos la firma
00:36:14
con datos de entrada,
00:36:16
tipo de dato de salida, dime.
00:36:18
Claro, pero es que, claro,
00:36:26
pero qué pedido en específico.
00:36:29
Hemos dicho que los métodos los llama un pedido.
00:36:30
Pues será para el pedido que llame a este método.
00:36:33
Ahora cuando hagamos el main se ve más claro.
00:36:36
Vale, o sea, esto tiene que ser llamado por un objeto.
00:36:38
Tiene que ser llamado por un objeto.
00:36:42
Y entonces el objeto que lo llame
00:36:44
es el pedido sobre el cual se ejecutan estas sentencias.
00:36:47
Ahora cuando ya hagamos un main
00:36:51
con ese pedido que lo llame será mucho más claro.
00:36:53
Vale, pues entonces, ahora hay que programar esto.
00:36:56
Ahora, ¿qué tiene que hacer este método?
00:36:59
Oye, tiene que acceder a la lista de clientes
00:37:01
para ver si este es igual a alguno de ellos.
00:37:04
¿Y dónde está esa lista de clientes?
00:37:07
Aquí arriba.
00:37:09
La tiene aquí.
00:37:11
O sea, los métodos acceden directamente.
00:37:12
Vamos a poner aquí.
00:37:15
El método accede directamente
00:37:21
a las propiedades de la clase.
00:37:26
A las que están arriba.
00:37:33
Accede directamente a las propiedades que están arriba.
00:37:36
No hay que pasárselas como parámetro ni nada.
00:37:38
Accede directamente a las que están arriba.
00:37:40
Entonces, este método utilizará
00:37:43
mi dato de entrada que es el nombre del cliente
00:37:46
y las propiedades del objeto que lo llama
00:37:49
que son las de arriba
00:37:54
y con ellas trabaja y hace lo que le da la gana.
00:37:56
Esos son los dos conjuntos de datos
00:37:59
con los que trabaja un método.
00:38:03
Los parámetros que yo he decidido pasarle desde el exterior
00:38:05
y las propiedades del objeto que lo llama
00:38:10
que están declaradas ahí arriba.
00:38:12
Puede trabajar con todo eso para hacer lo que toque.
00:38:14
Y no puede trabajar con nada más que eso.
00:38:17
Que le hacen falta más cosas.
00:38:19
Habría que pasarle por parámetro.
00:38:20
Pero aquí para hacer lo que tiene que hacer
00:38:22
que es comprobar si este nombre está en la lista
00:38:24
no le hace falta nada más.
00:38:27
Pues entonces ya tiene toda la información
00:38:29
que necesita para trabajar.
00:38:30
Ahora ya hay que hacer el código
00:38:32
que es pues venga vamos a recorrer el string de arriba.
00:38:33
Como vamos a consultar solamente
00:38:39
vamos a hacerlo con el for each rápido.
00:38:41
Para cada cliente aquí.
00:38:47
Si c.equals.
00:38:51
Nombre cliente.
00:38:56
Pues entonces aquí ya mi resultado sería true.
00:38:58
Entonces vamos a ponerlo así para que quede más claro.
00:39:02
Mi resultado lo voy a guardar en una variable boolean.
00:39:05
Retune result.
00:39:08
Inicialmente el cliente no está.
00:39:09
Inicialmente no está.
00:39:11
En cuanto me encuentre un cliente
00:39:13
que sí que es igual al parámetro.
00:39:16
Entonces ya lo puedo cambiar a true.
00:39:19
Y ahora ya cuando el for ha terminado
00:39:23
en este punto retune result.
00:39:25
Retune result.
00:39:31
Vale este sería mi método.
00:39:35
Es como una función de las que hemos visto.
00:39:37
¿Qué es lo que hace?
00:39:39
En este caso yo parto de que el cliente no está.
00:39:40
Me pongo a recorrer la lista de clientes
00:39:43
a la que tengo acceso directamente.
00:39:45
Esta letra la de arriba.
00:39:47
Tengo acceso directamente.
00:39:48
En cuanto encuentre un cliente
00:39:50
que es igual al parámetro que me han pasado.
00:39:53
Como estoy comparando dos strings.
00:39:56
Recordad que equals.
00:39:58
En cuanto lo encuentro ya esta variable la puedo poner a true.
00:39:59
En cuanto lo encuentre una vez la puedo poner a true.
00:40:02
Y ahora ya una vez que haya terminado el for
00:40:04
devuelvo el resultado.
00:40:06
Y eso será falso.
00:40:07
Si no encontré ningún cliente en la lista
00:40:08
cuyo nombre sea este.
00:40:11
Y será true si encontré uno.
00:40:13
En cuanto encontrara uno ya se ha cambiado.
00:40:15
Pues ya tengo un método hecho
00:40:23
para la clase pedido
00:40:25
que recoge esa funcionalidad concreta
00:40:27
que me han pedido.
00:40:30
Me pueden haber pedido muchas funcionalidades
00:40:31
para mi aplicación.
00:40:33
En principio cada una será un método.
00:40:34
Pero esta que me han pedido que es
00:40:37
oye yo te voy a dar desde fuera un cliente
00:40:39
y tú me tienes que decir
00:40:41
si el pedido tiene ese cliente en su lista o no.
00:40:43
Pues eso que es una funcionalidad
00:40:48
yo lo tengo que programar en un método.
00:40:50
En un método.
00:40:55
Pues aquí ya lo tengo.
00:40:56
Ahora lo más importante de esto
00:41:03
para entender bien esto
00:41:05
es si ahora cómo uso yo esto.
00:41:06
Y esto y qué pedido lo hace
00:41:07
y cuándo lo hago yo
00:41:09
y de qué manera y cómo.
00:41:10
Bueno vamos a parar unos minutos
00:41:11
y luego lo hacemos.
00:41:14
Y ahora me acuerdo.
00:41:16
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 6
- Fecha:
- 18 de diciembre de 2023 - 13:58
- Visibilidad:
- Público
- Centro:
- IES ROSA CHACEL
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1280x720 píxeles
- Tamaño:
- 775.97 MBytes