20251203 POO_ClasesMetodos_3 - 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:
Las clases, por tanto, tienen dos partes, la declaración de propiedades, atributos o campos y la parte de métodos, ¿vale? Métodos es un trozo de código, un trozo de código que los objetos de esta clase pueden ejecutar, pueden llamar desde el main y eso era lo importante.
00:00:00
lo que ponemos aquí en métodos
00:00:22
el código que pongamos aquí en métodos
00:00:25
solo lo puede
00:00:27
lanzar
00:00:29
alguna instancia
00:00:29
u objeto de esta clase
00:00:33
es la única forma de lanzarlo
00:00:34
no es que lo podamos llamar desde cualquier momento
00:00:35
como cualquier otra función de esta declaración
00:00:38
antigua de toda la vida, no
00:00:40
este trozo de código que está aquí
00:00:42
solo lo puede llamar un objeto
00:00:44
de la clase alumno
00:00:46
por eso aquí en este main
00:00:48
en este por ejemplo
00:00:49
creábamos un objeto alumno
00:00:52
como por ejemplo este, alumno2
00:00:54
es mi objeto alumno creado
00:00:56
y ahora este objeto
00:00:58
puede llamar a este método
00:00:59
de la manera en la que se llama punto y nombre
00:01:02
del método, que los métodos
00:01:04
siempre llevan paréntesis, a diferencia
00:01:06
de las propiedades que no las llevan, es una variable sin más
00:01:08
los métodos sí, bueno pues
00:01:10
esa dinámica entendida, el método
00:01:12
se programa aquí, ahora vemos
00:01:14
más detalles de cómo se programan los métodos
00:01:16
y al método
00:01:18
lo llama un objeto
00:01:20
ya desde la clase main en ejecución.
00:01:22
Entonces, en función del objeto que lo llame,
00:01:25
aquí lo está llamando alumno, por ejemplo.
00:01:29
Aquí lo está llamando alumno2.
00:01:32
Cualquier objeto de la clase alumno lo puede llamar.
00:01:34
Pues en función del objeto que lo llame,
00:01:37
cuando ahora ya este código se ejecute,
00:01:39
¿a qué nos referimos con edad?
00:01:44
Bueno, pues depende.
00:01:47
En este caso nos referimos a la edad
00:01:48
del alumno este
00:01:51
porque es el que lo llama
00:01:54
sin embargo aquí cuando se ejecute
00:01:54
este código
00:01:57
¿a quién nos referimos con edad?
00:01:58
pues cuando se ejecute este código
00:02:02
aquí con edad nos estaremos
00:02:03
refiriendo a la de alumno 2
00:02:05
entonces este método tendrá unos resultados
00:02:07
o tendrá otros
00:02:10
yo lo llamo igual, lo llamo de la misma manera
00:02:11
en ambos casos punto es mayor de edad
00:02:13
pero este método
00:02:16
hace unas cosas diferentes a estas
00:02:17
porque este método usa
00:02:19
las propiedades de este
00:02:21
y sin embargo este usa las propiedades
00:02:22
de este otro, entonces los resultados
00:02:25
son distintos
00:02:27
los resultados son distintos
00:02:28
bueno, eso que es lo más importante
00:02:30
en realidad está claro
00:02:33
bueno, pues ahora vamos a ver más detalles
00:02:34
de programación de métodos
00:02:37
ese es el primero que habíamos
00:02:40
hecho, lo que habíamos
00:02:41
dicho sí o sí, el método
00:02:43
tiene un nombre
00:02:45
lógicamente, en el que yo
00:02:46
recojo, pues si puede ser
00:02:49
explicativo sobre lo que hace, mejor
00:02:51
aunque sea un nombre muy largo de método, no pasa
00:02:53
nada, los métodos en Java se llaman
00:02:56
con
00:02:58
100 caracteres si hace falta
00:03:00
lo que importa es que explique bien lo que
00:03:01
hace para el que luego ve el código de otros
00:03:03
pues no tenga que andar ahí metiéndose
00:03:06
en cada método para ver
00:03:07
lo que hace por dentro
00:03:09
bueno, pues esta parte está
00:03:10
claro, el nombre, ahora
00:03:13
esto de aquí que hemos
00:03:15
puesto nosotros, hasta ahora
00:03:17
hemos hecho solo un único método
00:03:19
con void. ¿Qué significa cuando
00:03:21
pongo void? Cuando pongo void
00:03:24
significa que el método me hace un código
00:03:26
pero no me devuelve,
00:03:29
no me entrega a mí
00:03:31
como método main que
00:03:32
llama al programa, no me devuelve ningún
00:03:34
valor de retorno. Para
00:03:37
entenderlo mejor, vamos a poner otro método más,
00:03:40
otro método, este ya lo tenemos hecho y
00:03:42
entendido, ¿verdad? Vamos a poner un
00:03:44
método que sí que devuelva un valor de retorno.
00:03:46
Por ejemplo, vamos a hacer
00:03:48
un método que
00:03:50
me devuelva
00:03:52
el número de matrícula
00:03:53
del alumno, porque la matrícula
00:03:56
el código, vale
00:03:58
vamos a hacer aquí un método
00:03:59
para que me devuelva
00:04:01
no que me muestre por consola, es diferente
00:04:04
mostrar por consola es una cosa
00:04:06
y entregarme, darme a mí
00:04:08
es otra, vale, no es lo mismo
00:04:10
que tú
00:04:12
me escribas algo
00:04:14
en la pizarra
00:04:16
que yo lo veo, a que me des
00:04:16
a mí eso que estás escribiendo, bueno pues
00:04:19
el system out, me lo estás escribiendo
00:04:21
y yo lo veo, pero no me estás entregando nada
00:04:23
entonces cuando el método devuelve algo
00:04:26
tú no me lo escribes en la pizarra, es que
00:04:28
me das directamente lo que estás mostrando
00:04:29
bueno, pues entonces
00:04:31
vamos a hacer un método que me
00:04:33
entregue a mí el
00:04:35
número de matrícula de este alumno
00:04:37
del alumno que llame al método
00:04:39
pues lo primero, vamos a elegir bien el nombre
00:04:41
del método, pues yo
00:04:43
que sé, por ejemplo, getNumeroMatricula
00:04:45
código
00:04:48
GetCódigoMatricula
00:04:49
Vale, ya he elegido bien el método
00:04:53
Parece que está claro por su nombre lo que hace
00:04:57
Ahora, ¿qué es lo que pongo delante?
00:04:59
Delante, ahora este método
00:05:04
Si quiero que me devuelva algo
00:05:05
En concreto que me va a devolver
00:05:07
El código de la matrícula
00:05:09
Que el código de la matrícula es un entero
00:05:10
Porque está aquí dentro como entero
00:05:13
Luego lo que me va a devolver es un número entero
00:05:15
Pues entonces tengo que poner aquí
00:05:17
El tipo de dato
00:05:20
Del valor que me va a devolver
00:05:22
¿Vale? Entonces si el método
00:05:23
Retorna o devuelve
00:05:32
Algún valor
00:05:35
Como es el caso de este método
00:05:42
Hay que poner
00:05:43
El tipo de dato de ese valor
00:05:50
El tipo de dato
00:05:52
Bueno, pues aquí me va a devolver
00:05:55
El código de matrícula que es un entero
00:06:02
Pues pongo in
00:06:04
Si yo hiciera un método que me devolviera algo
00:06:04
Que es una cadena, pues pondría string
00:06:07
Si hiciera un método que devolviera algo
00:06:09
que es un array, podría poner
00:06:11
el tipo array, por ejemplo
00:06:14
es decir, imaginaos que este método devuelve
00:06:15
un array de números, no sé por qué
00:06:17
pues podría poner esto
00:06:19
y no pasa nada
00:06:21
jolines, donde está el
00:06:23
aquí
00:06:25
¿vale? podría poner esto
00:06:27
en este caso, este método
00:06:30
me tendría que devolver
00:06:31
un array de números
00:06:33
¿vale? entonces este método
00:06:35
puede hacer cosas y devolver cosas
00:06:37
ahora veremos cómo las devuelve
00:06:39
Pero lo que yo tengo que poner aquí delante
00:06:41
Sí o sí, es el tipo de dato
00:06:43
De eso que devuelve
00:06:44
Array de enteros
00:06:46
Entero, mondo y lirondo
00:06:47
String, lo que sea
00:06:50
¿Vale? Solo puede devolver
00:06:52
Un valor, entonces diréis, si devuelve dos números
00:06:56
¿Qué ponemos? Int, int
00:06:59
Si devuelve dos números, no
00:07:00
Es que los métodos solo pueden devolver
00:07:01
Un valor, resultado
00:07:05
Solo uno
00:07:06
Bueno, devuelve
00:07:07
Un array
00:07:12
Lo que pasa es que el array tiene dentro muchas cosas
00:07:13
Pero es un objeto array
00:07:15
¿Vale?
00:07:18
No podría devolver dos arrays
00:07:22
Dos arrays no, pero uno sí
00:07:24
Porque es un objeto array
00:07:25
Vale
00:07:27
Bueno, pues por ahora
00:07:32
Y ahora ya hemos puesto int
00:07:35
Por ahora ya sabemos que paréntesis tiene que tener
00:07:36
Pues vamos a dejar los paréntesis sí o sí
00:07:38
Por ahora vacíos, todavía no lo estamos metiendo en paréntesis
00:07:41
Porque este de antes
00:07:43
Los hemos puesto vacíos
00:07:45
sin más, y este de aquí también vacíos
00:07:46
todo método tiene que tener sus paréntesis
00:07:49
y ahora ya sí, vamos a calcular
00:07:52
el valor que este método tiene que devolver
00:07:56
bueno, pues es el código de matrícula del alumno este
00:07:58
lo tengo yo para devolverlo
00:08:02
vamos a ver las propiedades del alumno
00:08:05
las propiedades del alumno son su NIV, nombre, edad, anda, sí
00:08:07
una propiedad del alumno que llame a ese método
00:08:10
es matrícula
00:08:13
Y matrícula yo puedo acceder a su código con punto código, ¿verdad?
00:08:14
Pues entonces el valor que yo quiero devolver, si lo guardo aquí en una variable auxiliar, pues sería este, matrícula.código, ¿verdad?
00:08:20
Este es el valor que yo querría devolver.
00:08:35
la propiedad matrícula
00:08:38
de este alumno que llama al método
00:08:40
a la que tengo acceso
00:08:42
que está aquí arriba directamente
00:08:44
la propiedad matrícula
00:08:45
y dentro de la propiedad matrícula
00:08:47
solo su código
00:08:50
es lo que yo quiero que este método devuelva
00:08:51
vale, aquí lo tengo en una variable guardadita
00:08:54
una variable local, ahí auxiliar
00:08:56
una variable guardada
00:08:58
pero claro, ahora este método tiene que
00:08:59
mandarlo para afuera
00:09:01
tiene que mandarlo para afuera
00:09:03
no imprimirlo, porque esto
00:09:05
no es mandarlo para afuera
00:09:07
esto sería escribirmelo en la pizarra
00:09:08
no me lo está mandando para afuera
00:09:11
con lo cual este método, si yo quiero hacerlo
00:09:13
así, quiero que lo muestre
00:09:15
tendría que poner aquí un void
00:09:17
entonces si pongo un void, vale
00:09:18
pero en este caso
00:09:20
me está mostrando en la pizarrita
00:09:22
no me lo está entregando a mí
00:09:25
yo quiero que me lo entregue a mí
00:09:26
para eso he puesto aquí un int
00:09:29
para decirle, oye tú, tienes que retornarme
00:09:30
este valor
00:09:33
bueno pues como
00:09:35
cuál es la sentencia para que el método
00:09:37
mande para afuera
00:09:40
tire ese valor para afuera para que
00:09:41
alguien lo recoja desde fuera
00:09:44
pues la sentencia para que ese método lance
00:09:45
fuera ese valor para que alguien fuera lo pueda
00:09:47
recoger es la sentencia
00:09:49
return vale pues
00:09:51
return y después ponemos ese valor
00:09:53
que el método tiene que lanzar para afuera
00:09:56
para que alguien recoja
00:09:57
¿qué valor es?
00:09:59
result
00:10:02
¡Hala! Pues ya tengo este método
00:10:02
Estupendamente hecho
00:10:07
Podría ahorrarme la variable local
00:10:08
Incluso si me da la gana
00:10:16
Y poner directamente return matricula.código
00:10:17
Pongo return matricula.código
00:10:20
Y hasta me ahorro
00:10:23
Esta variable local
00:10:24
Da igual, eso ya son detallitos
00:10:25
¿Vale? Son detallitos
00:10:27
¿Vale?
00:10:29
Cualquier variable que uno declare aquí
00:10:31
A lo mejor yo aquí declaro una variable
00:10:33
Porque voy a hacer una suma de no sé qué
00:10:36
porque el método tiene que hacer la suma de los precios
00:10:38
de no sé cuántos, lo que sea, pues cualquier variable que yo
00:10:41
declare aquí dentro para hacer la operativa que sea
00:10:44
son variables locales a este método, está en este bloque
00:10:47
recordáis lo de los bloques, ¿no? un bloque es cualquier
00:10:50
código entre llaves, un bloque se abre en un if
00:10:53
se abre en un for, un bloque se abre en muchos sitios
00:10:56
pues también ahora ya
00:10:59
vemos que un bloque se abre cada vez que
00:11:02
haces un método, cada vez que haces un método
00:11:05
se abre un bloque
00:11:07
con lo cual, todas las variables
00:11:08
que declaremos ahí dentro
00:11:11
desaparecen
00:11:13
tal cual la ejecución del método termine
00:11:15
porque serán variables locales
00:11:18
igual que todas las variables que
00:11:19
declaramos locales a un if, al bloque
00:11:21
de un if, en cuanto el if termina esas variables
00:11:23
han desaparecido, pues aquí igual
00:11:25
entonces esta variable int result
00:11:27
sería local
00:11:32
porque la he declarado aquí dentro, cuando el método
00:11:33
termina, se va a la basura, pero es que
00:11:35
no me importa nada que se vaya a la basura, porque
00:11:37
la he usado solo como contenedor
00:11:39
auxiliar para
00:11:42
pasársela al return y decirle al return, oye tú
00:11:43
lanza este contenido fuera
00:11:45
que es el que tengo que entregar
00:11:47
esa variable es local, desaparece
00:11:49
¿vale?
00:11:51
bueno, pues este método ya estaría
00:11:53
completo, ahora ¿cómo lo usamos?
00:11:55
pues ya sabemos cómo se
00:12:00
usan los métodos, tiene que haber
00:12:01
un objeto, en mi
00:12:03
programa que se está ejecutando, en mi programa
00:12:05
que arranca con un main
00:12:07
tiene que haber un objeto para ejecutarlo, si no ese
00:12:08
método no puede ser lanzado
00:12:11
venga, pues vamos a
00:12:13
lanzarlo por ejemplo con el objeto
00:12:15
alumno2, alguno
00:12:17
que tuviera matrícula, alumno, alumno tiene
00:12:19
matrícula porque se la hemos puesto antes
00:12:21
hemos creado alumno en este main
00:12:23
le hemos puesto sus datos
00:12:25
y le hemos metido una matrícula
00:12:27
pues venga, ahora resulta
00:12:30
que yo quiero
00:12:32
mostrar la
00:12:33
el código de matrícula
00:12:40
del alumno
00:12:43
el código de
00:12:43
matrícula
00:12:49
del alumno, este que está
00:12:52
en esta variable, del alumno que está en la variable
00:12:56
alumno que he creado arriba
00:12:59
bueno, pues entonces, este objeto
00:13:00
alumno es el que tiene que llamar
00:13:03
al método que hace eso, es el que tiene que
00:13:05
llamar
00:13:07
pues venga, que llame a este método
00:13:07
y lo llama con sus paréntesis
00:13:10
como hay que llamar a los métodos, hay que poner el paréntesis
00:13:12
vale, el método ya está llamado
00:13:15
vale, el objeto alumno
00:13:18
llama a este método, muy bien
00:13:21
ya sabemos lo que hará este método
00:13:22
entonces, se mete
00:13:24
aquí, coge el
00:13:26
código de la matrícula del alumno
00:13:28
que llama al método
00:13:31
que en este caso es alumno, coge
00:13:32
su código de matrícula
00:13:34
y pum, me lo
00:13:36
lanza, me lo lanza
00:13:38
para que yo lo recoja, y yo estoy aquí
00:13:40
yo he llamado
00:13:42
al método, el método me ha lanzado una cosa
00:13:44
y yo estoy aquí que o la
00:13:46
recojo o se va a la basura
00:13:48
pues tal y con lo que he escrito no lo he recogido
00:13:50
en ningún sitio, con lo cual
00:13:52
se está yendo a la basura, es decir
00:13:54
es un poco estúpido que yo llame a este
00:13:56
método para que me devuelva
00:13:58
con el return, me devuelva un valor
00:14:00
y yo aquí no lo
00:14:02
recoja, porque se va tal cual
00:14:04
a la basura, vale, pues
00:14:06
¿cómo recogemos ese valor?
00:14:08
¿cómo recogemos el valor que
00:14:10
este me ha lanzado con el return?
00:14:12
¿Cómo lo recogemos? Pues asignándoselo mediante una asignación. Se lo asigno yo a la variable, por ejemplo, lo puedo guardar, por ejemplo, en esta, yo qué sé.
00:14:14
Pues ahora ya este valor se va a guardar en esta variable, se va a guardar en esta variable, que yo la quiero mostrar, que es la idea,
00:14:33
Porque si no, ¿para qué la he calculado?
00:14:44
Pues la muestro y ya está
00:14:48
¿Vale?
00:14:50
¿Entendido?
00:15:00
Repito, yo podría llamar al método así
00:15:06
Y no pasa nada
00:15:08
Podría llamar al método así
00:15:10
Pero es una pérdida de tiempo
00:15:12
Porque el valor que me está entregando
00:15:14
No lo estoy guardando en ningún sitio
00:15:16
Luego al no guardarlo en ningún sitio
00:15:18
Luego no puedo aprovecharme de él
00:15:19
Para mostrarlo, para hacer el cálculo que toque
00:15:21
¿Para qué lo llamo un método?
00:15:23
Para que me devuelva un valor
00:15:26
si no recojo ese valor en ningún sitio
00:15:27
entonces cuando
00:15:29
llamamos a métodos que devuelven
00:15:31
valores
00:15:33
pues guardamos ese valor en algún sitio
00:15:34
porque es que si no, menuda tontería
00:15:37
y ahora ya con ese
00:15:39
valor resultante de esa llamada
00:15:41
yo hago ya lo que quiera
00:15:43
lo que quiera, vale
00:15:45
entonces
00:15:49
si lo ponemos aquí por ejemplo
00:15:53
para luego
00:15:57
en la ejecución verlo
00:15:58
¿Y si ponemos el... para llamar al método en SIS?
00:15:59
Claro.
00:16:08
Sí, sí, sí, ahora lo escribo.
00:16:11
Y te ahorras la variable.
00:16:15
¿Vale?
00:16:18
Aquí está el código de matrícula.
00:16:21
La matrícula es este, 43.
00:16:24
Esto de aquí es esto.
00:16:28
entonces efectivamente lo que dice él
00:16:31
yo aquí he usado una variable auxiliar
00:16:35
para guardarlo ahí
00:16:38
y luego pasarle esa variable
00:16:40
al system out
00:16:42
pero bueno, podría hacerlo así
00:16:43
y estaría haciendo lo mismo
00:16:46
directamente al system out
00:16:47
pasarle ya la llamada al método también
00:16:50
podríamos pasar la llamada al método
00:16:52
porque este método
00:16:56
ya te va a devolver el valor
00:16:57
y ese valor ya se lo estás enchufando tú
00:17:00
al system out
00:17:02
nos ahorramos el intermediario
00:17:02
este me da
00:17:05
un valor que yo enchufo a la variable
00:17:07
y ahora le enchufo la variable
00:17:08
al system out
00:17:11
pues aquí me ahorro el intermediario
00:17:12
este me entrega un valor que en lugar
00:17:14
de guardarlo en un contenedor intermedio
00:17:17
se lo enchufo directamente a este
00:17:19
de aquí, pero bueno, eso ya es un detalle
00:17:21
si por ahora os es más claro
00:17:22
de esta
00:17:25
manera, mejor para entender
00:17:27
bien que el método
00:17:29
que tiene aquí un tipo de dato
00:17:30
que tiene aquí un tipo, el método
00:17:32
que no tiene iVoid, el que tenga ahí un tipo
00:17:34
me devuelve algo
00:17:36
y yo ese algo o lo guardo
00:17:38
en algún sitio, o se lo enchufo
00:17:40
a otro método, pero bueno, o lo guardo en algún sitio
00:17:42
o lo pierdo
00:17:44
¿el Void solo es para...?
00:17:46
el Void es para métodos que no devuelvan
00:17:48
nada, normalmente si no devuelves
00:17:50
nada, pues de alguna manera tendrás que dar la realimentación
00:17:52
entonces la sueles dar por System.out
00:17:55
claro, pero puede ser un método
00:17:56
que a lo mejor se conecta a una base de datos
00:17:58
y hace algo con ella.
00:18:00
Por ejemplo, podría ser
00:18:01
algo que no te devuelva ningún valor resultado.
00:18:02
¿Vale?
00:18:05
Hombre, esta misma idea
00:18:08
de mostrar el código de matrícula,
00:18:09
claro, uno podría haberla hecho así,
00:18:11
con un...
00:18:14
¿No?
00:18:22
La podríamos haber hecho, pues, de esta otra manera.
00:18:22
¿Vale?
00:18:31
Lo podríamos haber hecho así.
00:18:31
Y entonces, este método
00:18:33
te la muestra directamente,
00:18:34
el código.
00:18:36
No te lo devuelve para que tú le muestres.
00:18:37
Diríais, uy, pues, mucho mejor,
00:18:39
me ahorro tiempo.
00:18:40
Pues no.
00:18:41
está muchísimo peor
00:18:42
muchísimo peor
00:18:44
¿por qué es muchísimo peor?
00:18:46
pues a nivel conceptual de desarrollo
00:18:49
de diseño
00:18:51
en una aplicación
00:18:51
sobre todo en un software
00:18:54
lo que queremos es que sea
00:18:56
y esta palabra ya la he usado alguna vez pero insistiré en ella
00:18:58
porque a lo mejor suena rara
00:19:00
queremos que un software sea lo más desacoplado
00:19:01
posible, que tenga el mayor nivel de desacoplamiento
00:19:05
posible
00:19:07
¿qué significa que un software
00:19:08
sea desacoplado
00:19:11
que cada parte
00:19:12
se hace completamente
00:19:15
por separado, por ejemplo
00:19:17
la parte de dar resultados
00:19:18
al usuario, le hago
00:19:21
en este trozo de código, la parte de
00:19:22
la operativa matemática, la hago aquí
00:19:25
la parte de comunicarse con la base de datos
00:19:26
la hago aquí, en lugar de hacerlo todo mezclado
00:19:29
todo mezclado
00:19:31
pues yo separo conceptualmente
00:19:32
cada parte de la aplicación
00:19:35
en clases distintas
00:19:36
eso es que esté desacoplado
00:19:38
y eso es bueno, ¿por qué?
00:19:40
porque si yo hago cualquier pequeño cambio
00:19:43
me voy solo a esa parte, oye es un cambio solo en la vista
00:19:46
en lo que se llama la vista de la aplicación, que es lo que ve el usuario
00:19:49
en la interfaz gráfica, el cambio es solamente en la vista
00:19:51
pues me voy a la parte de la vista y cambio ahí
00:19:55
el resto de la aplicación no tengo ni que mirarla, ni que abrirla, ni que nada
00:19:57
por eso es bueno que esté desacoplada
00:20:00
bueno, pues este método
00:20:02
está desacoplado y el de abajo no
00:20:05
¿por qué? porque el de arriba
00:20:08
separa
00:20:10
la parte de cómo ve las cosas
00:20:12
el usuario, de la parte del cálculo
00:20:14
y eso es bueno
00:20:16
este método te calcula y te da el valor
00:20:18
y te dice, ahora tú decide cómo lo muestras
00:20:20
cómo te da a ti la gana mostrarlo
00:20:23
¿que quieres un system out?
00:20:24
pues pon un system out o pon lo que te dé la gana
00:20:26
a mí es que me la trae floja
00:20:29
¿que quieres mostrar una interfaz gráfica?
00:20:30
pues muy bien, ahora coges
00:20:33
el código que yo te doy
00:20:35
Y los metes en una interfaz gráfica.
00:20:36
Pero está separado.
00:20:38
Este método de aquí no se entera.
00:20:39
Este método dice,
00:20:41
oye, yo me limito a darte el valor.
00:20:43
Y tú ya,
00:20:46
desde tu otra parte del software,
00:20:47
decides cómo lo muestras.
00:20:49
Ese es tu problema.
00:20:51
Sin embargo, de esta manera,
00:20:53
el propio método te está comprometiendo,
00:20:55
te está forzando, te está obligando
00:20:57
a mostrarlo en un system out.
00:20:58
Si tú cambias la aplicación
00:21:01
y de repente te gusta que sea con interfaz gráfica,
00:21:02
pues tienes que ir aquí al método, quitar este
00:21:05
system out, entonces estás mezclando
00:21:07
conceptos, estás mezclando, hacer los cálculos
00:21:09
con cómo se ven
00:21:11
¿vale? ahora nosotros
00:21:13
en nuestro ejemplo este cortito y sencillito
00:21:15
pues está haciendo
00:21:18
lo mismo esto que esto, está haciendo lo mismo
00:21:19
pero bueno, es que estamos aquí con programas
00:21:21
de cuatro líneas donde no es tan
00:21:23
grave separar por partes ¿vale?
00:21:25
pero sí es importante que cojáis esta idea
00:21:27
esta idea de
00:21:29
buena práctica de diseño
00:21:31
no es no buena, es que es imprescindible
00:21:33
la del desacoplamiento
00:21:35
de la aplicación, separo partes
00:21:37
y de hecho hay un montón de patrones de diseño relacionados con eso
00:21:39
el modelo vista y controlador
00:21:41
vista por un lado, controles por otro
00:21:42
casi todo lo que se llaman patrones
00:21:44
de diseño, que es
00:21:47
cómo organizar el código
00:21:48
de tu aplicación, cómo organizarlo
00:21:51
pues están orientados a eso
00:21:53
a separar en partes
00:21:54
vale, pues entonces
00:21:55
vamos bien
00:21:58
vale
00:22:01
vámonos ahora a meternos
00:22:04
y ya completamos
00:22:07
la parte de declaración de métodos
00:22:09
de un poco
00:22:11
el resumen más por encima
00:22:11
vamos ahora a meternos con estos paréntesis
00:22:14
porque yo hasta ahora con los métodos
00:22:17
estos que he declarado
00:22:19
me he limitado a ponerlos ahí
00:22:20
porque son obligatorios, todos los métodos
00:22:23
tienen que llevar paréntesis en la declaración
00:22:25
y luego en la llamada
00:22:27
también, hay que ponerlos
00:22:29
para la llamada, pero
00:22:31
hasta ahora no he dicho para qué valen esos paréntesis
00:22:33
bueno
00:22:35
pues esos paréntesis
00:22:37
valen para darle
00:22:39
al método alguna información
00:22:41
del exterior para que trabaje con ella
00:22:43
porque si el
00:22:45
método tiene los paréntesis vacíos
00:22:47
y ahí no hay nada
00:22:49
el método solamente puede trabajar
00:22:50
con las propiedades del objeto
00:22:53
con eso claro que puede
00:22:55
trabajar, las tiene ahí encima y trabaja con las
00:22:57
propiedades del objeto para hacer lo que sea
00:22:59
pero ya está
00:23:00
no puede trabajar con más información
00:23:02
luego se puede
00:23:05
crear variables locales, claro, pero son variables
00:23:06
locales que se crea él y le da
00:23:08
él el valor que quiera
00:23:10
pero puede ocurrir que haya un método
00:23:11
que necesite información del exterior para
00:23:14
trabajar, por ejemplo
00:23:16
imaginaos, ahora vamos a
00:23:18
hacer un método dentro de la clase
00:23:20
matrícula para variar
00:23:22
que este método
00:23:28
No necesite, oye, yo de secretaría te dice, necesito de las matrículas de los usuarios, necesito saber cómo es la cantidad, a ver qué podemos hacer que tenga sentido, porque las matrículas no llevan IVA, ¿verdad?
00:23:30
Pero da igual, le vamos a poner un IVA
00:23:49
El de secretaría dice
00:23:52
Oye, necesito saber cuál es la cantidad que tiene que pagar
00:23:54
Si le pongo el IVA
00:23:56
Necesito saberlo
00:23:59
Con lo cual, vamos a añadir un método
00:24:00
Matrícula
00:24:02
Cantidad con IVA, por ejemplo
00:24:06
Yo que sé
00:24:08
Cantidad con IVA
00:24:09
Este método tiene que calcular lo que cuesta la matrícula
00:24:14
Ya con el IVA incluido
00:24:18
Y devolvérmelo
00:24:20
devolvérmelo para lo que sea
00:24:21
con lo cual este método
00:24:23
que le pondría yo ahí como tipo de retorno
00:24:25
le pondríamos un double
00:24:27
porque me va a devolver una cantidad double
00:24:29
va a operar con la cantidad
00:24:31
aquí mis paréntesis
00:24:32
vale
00:24:36
pero claro
00:24:42
ahora yo me pongo a programar el método y digo
00:24:44
oye espérate
00:24:47
para calcular yo la cantidad con IVA
00:24:47
me tendrás que decir
00:24:50
cuál es el IVA
00:24:52
porque yo no tengo esa información, la única información que yo tengo es
00:24:54
el código de la matrícula del alumno, la descripción de esa matrícula
00:24:58
y lo que cuesta, y me estás pidiendo que haga un cálculo para el cual necesito
00:25:03
que tú me digas algo, me des una información
00:25:07
bueno, pues esa información del exterior que puede hacer falta para que un método
00:25:09
trabaje, se pasa aquí en los paréntesis, y es lo que se llama
00:25:15
parámetros, ¿vale? entonces, si un método
00:25:19
necesita datos
00:25:27
ajenos al objeto, como en este caso
00:25:32
IVA es ajeno al objeto, no tiene nada que ver con el objeto, el IVA es el IVA, lo que sea
00:25:37
datos ajenos al objeto
00:25:40
para operar, hay que pasárselo
00:25:45
como parámetro
00:25:49
pasárselo como parámetro
00:25:51
Vale, ¿y cómo se pasan los parámetros?
00:26:02
Aquí en los paréntesis
00:26:06
Bueno, pues parámetros se pueden pasar
00:26:08
De 1 a 2.000 millones
00:26:12
Bueno, de 0
00:26:13
Aquí, por ejemplo, no estoy pasando ninguno
00:26:16
Los métodos que he hecho aquí
00:26:18
Como no necesito información del exterior, 0 parámetros
00:26:19
Aquí tampoco necesitaba
00:26:22
Información del exterior, 0 parámetros
00:26:24
Aquí sí, necesito
00:26:26
Un parámetro, el IVA, un valor
00:26:28
Double, por ejemplo
00:26:30
bueno, pues yo ahí tengo que poner
00:26:31
el parámetro
00:26:32
exactamente igual que como declaraba
00:26:35
una variable
00:26:37
el iba como va a ser, pues
00:26:38
vamos a ponerle que sea entero
00:26:40
pues int
00:26:42
y el nombre que yo le doy a ese parámetro
00:26:44
el nombre que a mí me da la gana darle a ese parámetro
00:26:47
el que yo quiera
00:26:49
venga, pues le voy a dar el parámetro iba
00:26:50
ala, pues ya está
00:26:52
ya tengo una declaración
00:26:55
de método
00:26:57
en la que estoy indicando, oye tú
00:26:57
para operar voy a
00:27:00
necesitar que me pases un número
00:27:03
entero, es lo que estoy diciendo
00:27:05
cuando me pases un número entero
00:27:07
yo operaré
00:27:09
haré lo que sea y te lo devolveré
00:27:10
de vuelta, el resultado
00:27:13
necesito que me pases
00:27:15
un número entero y ese número entero será el que sea
00:27:17
pero el método lo va a
00:27:19
identificar con este nombrecito
00:27:21
el nombre que le ha dado la gana ponerle a él
00:27:22
tú pásame un número entero que yo lo
00:27:24
paso en mi cajita que se llama IVA
00:27:27
como si se llama pepito, la cajita
00:27:29
eso es lo de menos
00:27:31
lo importante es esto
00:27:32
el tipo de dato, entonces tú pásame
00:27:34
un tipo de dato coherente
00:27:37
con esa declaración
00:27:39
de ahí, yo eso
00:27:41
lo meto en mi cajita y ahora ya opero
00:27:43
aquí y hago lo que tenga que hacer, ahora ya
00:27:45
sí que lo puedo hacer
00:27:47
pues venga, aquí que tenemos que hacer
00:27:48
el
00:27:51
el este
00:27:51
pues será, si lo ponemos en una
00:27:55
variable aparte
00:27:57
pues el doble resultado
00:28:00
pues el doble resultado será
00:28:01
la cantidad
00:28:03
más la cantidad con el IVA que será
00:28:04
cantidad
00:28:07
por
00:28:09
IVA
00:28:12
ahora aquí ya
00:28:15
cuando mezclemos tipos de datos distintos
00:28:16
acordaos de que ahí se salte
00:28:19
la alarma para ver si todo va bien
00:28:21
entonces cantidad por IVA
00:28:23
estoy mezclando
00:28:25
un entero que es IVA con
00:28:26
un double, no pasa nada
00:28:29
porque cuando hay una operación matemática
00:28:30
que mezcla tipos numéricos
00:28:33
distintos
00:28:35
el de menos precisión promociona
00:28:35
el de más precisión, con lo cual
00:28:39
todo esto se va a promocionar a double
00:28:41
y ahora con ese double que tengo que hacer
00:28:43
yo, pues dividirlo entre 100
00:28:45
¿verdad? ¿vale?
00:28:46
y ahora
00:28:56
este de su resultado
00:28:57
se lo
00:28:58
devuelvo
00:29:11
¿vale?
00:29:13
caerá ahí, o sea, este método
00:29:16
aquí estamos en la parte de declaración, acordaros
00:29:23
aquí, yo no se está ejecutando
00:29:25
nada, es como cuando os decía aquí
00:29:27
aquí no se está ejecutando nada, aquí estoy
00:29:29
diciendo lo que va a pasar cuando se ejecute
00:29:31
pero no se está ejecutando nada
00:29:33
entonces, aquí lo mismo
00:29:34
aquí no se está ejecutando nada, yo estoy diciendo
00:29:36
cuando esto se ejecute
00:29:39
tú me pasarás
00:29:41
un valor entero y yo haré esto con él
00:29:43
cuando esto se ejecute, no se está ejecutando nada, no estamos
00:29:45
en un main todavía, esto
00:29:47
lo que te dice es, vale, cuando tú
00:29:49
me llames, me llamarás
00:29:51
dándome un número entero, y yo
00:29:53
con ese número entero haré esto
00:29:55
y te lo devolveré.
00:29:56
Pero aún no se está ejecutando nada, con lo cual
00:29:59
no necesito
00:30:01
ningún valor numérico aquí.
00:30:03
Solo necesito decir lo que voy a hacer.
00:30:05
Vale, antes de ahora ver
00:30:09
cómo ejecutamos este método.
00:30:10
Cuidado
00:30:14
con lo de mezclar los int y los
00:30:14
double y todo eso, por eso digo que siempre
00:30:16
hay situaciones en las que uno tiene que decir
00:30:18
uy, cuidado que esta es una situación en la que
00:30:20
se me tiene que activar una neurona extra
00:30:22
imaginaos que ahora
00:30:24
me cambia la aplicación y me dice, no, no, las cantidades
00:30:26
solo enteras, que es que con decimales
00:30:28
me hago un lío que no veas
00:30:30
entonces
00:30:33
dices, ah, no pasa nada
00:30:34
yo te lo cambio a int, magnífico
00:30:36
pues la hemos cagado
00:30:38
porque ahora ya
00:30:40
esto se convierte
00:30:41
en un entero
00:30:44
esto se convierte en división entera
00:30:45
con lo cual esto va a ser cero siempre
00:30:48
siempre va a ser cero porque es el cociente
00:30:50
¿vale? no es lo mismo
00:30:52
la división entera que la división con decimales
00:30:55
entonces si esto es un número entero
00:30:57
esta es la división
00:30:59
entera que es el cociente y esto va a ser
00:31:01
una cantidad menos de 100
00:31:03
con lo cual
00:31:05
yo al dividirla
00:31:07
pues me puede dar cero perfectamente
00:31:08
entonces esto tiene que ser double
00:31:10
tiene que ser double
00:31:12
si esta cantidad es double no hay problema
00:31:13
porque ya iba a promocionar automáticamente
00:31:16
Bueno, ahora vamos a ver
00:31:18
Cómo ejecutamos esto
00:31:24
Pues esto lo tiene que ejecutar un objeto
00:31:25
Como todos los métodos, lo tiene que ejecutar un objeto
00:31:31
No hay otra
00:31:33
Bueno, pues vámonos a un main que ya tenga objetos
00:31:34
Venga, este main de aquí
00:31:37
Tiene ya un objeto alumno
00:31:40
Con un montón de datos que los hemos metido
00:31:42
Pues vamos a ver cuál es el precio
00:31:43
Con IVA
00:31:46
Vale, pues a ver, ¿de qué objeto
00:31:47
queremos mostrar
00:32:11
ese precio
00:32:13
del objeto alumno
00:32:15
vale, pues entonces tendrá que ser el objeto alumno
00:32:17
el que llame al método, para que el método
00:32:20
trabaje con los datos de alumno
00:32:22
venga, ¿tengo algún método
00:32:24
que me haga esto que me han pedido? uy, sí, qué suerte
00:32:26
tengo un método
00:32:28
que hace justo
00:32:29
lo que
00:32:31
lo que yo quería
00:32:32
ah, perdón, perdón, perdón
00:32:35
mucho más divertido, claro
00:32:38
el método matrícula
00:32:39
lo he metido aquí
00:32:42
en la clase matrícula
00:32:44
luego lo tiene que llamar
00:32:46
un objeto matrícula
00:32:48
¿vale?
00:32:49
al método matrícula, perdón
00:32:51
al método cantidad con IVA
00:32:53
lo tiene que llamar un objeto matrícula
00:32:54
¿vale?
00:32:57
yo quiero que lo llame
00:32:58
el objeto matrícula de este alumno
00:33:00
luego ¿qué escribiría aquí?
00:33:03
dictarme alumno
00:33:05
punto matrícula
00:33:06
Punto, cantidad con IVA.
00:33:09
Pero claro, ahora es el momento, ahora sí que sí,
00:33:14
es el momento de decir, ahora que te vas a ejecutar,
00:33:19
ahora que ya te vas a ejecutar, ahora ya sí que sí,
00:33:21
te tengo que dar el valor concreto con el que te vas a ejecutar.
00:33:25
Ahora es el momento, porque ahora sí que se va a ejecutar el método.
00:33:27
Entonces, ahora ya le damos el valor que sea,
00:33:31
ahora ya hay que darle un valor, 13, 1 leído por teclado,
00:33:33
un valor concreto.
00:33:37
Entonces, en el momento de la llamada al método...
00:33:39
Sí, este sería el IVA, que yo he decidido que sea 13.
00:33:41
Claro, como podría ser cualquier otro.
00:33:46
En el momento de llamar al método, los parámetros tienen que tener un valor.
00:33:57
Tienen ya un valor concreto, porque ya estoy ejecutando.
00:34:03
Igual que alumno matrícula, ya es un objeto concreto.
00:34:12
alumno, ya es un objeto concreto
00:34:15
vale, entonces de nuevo
00:34:17
como este método me devuelve
00:34:19
me lo devuelve como retorno
00:34:21
si lo llamo así, pues vaya pérdida
00:34:22
de tiempo, pues vamos a guardarlo
00:34:25
en algún sitio
00:34:27
para no perderlo
00:34:28
lo guardamos en algún sitio
00:34:30
para no perderlo
00:34:33
y ya está lo que nos haya salido
00:34:34
uy, me falta el
00:34:46
esto
00:34:47
vale
00:34:49
entonces en el momento de llamar al método
00:34:53
ahí es cuando se va a ejecutar en el main
00:34:56
cuando yo lo llamo
00:34:58
y ahí ya tengo que comprometerme, paso el valor
00:34:59
tal cual
00:35:02
ni pongo el tipo de datos ni pongo nada
00:35:03
porque aquí no estoy declarando nada
00:35:06
la declaración la hice aquí
00:35:07
por eso aquí sí que puse el tipo de datos
00:35:10
aquí puse ya el valor
00:35:11
entonces
00:35:14
ejecutamos esto por si hemos escrito algo mal
00:35:15
pues el precio de la matrícula
00:35:18
con el 13 ha subido
00:35:22
de 76 a 85
00:35:24
vale
00:35:25
que hay más parámetros
00:35:27
porque necesita más cosas
00:35:35
pues separados
00:35:37
separados por comas
00:35:38
y ya está
00:35:40
y aquí todos los parámetros
00:35:41
que hicieran falta
00:35:42
si es que hicieran falta más
00:35:43
porque este método
00:35:45
hiciera muchas cosas raras
00:35:46
y entra muchas cosas
00:35:46
pues uno pone los parámetros
00:35:47
que le den la gana
00:35:50
que necesito esos tres
00:35:51
para hacer lo que sea
00:35:54
que voy a hacer ahí dentro
00:35:54
pues a la uno tras otro
00:35:55
separados por comas
00:35:57
eso sí
00:35:58
luego en la llamada
00:35:59
Tendríamos que pasarle
00:36:01
Las tres cosas
00:36:03
En la llamada tendría que pasarle
00:36:04
El
00:36:07
Número entero
00:36:09
El número dabel
00:36:12
El string
00:36:15
Si yo he dicho aquí
00:36:17
Que necesito
00:36:19
Tres parámetros
00:36:21
Que luego, es mentira, vamos, no los necesito
00:36:22
Si yo he dicho ahí que necesito tres
00:36:24
Pues tengo que pasar luego en la llamada
00:36:26
Esos tres, en ese orden exactamente
00:36:29
tal cual, en ese orden tal cual
00:36:31
y con el mismo
00:36:33
tipo, por ejemplo
00:36:35
como aquí, en ese orden tal cual
00:36:37
y con el mismo tipo
00:36:39
no, return solo
00:36:40
puede volver un valor
00:36:47
y por eso aquí solo ponemos un tipo de dato
00:36:48
porque solo puede volver un valor
00:36:51
claro, claro
00:36:53
parámetros puede haber todos los que hagan falta
00:36:59
y tú con esos parámetros operas, haces lo que sea
00:37:01
pero solamente puedes
00:37:03
devolver un valor, a ver
00:37:05
si quieres devolver muchos, los metes
00:37:07
en un array y devuelves el array
00:37:09
porque el array es un objeto
00:37:11
entonces tú devuelves un array
00:37:13
podrías devolver un array de cosas
00:37:15
uy, vale, entonces aquí
00:37:17
estoy devolviendo muchos enteros
00:37:21
en realidad, pero un único
00:37:23
objeto array, tendría que crear aquí un array
00:37:25
y devolverlo, pero lo que
00:37:27
devuelves es un único
00:37:29
valor, me da igual que ese valor sea de un objeto
00:37:31
de un array, de un stream
00:37:33
pero un único valor
00:37:35
Vale
00:37:36
Entonces, dime
00:37:37
Bueno, pero eso
00:37:39
Ya es que sería otro programa
00:37:52
Entonces, pues tú aquí
00:37:54
Podrías, aquí antes de esto
00:37:56
Preguntar y decir, ¿cuál va a ser el IVA que quiere usar?
00:37:58
Tú lo metes ese IVA en una variable
00:38:01
Y luego le pasas aquí la variable
00:38:03
Vale
00:38:04
Voy a quitar esto
00:38:05
Eso ya es que son detalles
00:38:07
Pues del programa
00:38:11
Yo aquí es que he hecho el ejemplo
00:38:13
Pasándole el 13 sí o sí
00:38:16
Pero bueno
00:38:18
Este programa pues podría ser
00:38:20
Pide antes el IVA por teclado
00:38:22
Pero eso ya son detalles del programa
00:38:24
A mí lo que me importa ahora es
00:38:28
El paso, que entendáis el paso
00:38:29
A los métodos
00:38:32
¿Qué IVA quiere? Pues aquí lo lees
00:38:33
Tenemos escáner
00:38:35
No
00:38:37
Vale, entonces
00:38:38
¿Qué IVA quiere?
00:38:54
Pues entonces lo leemos aquí
00:38:56
En nuestro int
00:38:58
Lo llamo de otra manera
00:39:00
Lo puedo llamar como me dé la gana
00:39:03
IVA matrícula
00:39:05
Como a mí me dé la gana, es una variable del main
00:39:08
IVA matrícula
00:39:10
Igual a scan.nextInt
00:39:12
Y ahora
00:39:15
A la llamada al método
00:39:17
Le paso esa variable
00:39:19
me da igual pasar el valor
00:39:20
concreto que pasar una variable
00:39:24
con ese, entonces yo le paso esta
00:39:26
variable y entonces ahora ya este método
00:39:28
va a operar con el valor que
00:39:30
tenga esta variable dentro, el que sea
00:39:32
que esta variable
00:39:34
se puede llamar como le dé la gana
00:39:35
no tiene por qué llamarse igual que esta
00:39:38
que esta, estos son cosas independientes
00:39:40
¿vale? es decir
00:39:44
aquí en la llamada
00:39:46
este le dice, oye
00:39:47
él se ha creado una caja verde
00:39:49
donde tiene un 7
00:39:51
y ahora en el momento de hacer
00:39:53
cantidad con IVA de la caja verde
00:39:56
saca el 7 y te lo da
00:39:58
ahora cantidad con IVA
00:40:00
tiene ese 7 en la mano
00:40:02
y lo mete en su cajita azul
00:40:03
¿qué más me da? lo mete en su cajita azul
00:40:06
y ahora ya opera con él, lo que importa es el 7
00:40:08
me da igual que el envolvente para el método
00:40:09
aquí se llame IVA
00:40:12
y aquí se llame
00:40:13
IVA matrícula, me da lo mismo
00:40:14
no es el envolvente de ese valor
00:40:18
que se está pasando uno al otro.
00:40:20
Dime.
00:40:21
Sí, tú aquí podrías usar cualquier cosa
00:40:25
que dé como resultado un número.
00:40:28
Entonces, scanNextInt
00:40:31
te da como resultado un número también.
00:40:33
Luego yo lo puedo pasar aquí, ¿vale?
00:40:36
Porque esto me da un número.
00:40:38
Pues ese número se enchufa a cantidad con IVA.
00:40:39
Eso tenías que poner antes.
00:40:47
Claro, aquí lo único que puedes poner
00:40:48
es algo que se transforme a un número entero.
00:40:50
Entonces, scan next in se transforma en un número entero, luego es válido. Y va matrícula también, porque es una variable. El propio 13 también, o sea, cualquier cosa que sea en realidad un número entero. Es lo que hay que poner ahí, ¿vale?
00:40:53
No, no, no, no, que más da
00:41:07
Espera, vamos a ponerlo como estaba
00:41:15
Vale, aquí
00:41:16
En este extremo
00:41:24
De la llamada, o sea, hay dos personas que se están
00:41:26
Comunicando, hay dos extremos
00:41:29
Este es un extremo de la
00:41:31
Comunicación, este es el A
00:41:32
Y el otro es este
00:41:34
Que es el B, entonces aquí
00:41:36
Tenemos
00:41:38
El
00:41:39
A ver
00:41:41
Aquí tenemos el método
00:41:45
¿Vale?
00:41:54
El método que te está diciendo
00:41:57
Que necesita una cosita
00:42:00
Entera que tú le tienes que pasar
00:42:02
Es lo que te está diciendo
00:42:04
Y aquí tenemos el main
00:42:05
Entonces el main
00:42:07
Es el que llama al método
00:42:10
Vamos a llamarle a este método
00:42:11
El main es el que llama al método
00:42:13
Y le pasa el valor
00:42:15
¿Vale? Entonces
00:42:17
Este lo que te está diciendo es
00:42:18
Tú pásame un número
00:42:22
pásame un número el que tú quieras
00:42:23
yo ese número lo voy a coger
00:42:25
y lo voy a poner en mi caja que se llama IVA
00:42:27
mi caja yo la he llamado IVA
00:42:30
entonces tú pásame un número que yo lo voy a meter aquí
00:42:32
entonces este es el main que ha hecho
00:42:34
el main lo que ha hecho es
00:42:36
pues ha leído por teclado
00:42:40
y en una cajita suya
00:42:41
en una cajita suya
00:42:43
que se llama
00:42:46
IVA no sé qué
00:42:47
IVA M por ejemplo
00:42:49
en una cajita suya que se llama IVA no sé qué
00:42:50
con el escáner
00:42:53
ha metido un 7, por ejemplo
00:42:54
vale, pues entonces, ahora aquí
00:42:57
nosotros pasamos esta variable
00:42:59
¿qué significa hacer esto?
00:43:02
pues significa, llevamos a este método
00:43:04
cogemos la caja que se llama IVA-M
00:43:07
cogemos esta caja y sacamos el 7 fuera
00:43:09
sacamos el 7 fuera
00:43:13
ahora este 7 viaja por aquí
00:43:15
y se mete en esta que se llama IVA o como se llame
00:43:18
me da lo mismo, y ahora a partir de aquí
00:43:21
este método, cuando
00:43:23
se refiera a IVA, se va a
00:43:25
referir al 7 que salió de esta otra
00:43:27
variable, ¿entiendes?
00:43:29
De esta variable con este
00:43:32
nombre sale el 7 y cae
00:43:33
en esta otra
00:43:36
me da igual como se llamen, porque de esta
00:43:36
sale para caer en esta
00:43:39
y a partir de aquí ya se va a llamar así
00:43:41
¿vale?
00:43:43
Venga, pues a ver
00:43:48
- 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:
- 3 de diciembre de 2025 - 14:13
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 43′ 53″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 166.40 MBytes