20250929-ProgEstr-Operadores_2 - 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:
Pues esto de la concatenación nos permite obtener textos para el resultado un poquito ya más interesantes, ¿vale?
00:00:00
Es decir, el operador concatenación, este de aquí, no solo, ¿qué me estáis diciendo?
00:00:11
Vale, el operador este de concatenación no funciona solo con cadenas, una cadena a cada lado y entonces es la concatenación.
00:00:20
También funciona con una cadena a un lado
00:00:34
Y al otro lado cualquier otra cosa
00:00:37
¿Y qué hace la máquina virtual?
00:00:40
Pues ese cualquier otra cosa
00:00:42
Fuerza la conversión a cadena
00:00:44
Es decir, concatenación
00:00:47
El operador concatenación más
00:00:53
Funciona también
00:00:55
Entre una cadena
00:01:00
O un string, como lo queramos llamar
00:01:04
Es lo mismo
00:01:07
Y cualquier otra cosa
00:01:07
Que nos dé la gana poner
00:01:13
Ahora mismo para nosotros cualquier otra cosa
00:01:14
Son números
00:01:16
Y cualquier otra cosa
00:01:17
Por ejemplo
00:01:21
Yo tengo mi numerito n
00:01:24
Igual a 6
00:01:28
Y tengo mi cadena nombre 1
00:01:29
Que la tengo ya declarada arriba
00:01:33
Pues por ejemplo
00:01:34
Puedo concatenar
00:01:36
Nombre 1
00:01:39
Que es un string
00:01:40
lo puedo concatenar con algo que no sea un string
00:01:42
como por ejemplo un numerito
00:01:46
y no pasa nada
00:01:48
ahora hacemos la asignación
00:01:49
entonces cuando el operador
00:01:51
cuando la máquina virtual se encuentra
00:01:55
que un operador más
00:01:57
y uno de los dos es una cadena
00:02:00
uno de los dos es una cadena
00:02:03
automáticamente interpreta
00:02:05
que lo que quieres hacer es concatenar texto
00:02:07
interpreta que quieres concatenar texto
00:02:10
si los dos fueran números
00:02:12
no hay duda, interpreta que quieres sumar
00:02:15
si los dos son cadenas
00:02:17
no hay duda, interpreta que quieres
00:02:19
concatenar
00:02:21
el problema es, y si uno es cadena
00:02:22
y otro es cualquier otra cosa
00:02:25
por ejemplo, número en nuestro caso
00:02:27
porque es lo que estamos usando
00:02:30
pues interpreta
00:02:31
que lo que quieres también es
00:02:33
concatenar, es decir, la concatenación
00:02:35
tiene más peso que la suma
00:02:38
¿vale? entonces
00:02:39
en este caso como estamos
00:02:44
cadena string
00:02:45
suma numerito
00:02:47
pues automáticamente la máquina virtual
00:02:49
interpreta que quieres concatenar
00:02:52
pues que hace
00:02:54
coge lo que no es cadena
00:02:56
lo que no es cadena
00:02:58
y fuerza su conversión
00:03:00
a cadena
00:03:02
que significa
00:03:02
forzar la conversión a cadena de un
00:03:05
número 6 pues que es como
00:03:08
si estuviéramos
00:03:10
Concatenándolo con esto
00:03:10
Sería como si estuviéramos haciendo esto
00:03:14
Nombre 1 más
00:03:16
Es decir
00:03:19
Cuando él tiene que forzar el numerito 6
00:03:20
Él va a ver la n
00:03:22
Y ve que tiene el 6
00:03:23
Pues para forzar la conversión a cadena
00:03:25
Lo que está haciendo
00:03:28
Es convertirlo directamente
00:03:30
En la cadena 6
00:03:32
El resultado será
00:03:33
Un string, una cadena y tendrá que ir a una cadena
00:03:36
Lógicamente
00:03:38
Pues yo que sé, a esta mismo, por ejemplo
00:03:39
Que ya la tengo declarada
00:03:42
¿Vale? A esta misma
00:03:44
¿Vale?
00:03:46
Luego entonces, todo eso está en el texto
00:03:50
Que os he pasado
00:03:52
Cuando el operador más va
00:03:53
Repetimos
00:03:56
Entre una cadena
00:03:58
Uh, le he dado tan fuerte
00:04:00
Que la he roto
00:04:02
Pues sí, cuando le das fuerte se apaga
00:04:05
Ah, pues no
00:04:12
Bueno
00:04:14
vale, cuando el operador
00:04:15
más va con una
00:04:18
cadena y cualquier otra cosa
00:04:20
automáticamente dice, ah, quieres
00:04:22
concatenar, pues coja ese cualquier
00:04:24
otra cosa y lo convierte
00:04:26
en texto, ¿cómo?
00:04:28
depende de cómo seas a cualquier
00:04:31
otra cosa, ya íbamos viendo cómo funciona
00:04:32
lo de convertir en texto, porque no es trivial
00:04:34
pero en el caso del número
00:04:36
que es lo que estamos usando ahora, numeritos
00:04:38
convertir en texto
00:04:40
es convertir en una cadena
00:04:41
ASCII con las cifras, ya está
00:04:44
este como es 6
00:04:46
pero vamos a probar por ejemplo con un
00:04:48
dabble que es más raro, por ejemplo
00:04:50
dabble 6.98
00:04:57
pues en realidad sería
00:05:00
convertirlo a cadena
00:05:03
lo convertiría en la cadena
00:05:07
de caracteres ASCII
00:05:09
el 6, el carácter ASCII punto
00:05:10
el carácter ASCII 9, el carácter ASCII 8
00:05:13
es decir, deja de ser un número
00:05:15
y se convierte en una cadena
00:05:17
y lo concatenaría
00:05:19
a esto, de nuevo
00:05:22
esto lo doy por sentado, claro
00:05:26
que esta conversión se hace
00:05:28
para hacer la operación, lógicamente
00:05:30
para hacer la concatenación, no es que
00:05:32
luego esta variable n
00:05:36
se convierta a string, no, no
00:05:38
la máquina virtual
00:05:40
ve que quieres usar n, dice
00:05:42
uy, n es un dable y tiene 6.98
00:05:44
cojo su valor
00:05:46
cojo su valor
00:05:48
lo convierto en cadena, lo concateno
00:05:50
pero lógicamente la variable n original
00:05:52
sigue siendo n, y no le pasa nada
00:05:54
todo esto
00:05:56
lo hacemos para hacer la operación
00:05:58
pues entonces este operador
00:06:00
recordad que tiene también esa función de concatenar
00:06:05
cadenas y va a concatenar
00:06:07
siempre y cuando
00:06:09
alguno de las dos
00:06:10
cosas sea un string, me da igual que el string sea
00:06:13
la segunda, me da igual
00:06:15
con que una de las dos sea un string
00:06:16
me da igual que sea la que está en primer lugar o la que está
00:06:19
en segundo lugar, cuando una de las dos sea un string
00:06:21
es una
00:06:23
concatenación, vale
00:06:24
de hecho si ejecutamos esto
00:06:28
pues tendremos que ver al final
00:06:30
esto de aquí
00:06:32
este programa
00:06:34
me pide primero el número de usuarios
00:06:47
8 bla bla bla
00:06:49
8
00:06:52
ah bueno es que no lo he mostrado
00:06:53
lo he guardado pero ahora no lo he mostrado
00:06:55
vamos a mostrarla
00:06:57
veis
00:06:58
ha hecho una concatenación
00:07:12
Ha hecho una concatenación entre el nombre 1
00:07:15
Que era Ana
00:07:19
Y ha forzado la conversión a cadena de este
00:07:21
Que le ha dado la cadena 6.98
00:07:26
Ha concatenado los dos
00:07:30
Y lo ha guardado en el string nombre 2
00:07:33
Que es el que hemos mostrado después
00:07:35
¿Vale?
00:07:38
Entonces, bueno, esto de la concatenación
00:07:44
Nos es muy útil cuando queremos
00:07:46
ahora ya pues mostrar avisos
00:07:48
un poquito más sofisticados, por ejemplo
00:07:52
nos vamos aquí arriba cuando estábamos incrementando los usuarios
00:07:55
introduzca número de usuarios, lo leemos, ¿cuántos más? estos
00:08:01
hacíamos la operación de a los usuarios antiguos
00:08:05
le sumamos los nuevos y el resultado final
00:08:09
actualiza la variable, que es lo que vimos
00:08:11
que lo podíamos
00:08:15
abreviar con el más igual
00:08:17
vamos a hacer ahora que me muestre
00:08:19
la nueva cantidad
00:08:22
de usuarios es
00:08:25
entonces el system out
00:08:27
¿qué le pasamos?
00:08:29
le vamos a pasar una cadena
00:08:31
vale, pues le vamos a pasar
00:08:32
el nuevo número
00:08:35
usuarios es
00:08:37
y ahora esta cadena
00:08:45
la quiero concatenar yo
00:08:48
Con el contenido de esta variable
00:08:51
Porque quiero que me muestre
00:08:54
El nuevo número de usuarios es
00:08:56
Y el valor de esa variable
00:08:58
Pues la concateno
00:08:59
Con esta variable
00:09:03
Usuarios
00:09:04
¿Vale?
00:09:07
Entonces esta tontería de la concatenación
00:09:09
Me permite mostrar texto un poquito
00:09:11
Que tenga variables dentro
00:09:14
Que tenga valores de variables dentro
00:09:16
¿Vale?
00:09:18
porque esto ahora mismo, esto es una cadena enterita,
00:09:21
que es el resultado de concatenar esta cadena,
00:09:30
concatenada con el contenido de esta variable.
00:09:40
Bueno, pues este mensaje de resultado ya será más bonito,
00:09:45
porque me dirá, el nuevo número de usuarios es,
00:09:48
y me pondrá después la conversión a cadena de lo que contenga esta variable.
00:09:51
Si contiene 7, pues el carácter 7
00:09:55
Si contiene 28, pues 2 y 8
00:09:58
Entonces, concatenando
00:10:01
Podemos hacer, escribir texto
00:10:06
Para el usuario
00:10:08
Que tenga valores de variables
00:10:10
Dentro del texto
00:10:12
Lo voy concatenando con las variables
00:10:13
Y ya está
00:10:15
Si lo ejecutamos aquí
00:10:16
Introduzca el número de usuarios
00:10:28
54
00:10:31
¿Cuántos usuarios más han llegado?
00:10:32
76
00:10:34
El nuevo número de usuarios es 206
00:10:34
¿Vale? Sumo esto, sumo esto
00:10:38
Y yo luego hice una cadena que era la concatenación de
00:10:41
El nuevo número de usuarios es no sé qué
00:10:45
Concatenado con la nueva variable convertida a string
00:10:47
54 más 76 es 206
00:10:52
Forzamos la conversión a string
00:10:55
2, 0, 6
00:10:58
La concatenación es este mensajito
00:10:59
Este mensajito es la concatenación
00:11:02
Que es el que me ha mostrado aquí
00:11:06
Vale
00:11:09
Vamos aquí, concatenación de string
00:11:10
Bueno
00:11:34
Pues aquí lo tenéis
00:11:35
Bueno, esto de aquí
00:11:37
Dime
00:11:58
Es que le he puesto un espacio
00:11:59
Claro, aquí en la cadena le he metido un espacio
00:12:10
El nuevo usuario es
00:12:13
Y le he metido este espacio
00:12:19
Bueno, te sale junto
00:12:20
Si la cadena no tiene un espacio
00:12:37
Es que aquí el nombre
00:12:40
O sea, te refieres aquí, por ejemplo
00:12:42
Nombre 3, que me salía
00:12:44
Claro, pero porque es que el nombre
00:12:45
O sea, aquí estoy
00:12:47
A ver si te refieres a eso
00:12:49
Tengo... ¿Te refieres a esta situación?
00:12:50
O a esta
00:12:56
Que yo tengo nombre 1, que aquí me salía todo junto
00:12:57
El nombre pegadito al 6
00:13:00
Claro, pero porque nombre 1
00:13:01
no tiene ningún espacio aquí, entonces
00:13:04
él lo concatena, si yo pongo aquí un espacio
00:13:06
pues ya no me sale junto
00:13:08
o sea, concatena tal cual
00:13:10
lo concatena, lo deja pegado
00:13:12
claro, la cadena y el número
00:13:14
lo que pasa es que
00:13:16
yo aquí cuando he hecho el
00:13:18
system.out.println para concatenar
00:13:20
este texto con el otro
00:13:22
pues le he puesto aquí un espacio
00:13:24
para que esta
00:13:28
variable vaya pegada
00:13:30
al espacio de después
00:13:32
para que vaya pegada al espacio
00:13:33
porque si no queda muy apiñado, claro
00:13:36
el espacio es un carácter así más, lo puedo poner dentro de las cadenas
00:13:37
esto ya lo hemos mencionado
00:13:40
los operadores aritméticos ya lo hemos mencionado
00:13:49
sabéis que en matemáticas
00:13:53
hay un acuerdo
00:13:55
que los operadores de multiplicación y división
00:13:57
tengan precedencia
00:14:01
frente a los de suma y resta
00:14:03
entonces si en una expresión están todos puestos sin paréntesis
00:14:04
primero se hacen las multiplicaciones y divisiones
00:14:07
luego las sumas y restas, ya lo sabéis
00:14:09
pero si hay paréntesis entonces no
00:14:11
se hacen los paréntesis primeros
00:14:13
pero bueno, esto es lo de mates de siempre
00:14:15
pues es lo que mencionamos aquí y ya está
00:14:17
¿vale?
00:14:19
esto de conversión automática
00:14:23
y promoción casting
00:14:24
también lo hemos usado en algunos ejemplitos
00:14:27
la conversión automática
00:14:30
es lo que hemos dicho
00:14:32
promocionar un entero
00:14:33
a un double cuando están mezclados
00:14:36
en la misma operación
00:14:38
¿vale? aquí tenemos mezclados
00:14:39
un entero
00:14:42
está sumado
00:14:44
a un decimal, pues entonces
00:14:45
la máquina virtual, el entero
00:14:48
le pone el punto cero y eso es la
00:14:49
promoción automática
00:14:51
¿vale? esto ya lo hemos
00:14:53
mencionado, está
00:14:55
aquí todo
00:14:57
explicado de nuevo
00:14:59
¿vale?
00:15:01
entonces, lo del
00:15:07
casting es
00:15:19
forzar la conversión interna.
00:15:21
No lo vamos a usar ahora
00:15:25
porque el casting es peligroso y no
00:15:27
aquí está mencionado para completar el apartado
00:15:29
para que el apartado no se quede a medias.
00:15:33
Entonces, si leéis todo esto
00:15:35
para hacer el repaso de todo, lo deberíais leer
00:15:37
para hacer el repaso de todo y aseguraros de que
00:15:39
lo tenéis. Vale.
00:15:41
Pues si hacéis la lectura,
00:15:43
¿qué es lo que explica aquí?
00:15:44
Bueno, nosotros ya sabemos
00:15:47
lo que hemos dicho antes, que si tenemos
00:15:48
un numerito dabel, que es la suma de un entero
00:15:52
que estaba por aquí declarado, n igual a 7
00:16:00
por ejemplo, n más
00:16:04
4.3, imaginaos esta sentencia
00:16:08
ningún problema, está mezclando el operador
00:16:12
sumas, un decimal que es 4.3
00:16:16
con este que es entero
00:16:20
porque está en una variable entera
00:16:22
no hay ningún problema
00:16:24
coge el que es entero
00:16:26
lo promociona dabel
00:16:28
que sería como coger el 7 que está aquí
00:16:29
y una vez que ha cogido el 7
00:16:32
le pone el punto 0
00:16:34
¿vale? esta variable
00:16:36
lógicamente se queda intacta
00:16:38
no se entera, sigue con su 7
00:16:40
pero la máquina virtual ha cogido el valor
00:16:41
le ha puesto el punto 0
00:16:44
para poder hacer la suma
00:16:46
y ahora ya le queda pues
00:16:48
11.3, que es un double
00:16:50
y una vez que tiene el resultado
00:16:52
dice, ¿y ahora qué hago con esto? Pues ahora ya
00:16:54
cuando tenga el resultado, ya al final de todo
00:16:56
se va a mirar aquí
00:16:57
y dice, a ver, aquí que tengo
00:16:59
una variable double, menos mal
00:17:02
porque esto
00:17:04
si no, no cabría, menos mal que tengo
00:17:06
una variable double, con lo cual
00:17:08
lo guarda en double y listo
00:17:09
¿vale?
00:17:12
Ya sabemos, porque lo hemos probado
00:17:14
que si
00:17:16
esta variable
00:17:18
Resulta
00:17:19
Que no la hubiéramos declarado dabel
00:17:20
Sino que la hubiéramos
00:17:24
Declarado int
00:17:26
Sabemos que aquí hay un problema
00:17:27
Dime
00:17:31
Sabemos que aquí hay un problema
00:17:31
Porque me diría
00:17:36
Eh, ojo, ojo
00:17:37
Esto me va a dar dabel
00:17:38
Dabel en int no cabe
00:17:40
¿Vale? Esto ya lo vamos
00:17:43
Lo tenemos ya, lo van metiendo en la cabeza
00:17:45
Int en dabel cabe
00:17:47
Digo int y dabel
00:17:49
porque son los más estándar, podría ser int y float
00:17:51
son los mismos, float y double son decimales
00:17:53
int en double cabe
00:17:55
pero
00:17:57
perdona, double en
00:17:59
int no, luego aquí
00:18:01
ya el compilador ya te marcaría
00:18:03
un error y te diría, no te voy
00:18:05
a dejar que compiles esto y por tanto
00:18:07
lo ejecutes
00:18:09
¿por qué?
00:18:10
convertir de double a int
00:18:13
sí que implica
00:18:15
perder información, convertir de double
00:18:17
a int sería
00:18:19
quitar el punto 3
00:18:20
quedarse con 11
00:18:22
y eso es alterar el número completamente
00:18:23
pasar de 7
00:18:26
a 7.0
00:18:28
no altera la información
00:18:29
tenemos 7 unidades
00:18:31
no altera el número para nada
00:18:33
la cantidad es la misma
00:18:36
hay la misma cantidad en 7 que en 7.0
00:18:37
la cantidad es la misma
00:18:40
pero pasar de 11.3
00:18:40
a 11
00:18:44
esto claro que altera la información
00:18:45
porque estoy perdiendo
00:18:47
cero con tres, que es una cantidad
00:18:49
real, cero con tres
00:18:52
luego por eso el compilador no nos deja
00:18:53
hacer esas cosas
00:18:56
pero imaginémonos que aún así
00:18:56
nosotros queremos decir
00:18:59
me da lo mismo, yo necesito que este
00:19:02
número sea entero, entonces si hay
00:19:03
que quitar la parte decimal, que se quite
00:19:06
pero tú mete esto en un entero
00:19:07
aunque sea dabel, me da igual
00:19:10
entonces si queremos hacer
00:19:11
eso, que es
00:19:14
convertir un valor de un tipo
00:19:15
más grande, comodable
00:19:18
a uno más pequeño, que sí, podemos hacer
00:19:20
lo que explica el texto, que es un cast
00:19:22
que tendremos que hacer, pero en otras situaciones
00:19:23
y un casting
00:19:25
significa, castea
00:19:28
a entero
00:19:29
o lo que es lo mismo
00:19:32
quita la parte decimal, y ¿cómo escribo
00:19:34
eso en código? ¿cómo escribo eso en código?
00:19:36
porque si lo tengo que decir al
00:19:38
compilador, le tengo que decir, no, perdona
00:19:40
es que quiero hacer el cast
00:19:42
¿cómo lo escribo
00:19:43
ese código? Pues hacer un casting
00:19:46
se hace
00:19:48
poniendo delante
00:19:49
del número resultado, delante
00:19:57
de la expresión, pongo
00:19:59
el tipo al que quiero convertir
00:20:01
entre paréntesis.
00:20:03
¿Quieres convertir a in?
00:20:05
Pues pon el tipo al que quieres
00:20:07
convertir entre paréntesis. Ponlo.
00:20:09
Al que quieres convertir.
00:20:12
Y ahora ya pones eso
00:20:13
que quieres convertir, que en nuestro
00:20:15
caso era, pues por ejemplo, n
00:20:17
más 4 con 2 o lo que fuera, no lo sé.
00:20:19
Vale, entonces vamos a escribirlo ahí para que se vea, lo añadimos aquí, a ver, cuidado con los cambios de tipo, esto sin problema, vamos a imaginar que tenemos un int número igual a 4
00:20:21
Y ahora, un double decimal que es igual a número más 4.5, por ejemplo.
00:21:06
Esto ya sabemos que sin problema.
00:21:18
Coge el 4, le pone el punto 0, lo suma 4 con 5, le sale 8 con 5 y 8 con 5 va a double.
00:21:21
Ya está.
00:21:28
Esto no se puede, como ya sabemos.
00:21:33
Vamos a guardarlo en una variable entera.
00:21:38
Por ejemplo, en el propio número
00:21:40
Como ya sabemos que
00:21:43
Número más 4.5
00:21:44
Aquí ya se queja
00:21:50
¿Vale?
00:21:53
Coge número
00:21:54
Número es un entero
00:21:55
Muy bien, 4
00:21:57
Como lo suma a un decimal
00:21:58
Le pone el punto 0
00:22:00
Muy bien
00:22:02
Le queda 8.5
00:22:02
¿Vale?
00:22:04
Ahora ese 8.5
00:22:06
Intenta llevarlo a un int
00:22:07
Dice, no puedo llevar un 8.5 a un int
00:22:09
¿Vale? Hasta aquí es lo que sabemos
00:22:12
Pero puede ocurrir
00:22:14
Que yo quiera hacerlo
00:22:17
Igualmente y decir, no pasa nada
00:22:19
Si quiero hacerlo igualmente
00:22:26
Quitando la parte decimal
00:22:28
Podemos hacer un casting
00:22:29
Es decir, yo quiero
00:22:34
Me da lo mismo que esto sea 8.5
00:22:43
Quiero guardarlo en un int
00:22:46
Que pierdo el .5
00:22:47
Pierdo el .5
00:22:50
Lo siento
00:22:51
Pero claro, tengo que forzarlo y decirle al compilador
00:22:52
Que yo quiero hacer eso
00:22:55
Aun sabiendo que pierdo par de decimal
00:22:56
Pues como se hace un casting a un tipo
00:22:59
Un casting siempre es
00:23:01
Convertir un dato que tiene un tipo, en este caso
00:23:03
Double, a otro, en este caso
00:23:05
Int, eso es un casting
00:23:07
Cambiar el tipo de un dato, vale
00:23:08
Pues entonces, pongo
00:23:11
Al principio de todo
00:23:16
Entre paréntesis
00:23:18
El tipo al que quiero convertir
00:23:20
Vale, el tipo al que quiero convertir
00:23:22
y luego ya después
00:23:24
el valor que quiera convertir
00:23:27
aquí lo único cuidado
00:23:29
quiero convertir todo el resultado
00:23:31
entonces
00:23:33
tengo que ponerlo entre paréntesis para
00:23:34
que quede claro que el int
00:23:37
se refiere a todo enterito
00:23:39
a todo, si no pongo el paréntesis
00:23:41
el casting
00:23:45
se refiere solo a lo que tenga pegado
00:23:46
a lo que tenga ahí pegadito
00:23:49
si yo lo dejo así
00:23:51
el casting entiende
00:23:52
Del compilador que se refiere solo a número
00:23:55
Lo cual es una tontería, porque el número ya es entero
00:23:57
Sería una tontería
00:23:59
No, ojo, el casting se refiere a todo
00:23:59
El resultado final
00:24:03
Pues cuidadín, paréntesis
00:24:03
Vale
00:24:06
Pues estamos forzando
00:24:08
Que esto, que era decimal
00:24:10
Da igual, conviértelo
00:24:12
A int sí o sí
00:24:15
Quito la parte decimal
00:24:16
Y ahora ya sí que cabe en un entero
00:24:18
Ya sí que me ha dejado
00:24:20
entonces cuidado con los castings
00:24:22
porque es una solución maravillosa
00:24:25
para quitar todos los errores de compilación
00:24:27
y para generar todos los de ejecución
00:24:30
del mundo
00:24:32
uno ve un programa con muchas cosas rojas
00:24:32
muchas veces es porque lo ha diseñado
00:24:36
mal, lo ha planteado mal y está
00:24:38
metiendo en variables cosas que no son
00:24:39
entonces el compilador te dice
00:24:41
este tipo no es este tipo
00:24:43
y el compilador como lógicamente
00:24:45
no sabe programar ni el Eclipse ni nada
00:24:47
te lo soluciona
00:24:49
haciéndote un casting
00:24:51
todo lo rojo se quitó
00:24:52
pero el programa ha perdido todo el sentido
00:24:55
esto es como tienes un programa
00:24:56
con usuarios, facturas de usuarios
00:24:59
que vas gestionando
00:25:00
y lo has hecho tan mal que hay una línea
00:25:01
en la cual a un usuario
00:25:04
le estás asignando una factura
00:25:06
o sea un usuario
00:25:09
de repente es una factura
00:25:10
porque lo has diseñado mal
00:25:12
el compilador te dice
00:25:14
a una variable usuario le estás asignando
00:25:16
un objeto tipo factura
00:25:18
error, si le haces un casting
00:25:20
y factura, la transformas
00:25:22
a usuario, compila
00:25:24
sí, maravilloso, compila
00:25:26
pero no tiene ningún sentido que tú transformes
00:25:28
un papelito, factura, que la transformes de repente
00:25:30
en un humano
00:25:32
¿vale? pero el compilador se ha quitado el error
00:25:33
claro, luego tú ponte a ejecutar eso
00:25:36
cuando te pongas a ejecutar eso
00:25:38
y la máquina virtual se encuentra porque tiene que
00:25:40
transformar un papelito en un humano
00:25:42
pues lógicamente el programa peta
00:25:44
¿vale? entonces los
00:25:46
castings se tienen que
00:25:48
hacer cuando realmente
00:25:50
se controle que eso es lo que quiero
00:25:52
hacer, no porque
00:25:54
me quitan errores de compilación, creo que me quitan todos los
00:25:56
del mundo, pero el programa que
00:25:58
no tiene ningún sentido si yo cambio unos
00:26:00
tipos a otros así para que
00:26:02
las asignaciones se callen
00:26:04
¿vale? entonces los castings siempre van
00:26:06
a alterar el valor, que a mí no me importa
00:26:11
alterarlo y lo tengo controlado porque a mí no me
00:26:13
importa quitar aquí la parte decimal
00:26:15
pues venga, pongo el casting
00:26:17
Pero porque he identificado
00:26:19
Que aquí sí que quiero hacerlo
00:26:21
Bueno, pues ya está
00:26:23
Esto explica todo eso
00:26:40
Si tú necesitas
00:26:42
Hacer la conversión
00:26:52
Por ejemplo, esto
00:26:54
Como tal
00:26:55
Tiene sentido
00:26:58
Tú dices, convierte entero este
00:27:00
Entonces esto estaría sumando
00:27:03
El valor de este más 4
00:27:04
y el resultado convirtiéndolo a entero
00:27:07
ya sería entero
00:27:10
bueno, sí, 4 más el número
00:27:11
este que fuera
00:27:16
no lo sé, pero vamos, lo que valiera
00:27:16
4, 8, esto sería
00:27:19
este resultado sería
00:27:21
8 y sin el int
00:27:23
sería 8 también
00:27:26
porque lo hemos cambiado a entero
00:27:27
vale
00:27:29
a ver, siempre que necesites cambiar un tipo de dato
00:27:31
pero cuando necesitas cambiar
00:27:33
Haces ese casting, pero tienes que saber lo que haces
00:27:34
¿Vale?
00:27:37
Vale
00:27:48
Esto es muy
00:27:49
Esto es muy fácil
00:27:50
De entender
00:27:53
¿Vale?
00:27:54
A veces
00:27:58
A una variable le queremos sumar uno
00:27:58
Antes a número de usuarios le hemos sumado cualquier otra cosa
00:28:00
A veces le queremos sumar uno
00:28:03
Eso significa incrementar la variable
00:28:04
O a veces le queremos quitar uno
00:28:07
A una variable, eso se llama decrementar
00:28:09
Como es una operación muy habitual, tanto incrementar en 1 como decrementar,
00:28:11
porque es lo que hacemos cuando contamos, ¿no?
00:28:16
Me da igual contar hacia adelante que contar hacia atrás.
00:28:18
Contar es una operación natural.
00:28:21
Y entonces, en programación, también tenemos que contar muchas veces.
00:28:24
El programa nuestro muchas veces tendrá que contar.
00:28:29
¿Y contar qué es?
00:28:33
Incrementar en 1 muchas veces.
00:28:35
Eso es contar.
00:28:37
1, 2, 3, 4, incrementar en 1
00:28:38
un montón de veces
00:28:40
1 cuando paso a 2 ya he incrementado en 1
00:28:41
del 2 cuando paso a 3 ya he incrementado en 1
00:28:44
del 3 cuando paso a 4 ya he incrementado en 1
00:28:46
pues eso es contar
00:28:48
mi contador inicial
00:28:50
el que inicialmente está en 0
00:28:52
le incremento 1, ahora le incremento 1 otra vez
00:28:53
ahora le incremento 1 otra vez
00:28:56
y así mi contador inicial va pasando
00:28:58
0, 1, 2, 3
00:29:00
luego contar
00:29:01
es una operación natural
00:29:02
que tendrá que hacer un programa
00:29:05
muchas veces, contar cuántas veces
00:29:08
ha pasado algo, contar cuántos
00:29:10
usuarios se han dado de alta, contar
00:29:12
cuántas facturas se han pagado
00:29:14
o sea, contar es
00:29:16
una
00:29:17
actividad natural en un programa
00:29:20
bueno, pues contar implica
00:29:21
a una variable sumarle uno
00:29:23
muchas veces, luego sumar
00:29:25
uno a una variable es una operación natural
00:29:28
¿cómo sumamos uno a una
00:29:30
variable? pues ya lo sabemos hacer
00:29:32
¿verdad?
00:29:34
Si tenemos, por ejemplo, una variable contador para hacer una cuenta, que inicialmente es 0, voy a incrementarla en 1.
00:29:35
Ya sabemos que haríamos o bien esto, contador más 1, y ahora ya esta la incrementa en 1, su valor antiguo le suma 1 y valor nuevo a contador.
00:29:45
O esta de aquí, que es la misma que la de arriba.
00:30:03
vale, ya hemos visto antes
00:30:09
que esta expresión de abajo es la misma
00:30:13
que la de arriba, la misma
00:30:15
quito el igual, me queda contador más uno
00:30:16
¿qué hago con contador más uno?
00:30:19
se va a contador, son dos formas de hacer lo mismo
00:30:21
pero es que para este caso
00:30:23
cuando yo quiero incrementar uno
00:30:25
y solo uno, no cualquier otra burrada por aquí
00:30:27
sino solo uno
00:30:29
tengo otra abreviatura más
00:30:30
otra abreviatura más
00:30:32
que es esta
00:30:34
contador más más
00:30:36
luego
00:30:39
esta línea, esta línea
00:30:44
y esta línea
00:30:47
hacen exactamente
00:30:47
lo mismo, las tres
00:30:51
exactamente lo mismo
00:30:52
me da igual hacerlo así
00:30:54
que hacerlo así, que hacerlo así
00:30:57
¿vale?
00:31:00
esta es la abreviatura
00:31:03
más usada
00:31:04
entonces cuando veis contador++
00:31:05
¿qué expresión matemática estáis viendo?
00:31:08
estáis viendo
00:31:10
una suma y una asignación
00:31:11
Todo esto estáis viendo
00:31:14
Una suma y una asignación
00:31:16
Estáis viendo todo eso
00:31:18
Cuando veis contador más más
00:31:21
Y también funciona
00:31:22
Cuando queremos decrementar en 1
00:31:27
Por ejemplo
00:31:29
Que ahora yo quiero al contador
00:31:32
Quitarle 1 porque estoy contando
00:31:33
Hacia atrás
00:31:35
Pues podríamos hacer
00:31:36
Contador menos
00:31:39
1
00:31:41
vale, entonces con esta expresión
00:31:43
el valor viejo de contador
00:31:50
lo he decrementado en 1
00:31:52
y el nuevo valor
00:31:54
a contador
00:31:56
vale, pues esto mismo con el operador
00:31:57
de arriba, ya sabemos
00:32:01
que lo podríamos hacer así
00:32:03
la de arriba y la de abajo son idénticas
00:32:04
y
00:32:12
hay una tercera forma de abreviar
00:32:15
esto
00:32:18
que es esta, entonces
00:32:18
de nuevo, las tres
00:32:28
son iguales
00:32:30
y cuando veis esta así tan cortita
00:32:31
estáis viendo dos cosas
00:32:34
una resta y una asignación
00:32:35
las dos
00:32:38
esto es una resta
00:32:39
en uno y el resultado
00:32:41
una asignación, entonces se usa
00:32:43
tanto lo de incrementar en uno o
00:32:50
decrementar en uno, porque lo
00:32:52
hacemos muchas veces cuando contamos
00:32:54
pues que hay una abreviatura
00:32:56
que es la que
00:32:58
usamos cuando incrementamos
00:33:01
en 1, no ponemos todo esto
00:33:03
porque es muy largo
00:33:05
pero podríamos porque es exactamente igual
00:33:06
hace lo mismo, es la misma expresión
00:33:09
pues esta abreviatura no puedes hacer
00:33:11
si quieres que, con contar 2 a que te refieres
00:33:33
sumar de 2 en 2
00:33:36
pues entonces esa abreviatura no te vale
00:33:42
tendrías que usar esta expresión
00:33:44
o esta
00:33:46
Entonces si quieres que cuente de dos en dos
00:33:47
Usas esta
00:33:55
O usas esta, esta no
00:33:56
Porque esta solo vale para contar de uno en uno
00:33:58
¿Vale? Esa solo vale
00:34:00
Para contar de uno en uno
00:34:02
¿Dónde va usted?
00:34:03
Ay, no puedes esperar los cinco minutos
00:34:08
Que faltan para que terminemos
00:34:10
Que ya en cinco minutos nos vamos
00:34:11
Cinco minutos, que serán ahí nueve
00:34:13
Aquí en el texto dice
00:34:18
Cinco minutos y ya nos vamos
00:34:24
Y relajamos
00:34:25
Que esto ha sido un rollo muy largo
00:34:27
Pero es que de verdad en mi caso es que no podemos hacer prácticamente nada
00:34:28
Si no tenemos esto
00:34:32
Revisado
00:34:34
Vale, aquí en el texto digo
00:34:36
El operador este puede ir
00:34:38
A la derecha o a la izquierda
00:34:40
Claro que puede ir
00:34:41
Es decir, si yo pongo
00:34:42
Más más
00:34:44
Contador
00:34:46
Esto también funciona
00:34:48
Y si pongo
00:34:50
Menos menos
00:34:52
Contador
00:34:53
Esto también funciona
00:34:55
Entonces
00:34:58
¿Cuál es la diferencia?
00:35:01
Entre ponerlo delante o ponerlo detrás
00:35:06
Pues así
00:35:08
Cuando va suelto
00:35:11
Con la variable
00:35:13
Cuando va suelto
00:35:14
No hay ninguna diferencia
00:35:15
Me da lo mismo
00:35:17
lo normal es que lo ponga detrás porque se ve mejor
00:35:18
no hay ninguna diferencia
00:35:21
esto y esto hace lo mismo que es incrementar en uno
00:35:22
contador y esto y esto hace lo mismo
00:35:25
que es incrementar en uno contador
00:35:27
entonces porque hay dos versiones
00:35:28
ponerlo delante y ponerlo detrás
00:35:30
hay dos versiones porque Java me permite
00:35:31
a la vez que incremento
00:35:35
una variable usarla
00:35:37
dentro de otra expresión más complicada
00:35:39
por ejemplo
00:35:41
podemos
00:35:43
usar el incremento
00:35:51
o el decremento dentro de otras expresiones.
00:35:54
Por ejemplo, vamos a imaginar que tenemos aquí nuestro numerito,
00:36:04
número, que tendremos algún número por ahí declarado entero, ¿verdad?
00:36:12
Sí, este.
00:36:15
Vale.
00:36:18
Yo tengo aquí mi número y mi número, por ejemplo,
00:36:20
va a ser igual a contador más 3.
00:36:25
¿Vale?
00:36:29
Primera expresión que se me ha ocurrido.
00:36:29
Vale.
00:36:32
Pues entonces, yo necesito incrementar este número a lo que tenga el contador más 3 y quiero dejar contador incrementado, quiero dejarlo incrementado además, porque el contador cada vez que lo use para lo que sea, además luego lo quiero dejar incrementado, por ejemplo.
00:36:33
Pues entonces, Java me permite, a la vez que uso una variable dentro de una expresión,
00:36:53
a la vez que la uso, contador o la que sea, a la vez que la uso, incrementarla.
00:36:59
Me deja esto.
00:37:06
¿Vale?
00:37:08
Entonces, yo cualquier variable que yo use dentro de una expresión, cualquiera, como esta, cualquier variable,
00:37:09
yo puedo, si quiero, ponerle el incremento.
00:37:16
¿Y esto qué significa?
00:37:20
El incremento al principio es como si no existiera.
00:37:21
Tú haces contador más 3.
00:37:24
Vale.
00:37:28
El resultado va a número.
00:37:29
Y este significa, y ahora que ya has terminado,
00:37:31
además deja contador incrementado en 1.
00:37:35
Luego, esto me permite hacer dos operaciones en una.
00:37:39
Primera, la asignación a número de contador más 3.
00:37:43
Y luego, una vez terminado, dejo contador incrementado.
00:37:48
Porque a lo mejor hay una operación,
00:37:51
Hay una situación en la cual yo quiero usar esta variable contador, pero cada vez que la use, la quiero dejar incrementada en 1 para avisar de que la he usado.
00:37:53
¿Vale?
00:38:02
Bueno, pues pongo el más más y eso significa.
00:38:04
Bueno, pues aquí sí que hay diferencia entre que el más más vaya antes o que el más más vaya antes o que vaya después.
00:38:09
Aquí sí que hay diferencia.
00:38:20
es decir, estas dos expresiones tienen comportamiento distinto,
00:38:21
comportamiento distinto, esta y esta, pero poniendo el más más delante,
00:38:40
ambas son válidas y serían contador más 3 a número,
00:39:01
Y luego deja incrementado el contador
00:39:05
Pero esta deja incrementado el contador luego
00:39:08
Y esta lo incrementa antes
00:39:10
Luego lo vemos ya despacio
00:39:12
Y paramos aquí
00:39:14
- 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:
- 2
- Fecha:
- 29 de septiembre de 2025 - 17:41
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 39′ 21″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 753.18 MBytes