Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Clase 22-09-23 - 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 a ver, esos son los tipos de datos.
00:00:05
Pues vamos ya a declararlos.
00:00:11
Vale, pues vamos a suponer que mi programa necesita un número entero, ¿vale?
00:00:30
Y me va a mostrar ese número entero multiplicado por 3.
00:00:36
Cualquier tontería de las pocas que podemos hacer ahora sin conocer más entero.
00:00:43
Bueno, pues entonces una vez que yo he entendido lo que tiene que hacer el programa,
00:00:48
ya decido a ver qué variables voy a necesitar.
00:00:50
Pues si mi programa va a coger
00:00:52
Un número entero
00:00:54
Como dato de partida
00:00:56
Y con ese número entero va a hacer cosas
00:00:57
Sea lo que sea
00:00:59
Necesito una variable para guardarlo
00:01:00
Si, necesito una variable
00:01:03
Entonces, una vez que se ha dado cuenta de eso
00:01:04
Pues procede a
00:01:08
Declarar la variable
00:01:10
¿Y qué es declarar una variable?
00:01:11
Pues declarar una variable es
00:01:23
Crear
00:01:25
Una variable en memoria RAM
00:01:29
darle un nombre
00:01:31
y decir de qué tipo es
00:01:32
todo eso es declarar una variable
00:01:35
es crear el espacio
00:01:38
en RAM
00:01:41
para una variable
00:01:43
entonces, para que la máquina virtual
00:01:44
de Java, que es la que está ejecutando todo esto
00:01:58
pueda crear un espacio
00:02:00
acorde con el dato
00:02:01
declarar una variable
00:02:03
crear el espacio
00:02:05
implicará
00:02:06
que digamos
00:02:08
Diciendo el tipo de dato que va a contener
00:02:12
Imprescindible que lo indiquemos
00:02:16
¿Vale?
00:02:19
Imprescindible que lo indiquemos
00:02:20
Y dándole también un nombre a esa variable
00:02:22
Importantísimo lo del nombre
00:02:39
Entonces declarar la variable implica
00:02:55
Que automáticamente aparece el espacio en memoria RAM
00:02:58
Eso implica, con la sentencia que pongamos ahí
00:03:01
Con la sentencia que pongamos ahí
00:03:04
Implica que aparece el espacio
00:03:06
Ese espacio aparece
00:03:07
¿De qué tamaño?
00:03:09
Del tamaño que me diga el tipo
00:03:11
Ya sabemos cada tipo de dato
00:03:13
Cuántos bytes ocupa
00:03:15
Pues cuando declaremos la variable
00:03:16
Y pongamos ahí la sentencia que la declara
00:03:20
Aparece el espacio en memoria
00:03:22
Como parte de magia
00:03:24
La máquina virtual ya se encarga de eso
00:03:25
Que aparezca el espacio en memoria
00:03:27
Del tipo correspondiente
00:03:28
Del tamaño correspondiente
00:03:31
Y además
00:03:32
a partir de ese momento esa variable recibe un nombre
00:03:34
el que le hayamos indicado
00:03:38
que esta variable por ejemplo
00:03:39
su uso va a ser guardar un número
00:03:42
pues yo decido el nombre que a mí me dé la gana
00:03:45
la caja que se crea no tiene nombre
00:03:47
claro, se lo doy yo en mi programa
00:03:49
para hacer referencia a ella
00:03:51
porque si no, ¿cómo hago referencia yo a este espacio?
00:03:53
al espacio en memoria creado
00:03:56
tengo que darle un nombre
00:03:58
para poder referenciarlo desde cualquier punto del programa
00:03:59
Pues si yo decido que mi variable se llame, por ejemplo, número
00:04:02
Porque voy a guardar un número ahí
00:04:08
Pues ya está, le pongo ese nombre, ahora vemos cómo
00:04:10
Entonces las variables tienen un espacio en memoria asociado
00:04:14
Como ya sabemos, del tamaño correspondiente al tipo
00:04:19
Pero tienen que tener un nombre
00:04:21
Porque si no, ¿cómo le digo yo al programa?
00:04:23
Es en esta variable que tienes que guardar el 7 y no en cualquier otra
00:04:27
porque un programa puede tener muchas variables
00:04:31
habilitadas, declaradas
00:04:34
muchas, pero es importante
00:04:36
que la variable reciba un nombre
00:04:38
el que a mí me dé la gana como programador
00:04:39
lo ideal es que lo elija bien
00:04:41
claro, que elija un nombre
00:04:43
que esté en relación con el concepto que va aquí dentro
00:04:45
con el concepto que va aquí dentro
00:04:48
bueno, pues entonces
00:04:50
en fase de diseño
00:04:52
en la que todavía no estoy programando
00:04:55
en fase de diseño yo he decidido
00:04:56
que entre una variable entera
00:04:58
que la voy a llamar número
00:05:00
pues ahora ya
00:05:02
en la fase de codificación escribimos
00:05:04
la sentencia que lo hace
00:05:06
pero claro, la fase de diseño previa
00:05:07
es la que a mí me ha permitido estudiando el enunciado
00:05:10
decir, ah, espérate, que vas a necesitar
00:05:12
una variable entera, la vas a necesitar
00:05:15
vale, dale un nombre
00:05:16
¿qué nombre le vas a dar para que sea claro?
00:05:18
la vas a llamar así, vale, en fase de diseño
00:05:20
yo tomo esas decisiones
00:05:22
y me hago mi croquis y mis historias
00:05:24
y una vez que tengo esas decisiones claras y tomadas
00:05:26
logramos, bueno pues hemos decidido
00:05:29
que vamos a crear un espacio en memoria
00:05:32
para guardar números enteros
00:05:33
y a ese espacio le vamos a llamar número
00:05:36
¿cómo declaro yo ahora ya
00:05:38
una variable
00:05:39
en Java? pues primero
00:05:40
pongo el tipo de dato
00:05:43
en mi caso si he decidido
00:05:45
que es entero, pues sí, ¿vale?
00:05:48
eso es lo primero de todo
00:05:52
pongo el tipo de dato que yo he decidido
00:05:53
por eso Java se dice que es un lenguaje tipado
00:05:55
porque hay que decir, oye, que es ese tipo
00:05:58
vale, el tipo de dato
00:06:00
y luego pongo el nombre
00:06:02
que a mí me ha dado la gana ponerle
00:06:04
a ese espacio en memoria, el que yo decido
00:06:06
el que a mí me ha dado la gana
00:06:08
¿qué decido llamar la número a la variable?
00:06:09
pues pongo número
00:06:12
¿qué decido llamarla x?
00:06:13
pues pongo x
00:06:23
pero jolines, que mal elegido
00:06:24
por favor
00:06:26
olvidémonos de programas cuyas variables
00:06:27
se llaman a veces x y j
00:06:30
¿qué significan esas variables?
00:06:32
¿Qué significa X, Y, J, Z?
00:06:33
No, yo quiero un programa que sea
00:06:36
Número de facturas
00:06:38
Que las variables tengan nombres largos
00:06:42
Y que expliquen bien y que cuenten toda su vida
00:06:44
Número de facturas
00:06:46
Cantidad de clientes
00:06:47
Quiero variables con nombres largotes
00:06:49
Que lo expliquen bien, no cuesta tanto escribirlo
00:06:51
Si luego además los entornos de desarrollo
00:06:53
Te hacen un autocompletado muy fácil
00:06:56
No tienes que estar haciendo todo el rato
00:06:58
Nada de programas
00:07:00
Hablo en general
00:07:01
en general cuando ya están viendo aplicaciones de envergadura
00:07:02
claro, en un programa de prueba para probar
00:07:05
pues venga, lo llamo xy, ya está
00:07:07
pero principio básico
00:07:09
para el buen desarrollador
00:07:11
nombres de variables con sentido
00:07:13
con sentido
00:07:15
que son largotes, estupendo
00:07:17
mejor voy a entender para qué usaste
00:07:19
esa variable, si le has dado un nombre largo
00:07:21
bueno, pues ya está
00:07:23
esa es la sentencia de cada una variable
00:07:27
y terminada en punto y coma
00:07:29
como todas las sentencias en la mayoría
00:07:31
de los lenguajes de pronunciación, terminadas en punto y codo
00:07:33
primera sentencia
00:07:35
que ya podemos
00:07:37
ejecutar y poner en nuestro programa
00:07:38
entonces, esta sentencia
00:07:41
aunque parezca muy sencilla
00:07:43
tiene muchas implicaciones
00:07:44
a la máquina virtual cuando se la encuentra
00:07:47
cuando la máquina virtual
00:07:49
se encuentra esto, pasan un montón de cosas
00:07:51
pasan, que de repente
00:07:53
en la RAM, paz, por arte
00:07:55
de magia, se habilitan 32 bits
00:07:57
ahí, ala, se habilita
00:07:59
32 bits
00:08:03
y luego además pasa
00:08:05
que en toda la memoria
00:08:07
de proceso de mi programa
00:08:09
toda esa especie de bolsa que habilita la máquina
00:08:11
virtual para tener información
00:08:13
que le ayuda para cada programa
00:08:15
en toda esa bolsa, pues ya automáticamente
00:08:17
asocia este nombre
00:08:19
lo asocia a este espacio
00:08:21
de memoria
00:08:23
y ahora, en cualquier otro punto del programa
00:08:24
que yo use
00:08:27
número, use ese término
00:08:29
use número, pues ya sabrá
00:08:32
la máquina virtual a qué espacio
00:08:34
estamos refiriendo, estamos refiriendo a este
00:08:36
porque tiene su nombre
00:08:37
pues los nombres de variables tienen que ser únicos, obviamente
00:08:38
no puedo repetir nombres de variables
00:08:41
porque cada nombre de variable
00:08:43
hace referencia a un espacio
00:08:45
en memoria, donde va a ir un dato
00:08:48
¿vale?
00:08:49
a ver, luego ya, a partir de aquí ya son
00:08:56
matices, variables y cosas
00:08:58
pero bueno, esto ya uno según va programando
00:09:01
ah mira, si puedo hacer esto, ah que bien
00:09:03
ya son matices sobre la idea
00:09:05
la idea es de una variable
00:09:07
que implica poner el tipo de dato
00:09:09
el nombre que yo he elegido
00:09:11
y punto y coma
00:09:13
vale, no podemos
00:09:14
poner nombres de variables
00:09:17
nombres de variables que sean palabras
00:09:19
reservadas del lenguaje
00:09:21
a una variable no la puedo llamar int
00:09:22
por ejemplo, porque int
00:09:24
o byte, o short, o long
00:09:26
tienen ya un significado
00:09:29
concreto dentro del lenguaje Java, que es el tipo
00:09:31
de dato, entonces claro
00:09:33
tengo que elegir un nombre de variable
00:09:35
que no sea una palabra reservada
00:09:37
ya para la sintaxis de Java
00:09:39
pero bueno, eso
00:09:41
si lo usamos ya no sabéis
00:09:42
saber el compilador, no, este niño no puede
00:09:45
entonces, nombres lo más
00:09:47
explicativos posibles, se pueden
00:09:49
usar
00:09:51
caracteres, letras
00:09:52
el subrayado
00:09:55
el dólar juraría que también
00:09:56
Lo probamos ahora, pero bueno, nombres de variables con ese término, a menos que expliquen un concepto concreto que es concatenar y eso, no vais a ver mucho.
00:09:59
Empezando por letra, ¿vale? Hay pequeñas restricciones. A partir de aquí ya, en cada cosa puede haber un montón de matices que vosotros ya con vuestra curiosidad personal podéis ver.
00:10:12
Lo normal es que uno ponga un nombre de variable
00:10:22
lo más explicativo posible, lo menos confuso posible.
00:10:24
¿Vale?
00:10:30
¿Que luego queréis hacer virguería?
00:10:30
Pues, pues, ¿qué caracteres están permitidos para hacer,
00:10:31
para nombrar variables en Java?
00:10:35
Pues poneros a cotillear.
00:10:37
Pero que yo sepa, son números, letras, el subrayado bajo y este.
00:10:39
Pero bueno, combinaciones con sentido, siempre.
00:10:44
¿Vale?
00:10:46
¿Que queréis declarar varias variables del mismo tipo a la vez?
00:10:48
Bueno, pues Java te permite ponerlas separadas por comas.
00:10:51
¿Que mi programa va a trabajar con dos números?
00:10:54
Pues venga, número uno, número dos.
00:10:56
Me permite declararlas, si son del mismo tipo, todas seguiditas detrás del int.
00:10:59
Todas seguidas separadas por comas.
00:11:06
Me deja, todas seguiditas.
00:11:08
Vale.
00:11:10
Entonces, como consecuencia de esa sentencia, pues tengo aquí.
00:11:12
Automáticamente aparecen, plan, dos espacios en memoria RAM.
00:11:16
número 1 y número 2
00:11:19
aparecerán dos
00:11:23
para la variable número 1 y la variable número 2
00:11:23
y ahora ya estas variables
00:11:26
el programa las puede usar
00:11:30
¿las puede usar para qué?
00:11:31
pues lo primero que tendrá que hacer es
00:11:33
darles valor, obviamente
00:11:36
¿para qué quiere uno una variable?
00:11:37
para darle un valor
00:11:40
y una vez que la variable tiene valor
00:11:41
ya puede usarlo
00:11:44
para operar con él, pero lo primero que tiene que hacer
00:11:46
es darle un valor, para poder usarlo
00:11:48
entonces, de partida
00:11:50
cuando el espacio se crease automáticamente
00:11:54
¿qué tiene esto?
00:11:56
no podemos decir no tiene nada
00:11:58
porque es imposible
00:12:00
en los condensadores, en los transistores
00:12:01
en los dispositivos
00:12:04
que forman la memoria RAM
00:12:05
en cada bit
00:12:08
hay un 0 y hay un 1, no hay una nada
00:12:10
eso es imposible, ahí siempre tiene que haber
00:12:12
o un 0 o un 1
00:12:14
entonces cuando este espacio sea creado automáticamente
00:12:15
en memoria
00:12:18
¿qué hay por defecto?
00:12:19
bueno, pues es otra cosa que no se podría poner a curiosear
00:12:21
por defecto lo que hace la máquina virtual
00:12:23
de Java es ponértelo todo a cero
00:12:25
ponértelo todo a cero
00:12:27
pero luego el programa no tiene en cuenta
00:12:29
no tiene en cuenta esto que te había puesto a cero
00:12:31
si luego tú aquí quieres operar
00:12:33
con esta variable sin haberle dado valor antes
00:12:35
te va a decir, no, no, no
00:12:37
no puedes operar con esta variable
00:12:39
porque no le has dado ningún valor
00:12:41
¿vale? pero a ver, físicamente
00:12:42
tiene que tener algo
00:12:45
porque en la RAM
00:12:46
o hay ceros o hay unos, no puede haber
00:12:47
vacío, no puede haber un espacio ahí
00:12:50
un hueco vacío
00:12:52
bueno, pues entonces
00:12:53
si queremos usar esas variables
00:12:56
lo natural sería darles un valor
00:12:58
claro, para luego usarlas
00:13:00
bueno, pues entonces ahora
00:13:02
llegaríamos al siguiente
00:13:04
concepto clave, después de declarar
00:13:06
que declarar es este
00:13:08
que de nuevo tenemos grabado
00:13:10
en la cabeza, lo tenemos muy claro con todos sus matices
00:13:12
que quiero declarar un short, un char, un lo que sea
00:13:14
igual, pero cambiando
00:13:16
aquí el tipo, exactamente igual
00:13:18
pero cambiando el tipo
00:13:21
bueno, pues ahora
00:13:22
siguiente cosa importante, dar valor a variables
00:13:24
¿cómo hacemos eso?
00:13:27
eso es lo que llamamos asignación
00:13:29
de variables, ¿vale?
00:13:31
bueno, pues asignar
00:14:00
valor a variable, ahora ya, esto ya es otro
00:14:01
tema
00:14:03
entonces, para asignar un valor a una variable, la variable
00:14:04
tiene que estar declarada previamente
00:14:11
condición imprescindible
00:14:13
Si no está declarada previamente, no podemos asignarle un valor.
00:14:15
Tiene que estar declarada.
00:14:18
Bueno, en este caso aquí tenemos declaradas dos.
00:14:20
Pues, ¿cómo asignamos un valor a una variable?
00:14:23
Pues con la sentencia de asignación.
00:14:26
La sentencia de asignación que es simplemente nombre de la variable en el extremo izquierdo,
00:14:30
igual y valor que yo le quiera dar a la variable.
00:14:40
entonces a la izquierda nombre de la variable
00:14:45
a la que yo le quiero asignar valor
00:14:48
el operador igual
00:14:52
al que se le llama por razones obvias
00:14:54
operador de asignación
00:14:58
y a la derecha el valor que yo le quiero dar
00:14:59
a la variable
00:15:03
claro, tiene que ser un valor
00:15:05
compatible con el tipo de datos
00:15:10
fundamental
00:15:12
como no le dio un valor compatible
00:15:13
con el tipo de dato con el que se ha declarado
00:15:16
primer error de compilación
00:15:18
que nos encontramos
00:15:20
el valor no es compatible con el tipo de dato
00:15:21
bueno, pues un valor
00:15:23
compatible con el tipo de dato int
00:15:34
está claro cuál es
00:15:35
los números enteros
00:15:37
entonces una asignación
00:15:38
válida para la variable número 1
00:15:42
sería poner ahí un número entero
00:15:43
cualquiera, que yo pongo menos 3
00:15:45
ya está, es una asignación
00:15:47
válida y
00:15:50
terminado con punto y coma
00:15:50
porque todas las sentencias tienen que acabar con punto y coma
00:15:53
ala, esta es una sentencia de asignación
00:15:56
perfectamente válida, cumple todos los requisitos
00:15:58
a la izquierda
00:16:00
el nombre de la variable
00:16:02
operador de asignación igual
00:16:03
y a la derecha
00:16:06
el valor, que tiene que ser compatible
00:16:08
en el caso de los números
00:16:10
está muy claro, de los números enteros
00:16:11
está muy claro los valores compatibles
00:16:14
el número positivo o negativo
00:16:16
si es positivo
00:16:18
no se le pone el signo
00:16:20
si es negativo, sí
00:16:21
¿vale?
00:16:23
entonces esta es una sentencia de asignación válida
00:16:25
esta también
00:16:27
es válida
00:16:31
todas estas son válidas
00:16:33
bueno, son dos sentencias diferentes
00:16:34
esta sentencia
00:16:42
es una sentencia de asignación que asigna menos 3 a este
00:16:43
ahora con esta ya hemos acabado, punto y coma
00:16:46
ahora tendríamos otra sentencia distinta
00:16:47
o sea, la he puesto aquí porque aquí no se ve
00:16:50
para que el programa fuera bonito
00:16:52
lo iría a la gestión de abajo
00:16:53
pero son secuencias
00:16:54
o sea, una se ejecuta después de la otra
00:16:56
cuando está terminado se ejecuta esta
00:16:58
o sea, que tú el tipo sí lo puedes poner seguido
00:17:00
sí, a la hora de declararla
00:17:02
tú puedes ponerlo separado por coma los nombres
00:17:04
para asignar, tú asignas una por una
00:17:06
tú asignas una por una, no puedes asignar el mismo valor
00:17:08
a dos a la vez
00:17:10
vale, entonces
00:17:11
aquí ya empiezan a contar
00:17:16
pequeñas prácticas
00:17:18
a la hora de escribir código
00:17:20
que hacen que los códigos sean más legibles
00:17:22
más claros
00:17:24
que se vayáis incorporando mejor
00:17:25
porque de ver un código que esto un chorizo no se entiende nada
00:17:27
a ver un código claro
00:17:30
la diferencia es grande
00:17:31
por supuesto que pueden poner las sentencias todas en la misma línea
00:17:32
pero no entiendo nada
00:17:35
lo normal es que cada sentencia
00:17:37
se ponga una línea distinta
00:17:38
esta que es una sentencia diferente a esa
00:17:40
la pongo aquí debajo
00:17:43
entonces primero se ejecuta esta asignación
00:17:45
la máquina virtual ya ha terminado con ella
00:17:47
ahora se ejecuta la siguiente
00:17:49
la máquina virtual ya ha terminado con ella
00:17:51
luego la que venga después
00:17:52
si es que hay alguna en las que vengas a pasar
00:17:54
eso por un lado
00:17:55
pero eso es más evidente
00:17:58
que los programas mejor una
00:18:00
y otra
00:18:01
es bastante recomendable poner un espacio
00:18:03
antes y después del igual
00:18:06
que vais a ver a lo mejor
00:18:08
en función de las costumbres y de los usos
00:18:12
que en algunos casos no están incluidos
00:18:13
pero hombre se agradece
00:18:16
cuando se revisa un código
00:18:18
que esté todo apiñado
00:18:19
a que estén estos espacios
00:18:22
se agradece bastante
00:18:24
para clarificar luego
00:18:26
el conjunto de acciones que hay que hacer
00:18:27
bueno, pues por ejemplo
00:18:29
para verlo escrito ya en
00:18:38
la pantalla
00:18:40
que es más agradable
00:18:42
que
00:18:46
vale, aquí
00:18:47
adiós
00:18:52
vale
00:19:08
bueno
00:19:17
bueno, llevo aquí una pedazo de letra
00:19:33
para los de atrás
00:19:43
luego así no me cabe nada
00:19:44
en el este, pero bueno
00:19:46
vale, ahí
00:19:47
vale, pues venga, vamos a hacernos esta clase
00:19:53
ya de saludar del otro día afuera
00:20:00
vamos a hacernos
00:20:02
otra clase diferente
00:20:05
new class
00:20:07
por ahora asociar
00:20:09
cada clase a un programa distinto
00:20:12
¿vale?
00:20:14
y luego el concepto de clase en realidad
00:20:16
se asocia a otra cosa
00:20:17
pero ahora mismo cada clase es un poco distinto
00:20:22
a ver
00:20:24
truco para que no tengáis que escribir
00:20:25
el public static
00:20:28
lo in main que ya habréis visto
00:20:30
pero eso no significa que no lo vayáis a aprender
00:20:32
de memoria
00:20:34
cuando creéis una clase
00:20:35
como vimos el otro día aparte de la
00:20:38
del nombre que hay que ponerlo
00:20:40
podéis marcar aquí si queréis
00:20:42
que os incluya esto directamente
00:20:44
entonces si lo marcáis
00:20:46
os pone ya eso
00:20:48
Pero lo tenéis que saber de memoria
00:20:49
Como prácticamente todo
00:20:53
De hecho, de lo que he dicho hoy
00:20:56
Lo único que no tenéis que saber de memoria
00:20:57
Es que eso de que la programación estructurada
00:20:59
Se basa solo en tres tipos de estructuras
00:21:02
Y no se va a tener la estructura
00:21:04
Sería a lo mejor lo único
00:21:05
Que todo lo demás
00:21:06
Venga, pues, ala, le incluimos
00:21:08
Venga, ejemplos variables
00:21:10
Le vamos a llamar ejemplos variables
00:21:15
vale, quitamos esto
00:21:19
bueno y aquí cuando escribimos es cuando ya empiezo
00:21:24
a
00:21:26
equivocarme y escribir las cosas mal
00:21:26
pues venga, vamos a
00:21:29
declarar una variable entera, pues ya está
00:21:31
lo mismo que hemos escrito ahí
00:21:33
número 1, número 2
00:21:35
a ver, esta sería
00:21:37
la forma bonita
00:21:39
ir tabulando las cosas
00:21:41
veis que el public static boi main
00:21:44
lo ha tabulado
00:21:46
respecto a este, le voy a quitar el public
00:21:47
Que no me gusta
00:21:49
¿Vale? ¿Veis que lo ha tabulado?
00:21:52
Claro
00:21:57
Ahora, todo lo que va aquí
00:21:58
Entre estas llaves, todo lo que va aquí
00:22:00
Es ya mi código, mis sentencias
00:22:02
Pues para que quede muy claro
00:22:04
Este tabulador también, ahí mejor
00:22:06
Y todas las sentencias que yo escriba
00:22:09
Pues todas ahí, todas tabuladitas
00:22:10
Aquí en medio
00:22:13
Todas tabuladitas ahí
00:22:14
Para que se vea claro
00:22:17
¿Es obligatorio?
00:22:17
hombre, obviamente no
00:22:20
yo puedo hacerme un programa
00:22:21
así
00:22:23
ala, que programa tan divino
00:22:25
perfectamente, no tiene errores de compilación
00:22:35
no tiene nada
00:22:38
y así hasta una línea infinita
00:22:39
¿para qué sirve esto?
00:22:42
si te funciona la primera, estupendo
00:22:44
pero cuando tengas que revisar el código
00:22:46
olvídate, no
00:22:47
hacer códigos claros y elegantes
00:22:49
y para eso los tabuladores son importantes
00:22:52
Esto iría por aquí, esto iría por aquí, esto iría por aquí y esto iría por aquí
00:22:54
Como veis ya empiezan a aparecer algunas llaves
00:23:04
Ahora mismo solo vamos a coexistir con estas llaves
00:23:07
Solo con estas
00:23:12
Más adelante tendremos que crear nuestras propias llaves para nuestros propios bloques
00:23:13
Pero ir acostumbrándoos
00:23:18
Cada llave se cierra a la altura donde arranca la línea en la que se abrió.
00:23:21
Eso hace que quede todo más claro.
00:23:28
¿Veis? Esta llave cierra esta y se cierra a la misma altura de tabulación de la línea donde empezó.
00:23:30
Esta llave que cierra esto, se cierra a la misma altura de tabulación de la línea donde empezó.
00:23:36
¿Vale? Esas cosas, hacedlas desde ya.
00:23:42
La última, la que está aquí en el número 10, me he perdido.
00:23:45
me he perdido, o sea, esta llave
00:23:54
arranca esta línea, entonces la llave que la cierra
00:23:57
a la misma altura de donde arranca la línea escrita
00:23:59
o sea, esta llave
00:24:01
pertenece a esta línea
00:24:05
este corchete
00:24:07
está asociado a esta línea
00:24:11
con lo cual la que la cierra, que es esta
00:24:12
tiene que estar
00:24:15
a la misma altura que donde arrancaba
00:24:17
la línea en la que empezó
00:24:19
eso
00:24:20
efectivamente
00:24:21
o sea, class es la
00:24:27
¿eh?
00:24:28
¿cómo queda igual donde lo abra?
00:24:34
sí, dices que podría ponerlo yo aquí
00:24:39
podría ponerlo ahí, pero queda feo también
00:24:41
o sea, la costumbre es que tú abras la llave
00:24:43
en la misma línea
00:24:45
donde arrancaría ese bloque, aunque no lo entendemos
00:24:47
lo abras en esa misma línea
00:24:49
y el cierre sea la misma altura
00:24:50
donde empieza la línea en la que la abriste
00:24:53
¿vale?
00:24:55
Es lo que debemos acostumbrarnos, a verlo así,
00:24:57
porque luego lo vamos a hacer así también nosotros en nuestras propias...
00:25:00
¿Que podría hacerse de otra manera?
00:25:05
Claro que podría, pero normalmente hay ciertos convenios
00:25:06
que siguen todos los desarrolladores, ciertos convenios,
00:25:10
para entender más o menos y ser legibles unos para otros.
00:25:14
Aquí lo mismo, este espacio después de la coma,
00:25:19
es como cuando...
00:25:22
Esto es una regla ortográfica de toda la vida.
00:25:23
cuando escribís
00:25:25
después de una coma siempre hay un espacio
00:25:26
¿no? es una regla de autografía
00:25:29
pues aquí también se sigue, si yo me lo pongo
00:25:31
aquí todo pegadito, también puedo
00:25:33
y esto lo vais a ver más
00:25:35
pero el acuñamiento
00:25:37
pues nunca viene mal
00:25:39
vale, entonces de hecho
00:25:41
este ya, el entorno de desarrollo
00:25:42
que ya pretende ayudarme
00:25:45
ya me está
00:25:47
diciendo cosas, porque como veis
00:25:49
me está subrayando en amarillo
00:25:51
en rojo no
00:25:53
Porque no hay ningún error de compilación
00:25:54
Está perfectamente escrito
00:25:57
No hay ningún error de compilación
00:25:58
Otra cosa es que yo me hubiera equivocado
00:26:00
Y me hubiera dado por hacer esto
00:26:02
Ostras, aquí ya, claro, aquí ya la he cagado
00:26:03
Aquí he metido un error de compilación
00:26:06
Porque el tipo de dato no se llama IN con I mayúscula
00:26:08
Recordad que es sensible mayúscula y minúscula
00:26:11
Se llama IN con minúscula
00:26:13
Entonces aquí si habría escrito yo algo mal de la sintaxis
00:26:14
Y me daría rojo error de compilación
00:26:17
Aquí ya sí que no hay nada que avanzar
00:26:20
Entonces yo diría
00:26:21
Uy, error de compilación
00:26:23
¿Qué pasa?
00:26:24
Vamos por curiosidad a ver si el aviso que me da
00:26:26
En este caso tiene sentido o no
00:26:28
Debería tenerlo, pero es que esto ya
00:26:29
Y me dice
00:26:31
A ver, me dice
00:26:32
Oye, int con mayúsculas
00:26:35
Esto no lo puedo resolver a un tipo de dato
00:26:38
Pues efectivamente, es que int con mayúsculas no existe
00:26:41
No es un tipo de dato
00:26:45
Vale, entonces
00:26:47
Lo cambio
00:26:49
Y efectivamente ahora ya no hay errores de compilación
00:26:52
pero me sigue subrayando algo en amarillo
00:26:54
las cosas en amarillo no son las de compilación
00:26:57
esto compila y ejecuta
00:26:59
ahora mismo lo ejecuto y no va a pasar nada
00:27:01
se va a abrir unos espacios en memoria
00:27:03
y cuando el programa termine, ¡pam! va a desaparecer
00:27:05
eso es lo que va a pasar instantáneamente
00:27:07
se abre en RAM y se cierra en RAM
00:27:09
eso es lo que pasaría, que no llegamos a verlo, claro
00:27:10
entonces, errores de compilación no hay
00:27:13
pero el aviso amarillo
00:27:15
son avisos
00:27:18
de que, oye, te aviso
00:27:19
te aviso de cosas
00:27:20
para que las tengas en cuenta
00:27:22
que es que no le hace ninguna falta avisarnos
00:27:24
y ya la sabemos
00:27:25
¿de qué me está avisando aquí?
00:27:26
vamos a ver de qué me avisa
00:27:30
me está avisando
00:27:31
de que
00:27:34
esta variable
00:27:36
que tienes declarada no la usas para nada
00:27:37
es que tontería, un programa en el que declaras
00:27:39
una variable que no usas
00:27:42
es un aviso que bueno, tiene sentido
00:27:43
entonces las cositas, los avisos amarillos
00:27:46
está bien
00:27:48
tenerlos en cuenta y mirarlos
00:27:49
porque hay veces que te hacen darte cuenta
00:27:51
de algunas cositas
00:27:53
pero siempre de nuevo
00:27:54
para saber si lo que te dice tiene sentido o no
00:27:56
aquí te está diciendo, vaya programa más tonto
00:27:59
que declaras una variable
00:28:01
que no usas
00:28:03
y tú dices, pues sí, efectivamente
00:28:04
a lo mejor te das cuenta, tú tienes ya un programa
00:28:07
enorme hecho, que has cambiado
00:28:09
lo has arreglado, le has preparado de todo
00:28:11
y ya ves una cosa
00:28:13
amarilla arriba, dices, a ver
00:28:15
ah, coño, claro, que esta variable
00:28:17
al final la abandone y la sigo teniendo
00:28:18
aquí arriba, ah, pues bueno
00:28:21
y te quedas mojado del programa
00:28:23
entonces a veces tiene su utilidad
00:28:24
bueno, vamos a usarlas, pues nada, vamos a usarlas para
00:28:26
asignarle un valor
00:28:29
número 1 igual a 5
00:28:31
muy bien
00:28:33
número 2 igual a
00:28:33
menos 27
00:28:36
estupendo
00:28:38
muy bien, vale
00:28:40
ahora
00:28:42
vamos a mostrar el valor de las variables
00:28:45
vamos a mostrarlo
00:28:46
teníamos una sentencia
00:28:48
que ya conocemos
00:28:50
que la metemos desde el principio
00:28:53
no nos llama remedio, pero es básica
00:28:54
que sirve para mostrar
00:28:56
por pantalla
00:28:59
ya la conocemos
00:29:00
vale, entonces
00:29:01
esta sentencia
00:29:03
su uso original
00:29:06
como ya hemos visto es una cadena
00:29:08
tú le das una cadena y te la muestra
00:29:10
antes lo usamos con el hola
00:29:12
pero si le damos
00:29:14
un nombre de variable
00:29:16
si le damos un nombre
00:29:18
de variable
00:29:20
lo que hace es
00:29:21
coger ese valor
00:29:25
coge ese valor
00:29:27
te lo convierte a la cadena
00:29:29
de datos, la cadena de caracteres
00:29:32
que lo represente te la muestra
00:29:34
o sea, el sistema de octetel es muy listo
00:29:35
es muy listo, ya entenderemos
00:29:38
por qué es capaz de hacerlo más adelante
00:29:40
cuando sepamos manejar métodos ya lo entenderemos
00:29:42
pero como tenemos que utilizarlo desde ya
00:29:44
porque es que si no hacemos nada
00:29:46
ahora mismo que nos quedemos con la idea
00:29:47
de que este es un método muy listo
00:29:50
y que le des lo que le des
00:29:51
se las apaña para convertirlo en una cadena de caracteres
00:29:53
y mostrártelo por consola
00:29:56
cuando yo le dé esto
00:29:57
él no me va a mostrar por consola
00:29:59
la cadena de texto número 1
00:30:01
no me va a mostrar eso
00:30:04
esa es la que me mostraría si yo le digo esto
00:30:04
¿vale?
00:30:07
es decir, daos cuenta de esta diferencia importante
00:30:10
con esto
00:30:12
me estaría mostrando
00:30:14
por consola la cadena
00:30:16
de caracteres número 1
00:30:18
tal cual
00:30:20
vamos a ponerlo aquí en un comentario
00:30:21
la cadena de caracteres número 1
00:30:25
vale, pero System.out es muy listo
00:30:41
insisto, y es capaz de hacer
00:30:43
más cosas, además de mostrar
00:30:45
una cadena de texto tal cual, entrecomillada
00:30:47
y que es capaz de hacer, si yo le doy
00:30:49
un nombre de variable
00:30:52
y gracias a Dios que le he puesto nombres a variables
00:30:53
porque si no le ponemos nombres a variables
00:30:55
es imposible
00:30:58
acceder a los datos que están guardados en ellas
00:30:59
es imposible
00:31:01
entonces como les hemos dado un nombre a las variables
00:31:02
pues podemos referirnos
00:31:05
a ellas en cualquier punto del programa
00:31:07
pues yo me quiero referir a ellas aquí
00:31:10
y decir, oye
00:31:11
muestra por consola
00:31:13
lo que haya en esta variable
00:31:15
entonces esto
00:31:17
es una cosa
00:31:19
porque está entrecomillado
00:31:21
y esto es otra
00:31:23
esto es la cadena de caracteres
00:31:24
Número 1, tal cual, clavada
00:31:28
Esa cadena de caracteres
00:31:29
Que si se la paso al System.out lo muestra
00:31:30
Y esto es
00:31:33
La variable que se llama número 1
00:31:35
Pues si yo se la paso al System.out
00:31:38
Él es muy listo y sabe hacer muchas cosas
00:31:42
Entre ellos sabe
00:31:43
Coger el contenido de esa variable
00:31:44
Porque le estoy dando su nombre
00:31:47
Coger el contenido
00:31:48
Convertirlo en una cadena de caracteres
00:31:49
Para que yo lo vea por consola
00:31:52
¿Vale? Entonces
00:31:53
Variable
00:31:55
Que se llama
00:32:07
Número
00:32:09
Uno
00:32:14
¿Vale?
00:32:15
Pues son dos cosas muy distintas
00:32:16
Estas dos sentencias
00:32:18
¿De acuerdo?
00:32:19
¿Vale?
00:32:25
Si esta variable no existiera
00:32:26
De nuevo error de compilación
00:32:28
Imaginaos que me he equivocado
00:32:31
Porque estoy escribiendo muy rápido
00:32:33
Y he escrito los oes
00:32:34
Paz, automáticamente error de compilación
00:32:36
Está claro
00:32:39
Y el compilador, si yo me voy aquí al aviso, me diría, uy, número 1, no sé de qué me hablas.
00:32:40
Claro, error de compilación.
00:32:50
Es decir, cuando se usa una variable, esa variable tiene que estar declarada previamente.
00:32:52
Si no, no se puede usar.
00:32:58
Si no, no se puede usar.
00:33:01
Entonces, esta variable, la máquina virtual busca y no ve ninguna que se llame número 1.
00:33:02
Pues lo siento, pero no
00:33:09
Error de compilación, no podemos pasar de ahí
00:33:10
Entonces yo lo miro y digo
00:33:12
Ah, es que me he equivocado, he puesto una vez más
00:33:15
Vale, ahora sí
00:33:16
Esta variable sí existe, está declarada
00:33:18
Y no solo está declarada
00:33:21
Sino que la he usado
00:33:23
Ya una vez antes
00:33:24
Esta vez para asignarle un valor
00:33:26
Vale, esta vez para asignarle un valor
00:33:28
Vale, aquí como veis estoy poniendo comentarios
00:33:30
Ya vimos el otro día que para poner comentarios en un código
00:33:33
Podemos hacerlo de esta manera
00:33:35
Entonces si ejecutamos este código
00:33:37
Pues claro, nos saldrá
00:33:41
Lo que nos podemos imaginar
00:33:43
Primero, muestra la cadena número uno
00:33:47
Esta cadena de texto
00:33:51
Esto es lo que está mostrando
00:33:52
Ha hecho esta sentencia
00:33:54
Bueno, primero ha hecho estas dos
00:33:56
Bueno, ha hecho todas
00:33:58
Es decir, este programa ha hecho un montón de cosas
00:33:59
Ha creado un espacio memoria
00:34:02
con 32 bits para el número 1
00:34:04
que da otro espacio en memoria, con 32 bits para el número 2
00:34:07
luego a ese espacio en memoria
00:34:09
le ha metido la codificación binaria en un 5
00:34:11
al otro espacio en memoria le ha metido la codificación binaria
00:34:13
en 27, y un menos 27
00:34:15
luego una vez que ha hecho eso
00:34:17
una tras de otra, una vez que ha hecho eso
00:34:18
ha mostrado por consola
00:34:21
la cadena de texto número 1
00:34:23
aquí la tenemos
00:34:25
una vez que ha hecho eso, ha mostrado por consola
00:34:26
el contenido de la variable
00:34:29
número 1, porque aquí no se la estoy dando en recomiñada
00:34:31
Número 1
00:34:33
Vale, aquí lo ha mostrado
00:34:35
5, justo, perfecto
00:34:37
Pues, estupendo
00:34:39
Otro error de compilación típico
00:34:40
Imaginaos que
00:34:46
Vale, se me ha olvidado a mí
00:34:48
He declarado esta variable
00:34:54
He declarado esta variable
00:34:56
Y se me ha olvidado asignarle valor
00:34:59
No tiene valor
00:35:02
Eso es lo que se llama
00:35:03
Está sin inicializar
00:35:05
Es una variable que está sin
00:35:07
inicializar
00:35:09
está declarada, el espacio de memoria existe
00:35:10
pero no tiene nada dentro
00:35:13
vale, se me ha olvidado hacer esta línea
00:35:14
la he comentado, que comentarla es como
00:35:17
decirle a la máquina virtual
00:35:19
ignora, esto no es código, esto son palabrerías
00:35:21
automáticamente
00:35:23
me aparece el error de compilación típico
00:35:25
que es, cuando yo trato de usar
00:35:27
una variable
00:35:30
que no tiene valor
00:35:32
la máquina virtual me dice
00:35:33
perdona, no me pidas
00:35:35
que use esta variable, es decir, no me pidas
00:35:37
que coja su contenido para hacer algo
00:35:39
lo que sea, en este caso mostrarlo
00:35:41
por consón no me pidas porque no tiene nada
00:35:43
y es lo que nos está diciendo
00:35:45
¿vale? pues error
00:35:47
típico de compilación
00:35:50
tratar de acceder al valor de una
00:35:51
variable para hacer algo con ella, como es
00:35:53
aquí el caso, sin que tenga valor
00:35:55
sin que esté inicializada
00:35:57
y entonces va y me lo dice
00:35:58
y me dice
00:36:00
la variable número uno podría no estar
00:36:02
inicializada, tanto que
00:36:05
no está inicializada, es lo que me dice
00:36:07
y tanto que no está
00:36:09
en realidad sí que tiene algo
00:36:10
ya lo he dicho antes, tiene un montón de ceros
00:36:13
la memoria no puede tener un hueco ahí vacío
00:36:14
tiene un montón de ceros, pero eso a la máquina virtual
00:36:17
no le vale, la máquina virtual
00:36:19
quiere que tú la inicialices
00:36:21
¿vale? y ya no
00:36:22
ya con esto nos vamos
00:36:27
de hecho, el primer valor
00:36:29
que recibe una variable, hay veces
00:36:31
que ya se le da en el mismo momento de declarar
00:36:33
por comodidad, en el mismo momento
00:36:35
entonces yo esto mismo que he hecho, que es declarar
00:36:37
y luego dar valor, se permite hacer en la misma línea de la declaración de esta manera.
00:36:39
A la vez que declaras, ya de paso le asignas.
00:36:45
Luego, con esta sentencia, a la variable número 1, primero la declaro, la hago aparecer en memoria,
00:36:49
y ya de paso le asigno un valor.
00:36:55
Y lo mismo podría hacer con número 2, ya si quiero.
00:36:58
Si quiero.
00:37:03
Entonces, a la vez que se declara, se puede dar un primer valor,
00:37:04
que es lo que se llama inicializar
00:37:08
a la vez que se declara
00:37:10
si uno quiere
00:37:13
y así nos ahorraríamos esto
00:37:13
que luego quiero yo que cambie de valor y tenga otro
00:37:15
no pasa nada, se lo vuelvo a cambiar
00:37:18
le di inicialmente el 5
00:37:20
pero ahora le asigno el 15
00:37:22
bueno, pues el 5 desapareció
00:37:24
ahora tiene el 15
00:37:25
bueno, y ahora ya sí que lo
00:37:26
vamos a dejar aquí
00:37:30
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 16
- Fecha:
- 25 de septiembre de 2023 - 12:50
- Visibilidad:
- Público
- Centro:
- IES ROSA CHACEL
- Duración:
- 37′ 34″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1280x720 píxeles
- Tamaño:
- 716.98 MBytes