1 00:00:00,000 --> 00:00:02,700 bueno 2 00:00:02,700 --> 00:00:04,900 pues más o menos todo el mundo 3 00:00:04,900 --> 00:00:06,940 se le ha quedado claro de ayer 4 00:00:06,940 --> 00:00:09,380 primero que es una variable 5 00:00:09,380 --> 00:00:10,740 por ejemplo 6 00:00:10,740 --> 00:00:12,539 ¿tú puedes decir que es una variable? 7 00:00:16,129 --> 00:00:17,250 seguro que eres capaz 8 00:00:17,250 --> 00:00:25,260 ¿un espacio de la memoria? 9 00:00:25,480 --> 00:00:26,120 muy bien 10 00:00:26,120 --> 00:00:27,460 claro que le das 11 00:00:27,460 --> 00:00:30,519 claro, que sirve para darle valores 12 00:00:30,519 --> 00:00:32,039 efectivamente a lo largo de tu vida 13 00:00:32,039 --> 00:00:34,159 eso es exactamente una variable 14 00:00:34,159 --> 00:00:37,100 un espacio en memoria que está ahí 15 00:00:37,100 --> 00:00:39,219 creado para que el programa 16 00:00:39,219 --> 00:00:40,859 pueda meterlos en él 17 00:00:40,859 --> 00:00:42,539 y tenerlos ahí alineados para 18 00:00:42,539 --> 00:00:45,000 meterlos, operar con ellos 19 00:00:45,000 --> 00:00:46,380 eso es una variable 20 00:00:46,380 --> 00:00:49,700 vale, esa es su definición 21 00:00:49,700 --> 00:00:51,299 ¿qué más cosas me podéis 22 00:00:51,299 --> 00:00:53,340 decir de una variable ya en general? 23 00:00:53,700 --> 00:00:54,759 más cosas de una variable 24 00:00:54,759 --> 00:00:57,039 una variable necesita tener 25 00:00:57,039 --> 00:00:58,920 siempre un título 26 00:00:58,920 --> 00:01:00,880 en Java 27 00:01:00,880 --> 00:01:02,000 un tipo, sí 28 00:01:02,000 --> 00:01:05,060 ahora en concreto estaba pensando en un nombre 29 00:01:05,060 --> 00:01:07,079 vale, pero sí, las dos cosas son ciertas 30 00:01:07,079 --> 00:01:09,700 a una variable hay que darle un nombre 31 00:01:09,700 --> 00:01:11,780 porque si no, cuando tú escribas 32 00:01:11,780 --> 00:01:13,879 las sentencias de código, ¿cómo te refieres 33 00:01:13,879 --> 00:01:15,719 a ese espacio en memoria en concreto? 34 00:01:16,560 --> 00:01:17,700 de todos los que tienes 35 00:01:17,700 --> 00:01:19,859 pues a cada uno de los espacios 36 00:01:19,859 --> 00:01:22,200 en memoria en concreto te refieres con su nombre 37 00:01:22,200 --> 00:01:22,980 lógicamente 38 00:01:22,980 --> 00:01:25,900 luego cada variable recibe su propio nombre 39 00:01:25,900 --> 00:01:27,939 y las reglas 40 00:01:27,939 --> 00:01:30,120 ya de sintaxis de cada lenguaje 41 00:01:30,120 --> 00:01:31,859 las reglas sintácticas 42 00:01:31,859 --> 00:01:34,079 es lo que yo puedo 43 00:01:34,079 --> 00:01:34,680 escribir 44 00:01:34,680 --> 00:01:37,099 siguiendo las reglas 45 00:01:37,099 --> 00:01:39,280 y lo que no, las reglas sintácticas de Java 46 00:01:39,280 --> 00:01:40,799 pues en general quedémonos 47 00:01:40,799 --> 00:01:43,420 con que nos dicen que elijamos 48 00:01:43,420 --> 00:01:45,280 nombres de variables que sean 49 00:01:45,280 --> 00:01:47,640 compuestos de letras 50 00:01:47,640 --> 00:01:48,459 números 51 00:01:48,459 --> 00:01:50,200 y subrayado 52 00:01:50,200 --> 00:01:53,299 y que no 53 00:01:53,299 --> 00:01:54,799 empiecen por número, ¿vale? 54 00:01:54,879 --> 00:01:56,980 esas más o menos, con esas reglas básicas 55 00:01:56,980 --> 00:01:58,579 podemos hacer nombres de variables 56 00:01:58,579 --> 00:01:58,920 vale 57 00:01:58,920 --> 00:02:02,560 entonces, la variable es un espacio 58 00:02:02,560 --> 00:02:04,640 en memoria, luego como muy bien habéis dicho 59 00:02:04,640 --> 00:02:12,199 la variable es de un tipo dentro de un conjunto de tipos posibles. ¿Y qué significa ser de un tipo? 60 00:02:13,039 --> 00:02:20,780 En realidad, en Java, en programación, significa solamente cuánto espacio ocupa en memoria y cómo 61 00:02:20,780 --> 00:02:29,960 está codificado. Entonces, una variable de tipo entero, de tipo entero, es una variable que está 62 00:02:29,960 --> 00:02:31,960 codificada para guardar números 63 00:02:31,960 --> 00:02:33,800 enteros, ya está 64 00:02:33,800 --> 00:02:35,259 esa es una variable de tipo entero 65 00:02:35,259 --> 00:02:37,979 ¿y cuánto espacio damos para 66 00:02:37,979 --> 00:02:39,939 codificar esa variable 67 00:02:39,939 --> 00:02:41,900 de tipo entero? pues tenemos hasta 68 00:02:41,900 --> 00:02:43,139 cuatro posibilidades 69 00:02:43,139 --> 00:02:45,960 o dar solo un byte, 8 bits 70 00:02:45,960 --> 00:02:48,340 entonces ese subtipo 71 00:02:48,340 --> 00:02:49,919 dentro de los enteros 72 00:02:49,919 --> 00:02:51,780 sería el subtipo que se llamaba byte 73 00:02:51,780 --> 00:02:54,180 ¿qué damos 16 bits 74 00:02:54,180 --> 00:02:56,180 para codificar ese número entero? 75 00:02:56,900 --> 00:02:58,099 pues entonces estamos hablando 76 00:02:58,099 --> 00:02:59,639 del subtipo short 77 00:02:59,639 --> 00:03:00,699 ¿Vale? 78 00:03:01,719 --> 00:03:03,680 Quedamos 32 bits 79 00:03:03,680 --> 00:03:05,240 Para codificar ese número entero 80 00:03:05,240 --> 00:03:07,699 Luego nos, podremos codificar números 81 00:03:07,699 --> 00:03:09,719 Todavía más grandotes, con 32 bits 82 00:03:09,719 --> 00:03:11,860 Pues esa variable, ese tipo 83 00:03:11,860 --> 00:03:13,199 Entonces lo llamamos int 84 00:03:13,199 --> 00:03:15,840 Quedamos hasta 64 bits 85 00:03:15,840 --> 00:03:17,340 Para codificar ese número 86 00:03:17,340 --> 00:03:18,439 En memoria RAM 87 00:03:18,439 --> 00:03:20,960 Podemos guardar números muy grandotes 88 00:03:20,960 --> 00:03:23,379 Pues ese tipo se llamará log 89 00:03:23,379 --> 00:03:25,319 ¿Vale? Luego 4 90 00:03:25,319 --> 00:03:27,539 Subtipos, si lo queréis ver así 91 00:03:27,539 --> 00:03:29,740 B para codificar 92 00:03:29,740 --> 00:03:31,580 Variables de tipo número 93 00:03:31,580 --> 00:03:33,819 Entonces cada uno de ellos eran 94 00:03:33,819 --> 00:03:36,080 Como ya mencionamos ayer 95 00:03:36,080 --> 00:03:52,509 Eran 96 00:03:52,509 --> 00:03:55,610 Int 97 00:03:55,610 --> 00:03:57,409 Bueno, empezado por 98 00:03:57,409 --> 00:03:58,810 Shabbat 99 00:03:58,810 --> 00:04:01,030 Short, muy bien 100 00:04:01,030 --> 00:04:02,710 Int 101 00:04:02,710 --> 00:04:03,990 Y long 102 00:04:03,990 --> 00:04:07,150 Int y long 103 00:04:07,150 --> 00:04:13,110 Son los dos tipos más usados para declarar variables de tipo número, ¿vale? 104 00:04:13,110 --> 00:04:30,170 Porque byte y short, al tener solamente 8 bits esta de aquí y 16 bits esta de aquí, al tener solo eso, pues me permite números en un rango demasiado pequeño, ¿vale? 105 00:04:30,170 --> 00:04:33,069 byte, pues entre menos 127 106 00:04:33,069 --> 00:04:34,610 y 127 a cross 107 00:04:34,610 --> 00:04:36,709 y short 108 00:04:36,709 --> 00:04:38,870 pues entre 256 y 990 109 00:04:38,870 --> 00:04:40,129 a cross, o sea, es poquito 110 00:04:40,129 --> 00:04:42,889 pues normalmente cuando nosotros 111 00:04:42,889 --> 00:04:45,069 necesitemos una variable 112 00:04:45,069 --> 00:04:47,050 de tipo número entero, porque nuestro programa 113 00:04:47,050 --> 00:04:48,730 va a trabajar con números enteros 114 00:04:48,730 --> 00:04:50,569 para sumarlos, restarlos, porque haga falta 115 00:04:50,569 --> 00:04:52,649 pues normalmente usaremos este 116 00:04:52,649 --> 00:04:54,649 que es el que tiene 117 00:04:54,649 --> 00:04:55,610 32 bits 118 00:04:55,610 --> 00:04:58,709 y si ya nuestro 119 00:04:58,709 --> 00:05:04,129 programa va a usar números enormes, que hay veces que puede ocurrir, lo declaramos así. 120 00:05:07,759 --> 00:05:12,459 Bueno, pues ¿cómo se declara una variable? Ya dijimos ayer que eso ya se tiene que hacer 121 00:05:12,459 --> 00:05:16,740 mediante una sentencia de código. Eso ya es código de programa, declarar variable. 122 00:05:17,139 --> 00:05:22,379 Ya es una línea de código. Luego mi programa no tendrá solamente sentencias que hacen 123 00:05:22,379 --> 00:05:27,240 cosas. Por supuesto que tendrá sentencias que hacen cosas, pero también tendrá sentencias 124 00:05:27,240 --> 00:05:29,339 que valen solamente para declarar 125 00:05:29,339 --> 00:05:30,519 variables, solo para eso. 126 00:05:31,899 --> 00:05:33,639 Bueno, pues ¿cuál es la sintaxis, 127 00:05:33,959 --> 00:05:34,720 las reglas, 128 00:05:35,519 --> 00:05:37,079 las normas que tengo que seguir para 129 00:05:37,079 --> 00:05:39,240 declarar correctamente una variable? 130 00:05:39,899 --> 00:05:40,939 Ya las dijimos ayer. 131 00:05:41,959 --> 00:05:43,420 Una vez que ya he elegido 132 00:05:43,420 --> 00:05:44,980 el tipo de dato 133 00:05:44,980 --> 00:05:47,180 que me interesa, el tipo de dato, 134 00:05:47,759 --> 00:05:49,360 pues lo primero que pongo es el tipo de 135 00:05:49,360 --> 00:05:50,759 dato. Eso es lo primero que pongo. 136 00:05:52,339 --> 00:05:52,779 ¿Vale? 137 00:05:53,160 --> 00:05:54,199 Y luego ya 138 00:05:54,199 --> 00:05:56,860 pongo el nombre que a mí me dé 139 00:05:56,860 --> 00:06:02,160 la gana para la variable, el nombre lo más explicativo posible, porque luego mi programa 140 00:06:02,160 --> 00:06:06,379 tendrá un montón de sentencias por debajo que hacen cosas con la variable altura, altura 141 00:06:06,379 --> 00:06:12,079 por tres, altura no sé qué, entonces cuando yo vea esas sentencias ahí abajo, pues ya 142 00:06:12,079 --> 00:06:16,500 sé en realidad qué están haciendo, ah, están haciendo cosas con alturas, ¿vale? 143 00:06:16,819 --> 00:06:21,579 Lo que decíamos ayer, si yo a esta variable le he llamado x y veo un programa y me miro 144 00:06:21,579 --> 00:06:25,699 directamente las líneas de abajo y veo un montón de operaciones con una tal x, digo 145 00:06:25,699 --> 00:06:27,300 ¿Y esto qué significa? ¿Para qué sirve? 146 00:06:28,899 --> 00:06:30,420 Porque vuestros códigos 147 00:06:30,420 --> 00:06:31,860 Lógicamente 148 00:06:31,860 --> 00:06:33,660 Trabajarán con ellos otras personas 149 00:06:33,660 --> 00:06:35,899 Que los cultivarán, los desarrollarán 150 00:06:35,899 --> 00:06:36,740 O los mantendrán 151 00:06:36,740 --> 00:06:38,920 Y tienen que ser códigos 152 00:06:38,920 --> 00:06:41,259 Lo más fáciles de entender posibles 153 00:06:41,259 --> 00:06:42,980 Si no son fáciles de entender 154 00:06:42,980 --> 00:06:44,639 Pues ese código no se va a poder mantener 155 00:06:44,639 --> 00:06:46,519 Con lo cual no va a ser un código bien hecho 156 00:06:46,519 --> 00:06:48,399 Porque no se puede mantener correctamente 157 00:06:48,399 --> 00:06:51,019 Y entonces vosotros lo habréis hecho mal 158 00:06:51,019 --> 00:06:52,800 Con todo lo que eso implica 159 00:06:52,800 --> 00:06:54,740 Bueno, pues entonces ayer 160 00:06:54,740 --> 00:06:56,120 estábamos simplemente ya 161 00:06:56,120 --> 00:06:58,600 en nuestro entorno de desarrollo 162 00:06:58,600 --> 00:07:00,660 en el que íbamos a trabajar, poniendo 163 00:07:00,660 --> 00:07:02,779 esa sentencia para ver, comprobar 164 00:07:02,779 --> 00:07:04,439 que esa era su sintaxis correcta. 165 00:07:05,019 --> 00:07:06,480 ¿Vale? ¿Alguien ha tenido algún problema 166 00:07:06,480 --> 00:07:08,300 instalando el eclipse? 167 00:07:11,019 --> 00:07:12,079 Madre mía, cuánta gente. 168 00:07:12,860 --> 00:07:13,860 Tú porque se quedaba parado. 169 00:07:14,819 --> 00:07:16,180 ¿No? Y se te sigue quedando parado. 170 00:07:17,720 --> 00:07:18,680 ¿Y vosotros? 171 00:07:19,639 --> 00:07:20,480 ¿Qué os ha pasado? 172 00:07:22,399 --> 00:07:23,620 Y hablamos al topozo. 173 00:07:38,980 --> 00:07:52,670 Venga, pues entonces 174 00:07:52,670 --> 00:07:54,610 nosotros ya ayer habíamos dicho 175 00:07:54,610 --> 00:07:57,029 como vamos a empezar ya desde el principio 176 00:07:57,029 --> 00:07:58,290 para poder hacer cosas 177 00:07:58,290 --> 00:08:02,350 a estirar líneas de código 178 00:08:02,350 --> 00:08:04,769 hay cosas que 179 00:08:04,769 --> 00:08:06,810 tenemos que poner por 180 00:08:06,810 --> 00:08:08,750 decreto 181 00:08:08,750 --> 00:08:10,709 sin entender todavía muy bien 182 00:08:10,709 --> 00:08:12,670 qué significa, ¿vale? Entonces las cosas 183 00:08:12,670 --> 00:08:14,449 que tenemos que poner por decreto 184 00:08:14,449 --> 00:08:16,649 sin entender todavía muy bien que significan 185 00:08:16,649 --> 00:08:18,089 porque están directamente 186 00:08:18,089 --> 00:08:20,490 relacionadas a la programación de entrada de objetos 187 00:08:20,490 --> 00:08:21,730 la cual todavía no conocemos 188 00:08:21,730 --> 00:08:25,009 pues son estas, la primera línea que dijimos 189 00:08:25,009 --> 00:08:25,389 que era 190 00:08:25,389 --> 00:08:28,850 el paquete o subcarpeta 191 00:08:28,850 --> 00:08:31,089 que uno había hecho aquí dentro del SRC 192 00:08:31,089 --> 00:08:35,269 el paquete o subcarpeta donde tiene sus programitas 193 00:08:35,269 --> 00:08:38,409 entonces, esta línea tiene que estar 194 00:08:38,409 --> 00:08:40,529 luego tiene que estar esta otra 195 00:08:40,529 --> 00:08:43,690 con una llave que se abre y otra que se cierra 196 00:08:43,690 --> 00:08:45,509 donde ya va 197 00:08:45,509 --> 00:08:46,649 todo el grueso del programa 198 00:08:46,649 --> 00:08:49,409 y luego ya dentro de este bloque 199 00:08:49,409 --> 00:08:50,610 que se abre y se cierra 200 00:08:50,610 --> 00:08:53,610 esto, que es lo que se llama método 201 00:08:53,610 --> 00:08:54,730 aunque ahora no lo entendemos 202 00:08:54,730 --> 00:08:55,870 esto 203 00:08:55,870 --> 00:08:59,309 que de nuevo abre aquí otro bloque 204 00:08:59,309 --> 00:09:00,970 y aquí ya sí que irán 205 00:09:00,970 --> 00:09:03,029 todas nuestras sentencias, ¿vale? 206 00:09:06,149 --> 00:09:07,570 Repito, esto ya entenderemos 207 00:09:07,570 --> 00:09:09,669 por qué hay que ponerlo, ahora no podemos 208 00:09:09,669 --> 00:09:11,549 porque no sabemos programación orientada a objetos 209 00:09:11,549 --> 00:09:13,149 vale 210 00:09:13,149 --> 00:09:15,330 según vayáis haciendo cosas 211 00:09:15,330 --> 00:09:17,110 si vais incorporando comentarios 212 00:09:17,110 --> 00:09:19,429 mejor, porque así vais vosotros 213 00:09:19,429 --> 00:09:21,769 explicándoos a vosotros mismos 214 00:09:21,769 --> 00:09:23,049 en vuestros proyectos 215 00:09:23,049 --> 00:09:24,409 porque estáis poniendo las cosas 216 00:09:24,409 --> 00:09:26,490 los comentarios 217 00:09:26,490 --> 00:09:29,269 ya seguramente sabéis 218 00:09:29,269 --> 00:09:30,169 muchos de vosotros 219 00:09:30,169 --> 00:09:33,690 que son líneas que se intercalan dentro del código 220 00:09:33,690 --> 00:09:35,549 que son solamente 221 00:09:35,549 --> 00:09:37,210 explicaciones para el humano 222 00:09:37,210 --> 00:09:38,889 eso no se ejecuta 223 00:09:38,889 --> 00:09:45,110 A la máquina virtual que va a ejecutar el programa, los comentarios los ignora directamente. 224 00:09:45,210 --> 00:09:50,429 Los comentarios no se ejecutan, sirven solo para poner aclaraciones, que es fundamental. 225 00:09:51,129 --> 00:09:59,250 Un programa bien comentado, con muchos comentarios, va a ser mucho más fácil de entender para otro que lo hereda y lo tiene que continuar manteniendo. 226 00:10:00,870 --> 00:10:04,450 Entonces, ¿cómo incorporo comentarios en Java? 227 00:10:05,409 --> 00:10:07,389 Pues tengo en realidad tres posibilidades. 228 00:10:07,389 --> 00:10:10,370 una de ellas, los comentarios 229 00:10:10,370 --> 00:10:11,809 multilínea que se llaman 230 00:10:11,809 --> 00:10:13,889 cuando yo quiero empezar a hacer un comentario 231 00:10:13,889 --> 00:10:16,309 esta es mi primera declaración de variable 232 00:10:16,309 --> 00:10:17,950 pues barra 233 00:10:17,950 --> 00:10:20,289 asterisco, ahí empieza 234 00:10:20,289 --> 00:10:22,230 mi comentario y pongo yo lo que quiero 235 00:10:22,230 --> 00:10:32,240 puedo seguir por aquí 236 00:10:32,240 --> 00:10:32,840 abajo 237 00:10:32,840 --> 00:10:36,120 de variable 238 00:10:36,120 --> 00:10:37,000 entonces 239 00:10:37,000 --> 00:10:39,700 el comentario 240 00:10:39,700 --> 00:10:42,299 sigue siendo comentario, yo puedo seguir 241 00:10:42,299 --> 00:10:44,139 aquí escribiendo cosas hasta el infinito 242 00:10:44,139 --> 00:10:51,899 Y hasta que yo no le dé el cierre, que el cierre se lo doy de esta manera, no termina el comentario. 243 00:10:52,879 --> 00:10:57,700 Es un comentario que se llama multilínea, porque yo pongo ahí un montón de líneas, bla, bla, bla, bla, bla, bla. 244 00:10:58,740 --> 00:11:05,440 Desde el primer carácter hasta este último carácter, eso lo ignora el intérprete de Java, eso no se genera. 245 00:11:10,879 --> 00:11:12,620 Otra forma de poner comentarios. 246 00:11:12,620 --> 00:11:17,159 Cuando los comentarios van a durar solo una línea, que es relativamente habitual, 247 00:11:17,879 --> 00:11:42,710 Para explicar cuál es la variable, pues los comentarios de una única línea arrancan con estas dobles barras, por ejemplo, esto sería un comentario típico, ¿vale? Con doble barra empieza un comentario que puede durar solo una línea. 248 00:11:42,710 --> 00:11:45,549 desde el momento en que yo de un enter 249 00:11:45,549 --> 00:11:47,529 lo siguiente 250 00:11:47,529 --> 00:11:48,950 ya no es comentario 251 00:11:48,950 --> 00:11:51,610 ¿vale? ¿que quiero seguir comentando 252 00:11:51,610 --> 00:11:53,470 aquí? pues pongo otra 253 00:11:53,470 --> 00:11:54,529 doble barra 254 00:11:54,529 --> 00:11:57,629 ¿vale? es decir, si arranco 255 00:11:57,629 --> 00:11:59,750 los comentarios con una barra sencilla 256 00:11:59,750 --> 00:12:01,370 el comentario termina 257 00:12:01,370 --> 00:12:02,870 en cuanto acaba la línea 258 00:12:02,870 --> 00:12:04,049 ¿vale? 259 00:12:05,049 --> 00:12:06,990 con el siguiente salto de línea ya 260 00:12:06,990 --> 00:12:08,809 se sobreentiende que es código 261 00:12:08,809 --> 00:12:16,830 ¿vale? 262 00:12:18,950 --> 00:12:37,250 Entonces, incorporad comentarios para luego cuando veáis vuestros propios proyectos enteraros de lo que habéis hecho. Yo también iré incorporando comentarios porque bueno, ahora mismo estamos escribiendo dos chorradas, pero bueno, iré incorporando comentarios porque luego los proyectos, los ejercicios que vayamos ya subiendo resueltos, así se os quedan también comentados. 263 00:12:37,250 --> 00:12:41,919 bueno 264 00:12:41,919 --> 00:12:45,080 reglas de estilo 265 00:12:45,080 --> 00:12:48,460 importante más de lo que parece 266 00:12:48,460 --> 00:12:50,480 que vuestro código 267 00:12:50,480 --> 00:12:51,799 tenga un estilo 268 00:12:51,799 --> 00:12:53,460 legible 269 00:12:53,460 --> 00:12:55,840 es decir, que se pueda leer 270 00:12:55,840 --> 00:12:56,639 esto es como decir 271 00:12:56,639 --> 00:13:00,480 tú puedes escribir el Quijote con una letra horrorosa 272 00:13:00,480 --> 00:13:03,779 que sí, vale, está bien escrito 273 00:13:03,779 --> 00:13:05,179 sin faltas de ortografía 274 00:13:05,179 --> 00:13:07,919 perfectamente, pero con una letra horrible 275 00:13:07,919 --> 00:13:10,419 que nadie entiende, con lo cual 276 00:13:10,419 --> 00:13:12,059 alguien le das tú tu Quijote 277 00:13:12,059 --> 00:13:14,480 escrito con tu letra, ortografía 278 00:13:14,480 --> 00:13:15,899 perfecta, todo perfecto 279 00:13:15,899 --> 00:13:18,179 y le cuesta a veces entenderlo, tiene que estar ahí 280 00:13:18,179 --> 00:13:19,299 con la lupa a ver qué has escrito 281 00:13:19,299 --> 00:13:22,059 eso sería escribir sin estilo 282 00:13:22,059 --> 00:13:24,500 pero puedes escribir el Quijote 283 00:13:24,500 --> 00:13:26,240 con una letra preciosa 284 00:13:26,240 --> 00:13:28,360 perfecta, exactamente igual 285 00:13:28,360 --> 00:13:30,100 que en el otro caso con las mismas 286 00:13:30,100 --> 00:13:32,440 correcciones ortográficas 287 00:13:32,440 --> 00:13:34,100 todo perfecto, pero 288 00:13:34,100 --> 00:13:36,019 ese libro que has escrito con tu letra 289 00:13:36,019 --> 00:13:38,039 perfecta, lo va a leer todo el mundo 290 00:13:38,039 --> 00:13:40,120 y nadie lo va a tirar a la basura 291 00:13:40,120 --> 00:13:41,460 porque lo entienden perfectamente. 292 00:13:42,340 --> 00:13:43,539 Pues con el código es igual. 293 00:13:45,539 --> 00:13:46,039 Yo este 294 00:13:46,039 --> 00:13:48,059 programa lo puedo escribir así. 295 00:13:59,120 --> 00:13:59,899 Voy a quitar 296 00:13:59,899 --> 00:14:11,440 esto. ¡Hala! 297 00:14:12,820 --> 00:14:13,820 Programa estupendo. 298 00:14:15,299 --> 00:14:15,820 Perfecto. 299 00:14:16,240 --> 00:14:17,600 La máquina virtual lo ejecuta. 300 00:14:17,779 --> 00:14:19,600 Ni un solo error de compilación. 301 00:14:19,840 --> 00:14:21,580 Recordad lo que eran los errores de compilación 302 00:14:21,580 --> 00:14:22,100 de ayer. 303 00:14:23,639 --> 00:14:25,379 Aquí no me aparece nada rojo. El programa está 304 00:14:25,379 --> 00:14:27,639 estupendo, pero tú le entregas 305 00:14:27,639 --> 00:14:28,220 esto a alguien 306 00:14:28,220 --> 00:14:31,419 y madre mía, ve esto y dice, pero esto que es 307 00:14:31,419 --> 00:14:32,200 tiene que ir así 308 00:14:32,200 --> 00:14:34,159 que hay aquí escrito 309 00:14:34,159 --> 00:14:36,799 y es una línea de código 310 00:14:36,799 --> 00:14:39,860 la declaración de variables, si fueran tropecientas líneas 311 00:14:39,860 --> 00:14:41,159 el programa 312 00:14:41,159 --> 00:14:43,399 sintácticamente perfecto, ejecuta 313 00:14:43,399 --> 00:14:45,299 la perfección, pero el que hereda 314 00:14:45,299 --> 00:14:47,159 este código o quiere hacer algo con él 315 00:14:47,159 --> 00:14:48,179 no entiende nada 316 00:14:48,179 --> 00:14:50,899 luego, tenemos que seguir 317 00:14:50,899 --> 00:14:52,580 unas reglas de estilo 318 00:14:52,580 --> 00:14:54,779 que asumimos que seguimos todos 319 00:14:54,779 --> 00:14:57,399 para que nuestros códigos sean legibles para otros. 320 00:14:59,100 --> 00:15:00,159 Reglas de estilo. 321 00:15:00,360 --> 00:15:04,799 Pues, por supuesto, cada sentencia en una línea, ¿vale? 322 00:15:04,899 --> 00:15:10,929 Y la más importante, las tabulaciones. 323 00:15:14,059 --> 00:15:17,399 Es decir, ahora mismo no sabemos muy bien lo que es un bloque 324 00:15:17,399 --> 00:15:19,840 porque todavía nos falta mucha información. 325 00:15:20,600 --> 00:15:25,759 Os digo simplemente que un bloque es todo el espacio encerrado 326 00:15:25,759 --> 00:15:27,320 entre una llave que se abre 327 00:15:27,320 --> 00:15:28,759 y otra que se cierra 328 00:15:28,759 --> 00:15:31,840 luego aquí hemos tenido que hacer 329 00:15:31,840 --> 00:15:33,639 obligatoriamente y sin entender 330 00:15:33,639 --> 00:15:35,320 todavía por qué, porque os he dicho yo 331 00:15:35,320 --> 00:15:36,419 tenéis que escribirlo así 332 00:15:36,419 --> 00:15:39,659 aquí hemos tenido que hacer dos, este grandote 333 00:15:39,659 --> 00:15:41,860 y dentro de ese 334 00:15:41,860 --> 00:15:43,039 grandote este otro 335 00:15:43,039 --> 00:15:45,259 ahora mismo lo hemos tenido que hacer así 336 00:15:45,259 --> 00:15:46,860 porque os lo digo yo, que lo tenéis que hacer así 337 00:15:46,860 --> 00:15:49,320 para poder escribir vuestro programa aquí dentro 338 00:15:49,320 --> 00:15:51,639 vale, pues cada vez 339 00:15:51,639 --> 00:15:53,639 que se abre un código 340 00:15:53,639 --> 00:15:55,259 de estos, lo que hay dentro 341 00:15:55,259 --> 00:15:58,159 tiene que ir tabulado, no es que tenga 342 00:15:58,159 --> 00:16:00,320 no es obligatorio, pero es una regla de estilo 343 00:16:00,320 --> 00:16:01,899 básica que todos debemos seguir 344 00:16:01,899 --> 00:16:03,960 yo puedo escribir mi programa 345 00:16:03,960 --> 00:16:06,059 también y está perfectamente escrito así 346 00:16:06,059 --> 00:16:07,919 sintácticamente 347 00:16:07,919 --> 00:16:10,299 ala, este programa 348 00:16:10,299 --> 00:16:12,159 funciona exactamente igual que el otro 349 00:16:12,159 --> 00:16:14,159 pero tú entregas esto 350 00:16:14,159 --> 00:16:16,240 a alguien y dice, este tío no tiene ni puñetera idea 351 00:16:16,240 --> 00:16:16,980 de hacer nada 352 00:16:16,980 --> 00:16:20,320 y no te va a contratar, lógicamente, entregas un código 353 00:16:20,320 --> 00:16:22,279 así, porque no estás siguiendo las reglas de estilo 354 00:16:22,279 --> 00:16:24,639 comúnmente aceptadas 355 00:16:24,639 --> 00:16:47,460 ¿Qué te dicen? Uy, aquí arranca un bloque. Tabula. Tabula. Tabulo. Vale. Aquí arranca otro. Aquí arranca otro. Pues tabula dentro del de arriba. Vale. Y si no lo dejo aquí pegado, mejor. Aunque bueno, eso podría ser cuestionable e ir en gustos. Depende. Vale. 356 00:16:47,460 --> 00:16:49,240 Esto ya sí 357 00:16:49,240 --> 00:16:51,799 Aquí he arrancado un bloque 358 00:16:51,799 --> 00:16:52,879 ¡Pum! He tabulado 359 00:16:52,879 --> 00:16:55,600 Resulta que aquí he tenido que arrancar otro 360 00:16:55,600 --> 00:16:57,679 Todavía no sabemos por qué, pero he tenido que arrancarlo 361 00:16:57,679 --> 00:16:59,340 ¡Pum! He tabulado 362 00:16:59,340 --> 00:17:00,559 ¿Vale? 363 00:17:01,039 --> 00:17:03,600 Cuando ya hagamos sentencias de cosas 364 00:17:03,600 --> 00:17:05,319 Que arrancan otros bloques dentro 365 00:17:05,319 --> 00:17:06,579 Que ya las tendremos que hacer 366 00:17:06,579 --> 00:17:08,339 Lo que hagamos dentro de eso 367 00:17:08,339 --> 00:17:09,799 Tabulado también 368 00:17:09,799 --> 00:17:12,099 Ahora mismo pondremos una sentencia detrás de otra 369 00:17:12,099 --> 00:17:13,920 Con lo cual ya no hará falta tabular más 370 00:17:13,920 --> 00:17:18,019 estos tabuladores que fijan los entornos de desarrollo 371 00:17:18,019 --> 00:17:20,200 son de cuatro espacios 372 00:17:20,200 --> 00:17:21,420 que es lo que se asume 373 00:17:21,420 --> 00:17:24,019 que es el tabulador estándar 374 00:17:24,019 --> 00:17:26,200 en el código fuente de cualquier lenguaje 375 00:17:26,200 --> 00:17:27,759 de programación prácticamente 376 00:17:27,759 --> 00:17:29,259 cuatro espacios, ¿vale? 377 00:17:29,619 --> 00:17:31,680 son tabuladores de cuatro espacios 378 00:17:31,680 --> 00:17:33,859 lo digo porque no vale que me tabuleis y esta línea 379 00:17:33,859 --> 00:17:35,779 aparezca aquí, queda muy feo 380 00:17:35,779 --> 00:17:37,299 tabuladores de cuatro espacios 381 00:17:37,299 --> 00:17:39,880 pero el entorno de desarrollo de Eclipse ya lo tiene 382 00:17:39,880 --> 00:17:41,599 configurado para que sean cuatro 383 00:17:41,599 --> 00:17:42,059 ¿vale? 384 00:17:43,920 --> 00:17:46,720 bueno, pues entonces 385 00:17:46,720 --> 00:17:48,880 ahora ya siguiendo esas reglas de estilo 386 00:17:48,880 --> 00:17:50,680 incluso comentando 387 00:17:50,680 --> 00:17:51,279 y todo 388 00:17:51,279 --> 00:17:57,589 pues ya hemos declarado nuestra primera variable 389 00:17:57,589 --> 00:17:58,710 vale 390 00:17:58,710 --> 00:18:01,509 este programa se ejecuta 391 00:18:02,170 --> 00:18:03,630 podemos ejecutarlo 392 00:18:03,630 --> 00:18:04,990 todavía no vamos a ejecutarlo 393 00:18:04,990 --> 00:18:06,549 porque no vamos a ver nada 394 00:18:06,549 --> 00:18:08,309 porque ¿qué es lo que va a hacer? 395 00:18:08,930 --> 00:18:11,609 pues ya sabemos lo que va a hacer, pero eso no lo vamos a ver nosotros 396 00:18:11,609 --> 00:18:13,809 cuando yo arranque 397 00:18:13,809 --> 00:18:15,210 y le diga a la máquina virtual 398 00:18:15,210 --> 00:18:17,410 que desde el Eclipse es muy fácil decírselo 399 00:18:17,410 --> 00:18:18,789 le diga a la máquina virtual 400 00:18:18,789 --> 00:18:20,529 ejecuta este programa que he hecho 401 00:18:20,529 --> 00:18:22,490 con su única línea 402 00:18:22,490 --> 00:18:25,029 porque el comentario es como si no existiera 403 00:18:25,029 --> 00:18:26,630 a la máquina virtual, ya sabéis 404 00:18:26,630 --> 00:18:29,029 pues ¿qué va a hacer la máquina virtual? 405 00:18:29,150 --> 00:18:30,569 venga, yo ejecuto, vale 406 00:18:30,569 --> 00:18:32,289 voy a ejecutar esta línea 407 00:18:32,289 --> 00:18:35,170 anda, es una declaración 408 00:18:35,170 --> 00:18:37,049 de variable, porque empieza 409 00:18:37,049 --> 00:18:38,990 con el nombre de un tipo de dato 410 00:18:38,990 --> 00:18:40,950 y continúa con un 411 00:18:40,950 --> 00:18:43,490 nombre de variable, es una declaración 412 00:18:43,490 --> 00:18:45,170 ¿qué es lo que hace la máquina 413 00:18:45,170 --> 00:18:47,450 virtual para ejecutar una declaración 414 00:18:47,450 --> 00:18:49,049 lo que hace es 415 00:18:49,049 --> 00:18:51,130 se va a la RAM 416 00:18:51,130 --> 00:18:53,390 y habilita la cajita 417 00:18:53,390 --> 00:18:55,390 para guardar 418 00:18:55,390 --> 00:18:55,950 ese dato 419 00:18:55,950 --> 00:18:59,069 esta cajita de cuánto 420 00:18:59,069 --> 00:19:00,869 voy a ver, vale 421 00:19:00,869 --> 00:19:02,650 pues te habilita una cajita 422 00:19:02,650 --> 00:19:04,809 de 4 bits 423 00:19:04,809 --> 00:19:07,190 o 32 bits, ya está 424 00:19:07,190 --> 00:19:08,950 y le asocia 425 00:19:08,950 --> 00:19:11,230 internamente, porque la máquina 426 00:19:11,230 --> 00:19:13,349 virtual pues lleva su, lógicamente 427 00:19:13,349 --> 00:19:15,349 su registro interno de todo lo que está haciendo 428 00:19:15,349 --> 00:19:16,430 para luego seguir operando 429 00:19:16,430 --> 00:19:19,170 le asocia internamente el nombre y altura 430 00:19:19,170 --> 00:19:21,329 y se acabó la ejecución 431 00:19:21,329 --> 00:19:21,930 de esta línea 432 00:19:21,930 --> 00:19:24,450 aparece la cajita en RAD 433 00:19:24,450 --> 00:19:27,210 tamaño correspondiente 434 00:19:27,210 --> 00:19:28,509 al tipo 435 00:19:28,509 --> 00:19:31,230 que hemos decidido 436 00:19:31,230 --> 00:19:33,230 y le asocia 437 00:19:33,230 --> 00:19:35,369 un nombrecito, por si luego hay que hacer algo con ella 438 00:19:35,369 --> 00:19:37,210 esta sentencia 439 00:19:37,210 --> 00:19:38,109 se ha terminado 440 00:19:38,109 --> 00:19:41,049 nos vamos a la siguiente 441 00:19:41,049 --> 00:19:43,289 hay siguiente 442 00:19:43,289 --> 00:19:44,509 Uy, no es siguiente 443 00:19:44,509 --> 00:19:47,190 Ya me acabo de encontrar la llave 444 00:19:47,190 --> 00:19:48,910 Que está mal puesta, por cierto 445 00:19:48,910 --> 00:19:50,170 No la he vuelto a tabular 446 00:19:50,170 --> 00:19:51,950 Vale 447 00:19:51,950 --> 00:19:54,029 Esta llave aquí 448 00:19:54,029 --> 00:19:55,450 Vale 449 00:19:55,450 --> 00:20:01,349 Ahora ya sí está tabulada 450 00:20:01,349 --> 00:20:03,130 Vale, siguiente sentencia 451 00:20:03,130 --> 00:20:05,089 Ya acabo de hacer 452 00:20:05,089 --> 00:20:07,410 Esta que decía 453 00:20:07,410 --> 00:20:09,569 Acabo de ejecutar esta 454 00:20:09,569 --> 00:20:10,930 Que es crear en RAM 455 00:20:10,930 --> 00:20:14,029 El espacio 456 00:20:14,029 --> 00:20:16,390 vale 457 00:20:16,390 --> 00:20:18,309 me voy a la siguiente 458 00:20:18,309 --> 00:20:19,910 yo máquina virtual 459 00:20:19,910 --> 00:20:22,250 no hay ninguna 460 00:20:22,250 --> 00:20:24,309 se acabó, ya tengo la llave 461 00:20:24,309 --> 00:20:25,369 de cierre de aquí 462 00:20:25,369 --> 00:20:28,210 y la llave de cierre de aquí 463 00:20:28,210 --> 00:20:30,809 significa programa terminado 464 00:20:30,809 --> 00:20:32,170 eso significa 465 00:20:32,170 --> 00:20:33,970 programa terminado, vale 466 00:20:33,970 --> 00:20:35,230 pues el programa terminó 467 00:20:35,230 --> 00:20:39,049 y que pasa cuando un programa termina 468 00:20:39,049 --> 00:20:41,410 el proceso automáticamente 469 00:20:41,410 --> 00:20:44,049 en memoria ya desaparece como si nunca hubiera existido 470 00:20:44,049 --> 00:20:45,210 y con él 471 00:20:45,210 --> 00:20:47,390 todo lo que hubiera en la RAM 472 00:20:47,390 --> 00:20:51,529 que ese programa había declarado 473 00:20:51,529 --> 00:20:52,369 20 variables 474 00:20:52,369 --> 00:20:55,250 pues se supone que ese programa ha operado con las variables 475 00:20:55,250 --> 00:20:57,990 cuando el programa ha terminado 476 00:20:57,990 --> 00:20:59,450 yo he llegado aquí a este final 477 00:20:59,450 --> 00:21:00,369 pum 478 00:21:00,369 --> 00:21:03,509 ese espacio en RAM 479 00:21:03,509 --> 00:21:05,069 con las variables desaparece 480 00:21:05,069 --> 00:21:07,230 ya está, se acabó, no está en ningún sitio 481 00:21:07,230 --> 00:21:09,750 entonces más vale que a lo largo del programa 482 00:21:09,750 --> 00:21:11,349 me las haya enseñado 483 00:21:11,349 --> 00:21:13,490 o algo porque ya está, han desaparecido 484 00:21:13,490 --> 00:21:15,230 luego 485 00:21:15,230 --> 00:21:17,670 si yo ejecuto este programa 486 00:21:17,670 --> 00:21:19,809 ahora mismo, pues ya está 487 00:21:19,809 --> 00:21:21,630 en un nanosegundo 488 00:21:21,630 --> 00:21:23,230 ya va a haber terminado 489 00:21:23,230 --> 00:21:25,269 y no vamos a ver nada, lógicamente 490 00:21:25,269 --> 00:21:27,630 ha declarado la variable y ese espacio tal cual 491 00:21:27,630 --> 00:21:29,869 se creó, ahí, ha desaparecido 492 00:21:29,869 --> 00:21:31,029 eso es lo que haría este programa 493 00:21:31,029 --> 00:21:32,210 ¿vale? 494 00:21:36,410 --> 00:21:37,170 bueno, pues 495 00:21:37,170 --> 00:21:39,190 para verlo un poco más, antes de seguir con los tipos 496 00:21:39,190 --> 00:21:39,710 de datos 497 00:21:39,710 --> 00:21:41,730 vamos a hacer 498 00:21:41,730 --> 00:21:45,670 la primera de las sentencias 499 00:21:45,670 --> 00:21:50,549 que ya sí que hacen algo, además de declarar una variable. 500 00:21:51,569 --> 00:21:55,910 Vamos a hacer una cosa que es, vamos a asignarle un valor a la variable. 501 00:21:56,890 --> 00:21:58,109 ¿Vale? Vamos a asignarle un valor. 502 00:21:59,450 --> 00:22:02,490 Mi máquina virtual ya ha creado el espacio. 503 00:22:03,369 --> 00:22:10,750 Ya está, lo ha creado. 504 00:22:11,730 --> 00:22:16,329 ¿Vale? Ese espacio se supone que es para introducir datos en él y operar con ellos. 505 00:22:16,329 --> 00:22:19,589 pues como introducimos datos 506 00:22:19,589 --> 00:22:21,569 desde nuestro código 507 00:22:21,569 --> 00:22:23,269 en una variable 508 00:22:23,269 --> 00:22:25,109 como le metemos datos 509 00:22:25,109 --> 00:22:27,210 pues mediante una cosa 510 00:22:27,210 --> 00:22:29,250 que se llama asignación 511 00:22:29,250 --> 00:22:29,890 de variable 512 00:22:29,890 --> 00:22:35,650 asignación 513 00:22:35,650 --> 00:22:38,210 de valor 514 00:22:38,210 --> 00:22:39,210 a una variable 515 00:22:39,210 --> 00:22:47,109 mediante la sentencia 516 00:22:47,109 --> 00:22:48,390 de asignación 517 00:22:48,390 --> 00:22:51,450 yo le doy ya un valor a una variable 518 00:22:51,450 --> 00:22:53,109 vale 519 00:22:53,109 --> 00:22:59,869 Bueno, pues vamos a incorporar una sentencia para asignar valor a una variable 520 00:22:59,869 --> 00:23:01,930 Y ya tendremos otra línea más de código 521 00:23:01,930 --> 00:23:06,650 Bueno, pues ¿cómo es la sentencia de asignación? 522 00:23:07,650 --> 00:23:09,529 Pues lo más sencillo del mundo 523 00:23:09,529 --> 00:23:12,289 Una vez que mi variable está declarada 524 00:23:12,289 --> 00:23:18,130 Que yo quiero hacer una asignación de un valor 525 00:23:18,130 --> 00:23:24,059 ¿Cómo lo hago? 526 00:23:24,819 --> 00:23:25,819 Pues tengo que poner 527 00:23:25,819 --> 00:23:28,339 el nombre de esa variable 528 00:23:28,339 --> 00:23:30,400 el nombre de esa variable 529 00:23:30,400 --> 00:23:32,759 a la que voy a asignar un valor 530 00:23:32,759 --> 00:23:34,200 seguido 531 00:23:34,200 --> 00:23:36,660 del operador 532 00:23:36,660 --> 00:23:37,240 igual 533 00:23:37,240 --> 00:23:40,059 y ahora ahí 534 00:23:40,059 --> 00:23:42,740 el valor que yo quiera asignar 535 00:23:42,740 --> 00:23:46,000 el valor que yo quiera asignar 536 00:23:46,000 --> 00:23:47,740 ahora cuando lo ponga 537 00:23:47,740 --> 00:23:52,269 y como la sentencia termina 538 00:23:52,269 --> 00:23:52,750 ahí 539 00:23:52,750 --> 00:23:54,849 cerraría con punto y coma 540 00:23:54,849 --> 00:23:57,250 ahora completamos aquí esas interrogaciones 541 00:23:57,250 --> 00:24:02,900 Luego, para asignar un valor concreto 542 00:24:02,900 --> 00:24:03,859 Ahora ya a una variable 543 00:24:03,859 --> 00:24:05,240 Porque para eso valen las variables 544 00:24:05,240 --> 00:24:06,160 Para meterle valores 545 00:24:06,160 --> 00:24:07,339 No valen para otra cosa 546 00:24:07,339 --> 00:24:09,180 Que no sea para meterle valores 547 00:24:09,180 --> 00:24:11,859 Pues para asignar un valor a una variable 548 00:24:11,859 --> 00:24:14,460 Es así exactamente 549 00:24:14,460 --> 00:24:15,240 Y ya está 550 00:24:15,240 --> 00:24:17,359 Nombre de la variable 551 00:24:17,359 --> 00:24:20,319 El nombre de la variable también se le llama 552 00:24:20,319 --> 00:24:21,099 Identificador 553 00:24:21,099 --> 00:24:24,200 Identificar es un término muy general 554 00:24:24,200 --> 00:24:26,720 Bueno, pues nombre de la variable 555 00:24:26,720 --> 00:24:28,619 Seguido de igual 556 00:24:28,619 --> 00:24:38,359 y aquí el valor que yo le quiera dar, ¿vale? 557 00:24:38,940 --> 00:24:48,950 Y ahora la pregunta es, ¿qué valor, qué tipo de valor le tengo que darle a esa variable? 558 00:24:50,450 --> 00:24:53,289 Decidme un valor que yo pudiera darle, uno cualquiera. 559 00:24:55,170 --> 00:24:55,750 ¿Cuál? 560 00:24:56,750 --> 00:24:59,329 Trece, trece precisamente, ¿vale? 561 00:24:59,789 --> 00:25:01,690 ¿Trece es un número entero? 562 00:25:01,690 --> 00:25:04,309 si, 13 lo puedo 563 00:25:04,309 --> 00:25:06,650 codificar en binario en 32 bits 564 00:25:06,650 --> 00:25:08,150 sin duda, porque 565 00:25:08,150 --> 00:25:10,390 32 bits me valen para codificar 566 00:25:10,390 --> 00:25:11,410 números muy grandotes 567 00:25:11,410 --> 00:25:14,109 pues va a ser que 13 es un valor válido 568 00:25:14,109 --> 00:25:16,349 pues venga, vamos a darle 13 569 00:25:16,349 --> 00:25:17,289 ya está 570 00:25:17,289 --> 00:25:21,539 ala, ya está 571 00:25:21,539 --> 00:25:28,140 mi variable altura 572 00:25:28,140 --> 00:25:30,619 ahora ya tiene aquí un valor 573 00:25:30,619 --> 00:25:35,539 que es el valor 13 574 00:25:35,539 --> 00:25:36,359 vale 575 00:25:36,359 --> 00:25:41,720 yo tengo ahí 576 00:25:41,720 --> 00:25:42,880 altura 577 00:25:42,880 --> 00:25:45,980 que hasta aquí estaba indefinido 578 00:25:45,980 --> 00:25:47,400 definido entre comillas 579 00:25:47,400 --> 00:25:50,000 porque los bits tienen que tener algo siempre 580 00:25:50,000 --> 00:25:50,940 no pueden 581 00:25:50,940 --> 00:25:52,980 o tienen ceros o tienen unos 582 00:25:52,980 --> 00:25:57,079 y ahora ya 583 00:25:57,079 --> 00:25:59,099 yo digo, venga, le voy a dar un valor 584 00:25:59,099 --> 00:26:01,279 pues nada, en esta cajita de 4 bits 585 00:26:01,279 --> 00:26:09,049 en esta cajita de 4 bits 586 00:26:09,049 --> 00:26:10,970 lo doy 587 00:26:10,970 --> 00:26:11,690 le eché 588 00:26:11,690 --> 00:26:14,250 está morado y no lo veo 589 00:26:14,250 --> 00:26:15,849 vale 590 00:26:15,849 --> 00:26:21,690 en esta cajita de 4 bits 591 00:26:21,690 --> 00:26:24,069 ya está ahí el 13 guardado 592 00:26:24,069 --> 00:26:25,309 ¿vale? ya está 593 00:26:25,309 --> 00:26:26,549 el 13, vale 594 00:26:26,549 --> 00:26:29,509 bueno, pues ya mi programación iría más 595 00:26:29,509 --> 00:26:31,630 bueno, entonces 596 00:26:31,630 --> 00:26:33,690 sentencia de asignación, ya no se le olvida 597 00:26:33,690 --> 00:26:34,089 a nadie 598 00:26:34,089 --> 00:26:36,589 siempre tiene 599 00:26:36,589 --> 00:26:39,589 a la izquierda el nombre 600 00:26:39,589 --> 00:26:40,309 de la variable 601 00:26:40,309 --> 00:26:46,529 y a la derecha 602 00:26:46,529 --> 00:26:48,970 el valor que le doy 603 00:26:48,970 --> 00:26:51,410 parece evidente, pero hay veces 604 00:26:51,410 --> 00:26:53,049 lo ponéis al revés 605 00:26:53,049 --> 00:26:56,210 a la izquierda siempre el nombre 606 00:26:56,210 --> 00:26:58,289 de la variable que recibe el valor 607 00:26:58,289 --> 00:27:00,509 y a la derecha 608 00:27:00,509 --> 00:27:01,609 del operador igual 609 00:27:01,609 --> 00:27:04,490 que se le llama operador de asignación 610 00:27:04,490 --> 00:27:06,230 por razones obvias porque sirve para 611 00:27:06,230 --> 00:27:08,170 asignar, a la derecha 612 00:27:08,170 --> 00:27:09,690 el valor que yo le doy 613 00:27:09,690 --> 00:27:11,710 valor 614 00:27:11,710 --> 00:27:12,690 compatible 615 00:27:12,690 --> 00:27:16,250 con el tipo definido 616 00:27:16,250 --> 00:27:18,250 el 13 es un 617 00:27:18,250 --> 00:27:20,309 número entero que cabe en 32 bits 618 00:27:20,309 --> 00:27:22,950 magnífico, valor perfectamente 619 00:27:22,950 --> 00:27:23,470 compatible 620 00:27:23,470 --> 00:27:25,250 ¿vale? 621 00:27:26,930 --> 00:27:29,109 y esto ya sí que es regla de estilo 622 00:27:29,109 --> 00:27:30,789 antes y después 623 00:27:30,789 --> 00:27:31,430 del igual 624 00:27:31,430 --> 00:27:33,769 se pone un espacio 625 00:27:33,769 --> 00:27:36,369 que no esté ahí todo apiñado 626 00:27:36,369 --> 00:27:38,589 ¿vale? luego la regla de estilo 627 00:27:38,589 --> 00:27:39,869 de tabular 628 00:27:39,869 --> 00:27:42,269 en cuanto yo abro un bloque 629 00:27:42,269 --> 00:27:43,509 todo ahí tabulado 630 00:27:43,509 --> 00:27:46,269 esa, desde ya 631 00:27:46,269 --> 00:27:48,250 sin olvidar 632 00:27:48,250 --> 00:27:49,410 en un solo momento 633 00:27:49,410 --> 00:27:51,309 y la regla de estilo 634 00:27:51,309 --> 00:27:53,190 de espacio antes y después del igual 635 00:27:53,190 --> 00:27:54,910 también, desde ya, ¿vale? 636 00:27:55,390 --> 00:27:57,390 no empecéis a hacer códigos 637 00:27:57,390 --> 00:27:59,869 apiñaos 638 00:27:59,869 --> 00:28:01,390 ¿por qué no? 639 00:28:03,109 --> 00:28:04,849 bueno, pues ya tenemos aquí 640 00:28:04,849 --> 00:28:06,650 dos sentencias de código 641 00:28:06,650 --> 00:28:07,910 ¿vale? 642 00:28:10,740 --> 00:28:11,339 ¿perdón? 643 00:28:15,279 --> 00:28:15,880 entonces 644 00:28:15,880 --> 00:28:20,099 si ejecutamos esto, seguiremos sin ver nada 645 00:28:20,099 --> 00:28:22,200 todo esto habrá pasado, no me lo he imaginado 646 00:28:22,200 --> 00:28:23,599 todo esto habrá pasado 647 00:28:23,599 --> 00:28:27,740 Se habrá creado la variable y se le habrá metido un 13. 648 00:28:28,980 --> 00:28:35,380 Llegamos aquí, el programa se ha acabado, esa variable con su 13 ha desaparecido. 649 00:28:37,559 --> 00:28:40,700 Vale, ¿para qué le doy yo valores a variables? 650 00:28:40,819 --> 00:28:42,079 Hombre, para hacer cosas con ellas. 651 00:28:42,859 --> 00:28:47,039 Por ahora, al menos, para poder hacer comprobaciones de que las cosas funcionan, 652 00:28:47,740 --> 00:28:51,180 vamos a incorporar la sentencia de mostrar por pantalla. 653 00:28:51,180 --> 00:28:53,640 para que al menos desde ya 654 00:28:53,640 --> 00:28:55,799 podamos ver nosotros 655 00:28:55,799 --> 00:28:57,660 por pantalla los resultados 656 00:28:57,660 --> 00:28:59,220 de las cosas que estamos haciendo 657 00:28:59,220 --> 00:29:01,880 entonces 658 00:29:01,880 --> 00:29:04,200 la sentencia de mostrar por pantalla 659 00:29:04,200 --> 00:29:05,180 es muy sencilla 660 00:29:05,180 --> 00:29:14,539 y es simplemente esto 661 00:29:14,539 --> 00:29:16,759 system con la primera S 662 00:29:16,759 --> 00:29:18,279 mayúscula 663 00:29:18,279 --> 00:29:20,839 print o println 664 00:29:20,839 --> 00:29:21,380 da igual 665 00:29:21,380 --> 00:29:23,900 vale, vamos a 666 00:29:23,900 --> 00:29:27,079 y aquí, y esto terminado en punto y coma 667 00:29:27,079 --> 00:29:27,799 vale 668 00:29:27,799 --> 00:29:30,519 ahora completo las interrogaciones 669 00:29:30,519 --> 00:29:32,960 esta es la sentencia básica 670 00:29:32,960 --> 00:29:35,220 para que 671 00:29:35,220 --> 00:29:37,079 la máquina virtual cuando llegue a ella 672 00:29:37,079 --> 00:29:39,000 muestre algo por pantalla 673 00:29:39,000 --> 00:29:40,319 para que lo veamos 674 00:29:40,319 --> 00:29:41,519 ¿vale? 675 00:29:42,619 --> 00:29:44,319 ¿y qué es lo que va a mostrar? 676 00:29:44,619 --> 00:29:46,460 lo que le metamos aquí dentro 677 00:29:46,460 --> 00:29:48,880 lo que le metamos aquí dentro 678 00:29:48,880 --> 00:29:50,579 ¿vale? 679 00:29:51,759 --> 00:29:52,440 entonces 680 00:29:52,440 --> 00:29:54,119 ¿yo qué quiero ver ahora? 681 00:29:54,880 --> 00:29:55,680 quiero ver 682 00:29:55,680 --> 00:29:57,940 lo que tiene mi variable altura 683 00:29:57,940 --> 00:29:59,299 eso es lo que quiero ver 684 00:29:59,299 --> 00:30:02,019 pues entonces, ¿qué escribo aquí? 685 00:30:02,980 --> 00:30:04,259 ¿qué escribiría ahí? 686 00:30:04,819 --> 00:30:05,940 si lo que quiero ver es 687 00:30:05,940 --> 00:30:08,960 el contenido de mi variable altura 688 00:30:08,960 --> 00:30:11,440 altura, el nombre de la variable 689 00:30:11,440 --> 00:30:12,500 para eso sirve el nombre 690 00:30:12,500 --> 00:30:17,440 ¿vale? 691 00:30:17,940 --> 00:30:19,059 para eso sirve el nombre 692 00:30:19,059 --> 00:30:21,460 para hacer referencia al espacio 693 00:30:21,460 --> 00:30:23,240 entonces, si yo pongo aquí 694 00:30:23,240 --> 00:30:24,240 system.out.print 695 00:30:24,240 --> 00:30:27,400 entonces dice, ah, un nombrecito 696 00:30:27,400 --> 00:30:41,940 Pues la máquina virtual dice, este nombrecito será de una variable, lógicamente, voy yo a buscar ese nombrecito en mi RAM y voy a mostrar lo que hay dentro, ¿vale? 697 00:30:42,839 --> 00:30:46,880 Esta es la secuencia que seguirá mi máquina virtual ejecutando estas tres cosas. 698 00:30:47,700 --> 00:30:59,529 Primera sentencia, crea la variable altura en la memoria RAM, primera sentencia. 699 00:30:59,529 --> 00:31:06,009 Segunda, asigna el número 13 a esta variable 700 00:31:06,009 --> 00:31:07,329 Muy bien 701 00:31:07,329 --> 00:31:11,049 Tercera sentencia, muéstrame algo por pantalla 702 00:31:11,049 --> 00:31:11,930 ¿El qué? 703 00:31:12,849 --> 00:31:15,109 Uy, una cosa que se llama altura 704 00:31:15,109 --> 00:31:18,490 Debe ser que tengo yo algo que se llama altura aquí 705 00:31:18,490 --> 00:31:22,269 Se va a su RAM y dice, ah, sí, sí, sí, sí 706 00:31:22,269 --> 00:31:24,029 Tengo una cosa que se llama altura 707 00:31:24,029 --> 00:31:25,930 Pues venga, lo muestro 708 00:31:25,930 --> 00:31:29,130 Con lo cual me mostrará 13 por consola 709 00:31:29,130 --> 00:31:40,759 la secuencia de lo que está haciendo la máquina virtual 710 00:31:40,759 --> 00:31:42,140 cuando se ejecute está clara 711 00:31:42,140 --> 00:31:52,519 ¿cómo ejecutamos esto desde Eclipse? 712 00:31:52,680 --> 00:31:53,460 ¿qué es lo más fácil? 713 00:31:53,839 --> 00:31:56,480 desde consola, ahora mismo para no liarnos mucho a la consola 714 00:31:56,480 --> 00:31:59,859 llamaríamos a la máquina virtual, le pasaríamos el compilado, etc. 715 00:32:00,680 --> 00:32:04,039 pero el Eclipse ya te lo pre-compila directamente 716 00:32:04,039 --> 00:32:08,519 no tenemos nosotros que hacer ese código intermedio by code 717 00:32:08,519 --> 00:32:20,279 Recordad que decíamos que en Java, al ser un lenguaje mixto, primero el código este de aquí, que es el código fuente, se compila a un intermedio que se llama bytecode 718 00:32:20,279 --> 00:32:24,000 y ahora ya la máquina virtual coge ese intermedio y lo va ejecutando. 719 00:32:24,900 --> 00:32:27,319 Perdonad, creía que lo había... 720 00:32:27,319 --> 00:32:31,500 Disculpad, a ver si va a ser... 721 00:32:31,500 --> 00:32:33,400 ¿Sí? 722 00:33:07,359 --> 00:33:07,839 Perdón. 723 00:33:07,839 --> 00:33:10,039 vale, pues entonces 724 00:33:10,039 --> 00:33:12,420 el Eclipse ya nos hace 725 00:33:12,420 --> 00:33:14,859 automáticamente, según vamos escribiendo 726 00:33:14,859 --> 00:33:16,720 nos hace automáticamente 727 00:33:16,720 --> 00:33:18,940 esa compilación al código intermedio 728 00:33:18,940 --> 00:33:20,660 entonces nosotros ya 729 00:33:20,660 --> 00:33:22,319 si trabajamos con el Eclipse nos olvidamos 730 00:33:22,319 --> 00:33:25,059 ya directamente llamamos a la máquina virtual 731 00:33:25,059 --> 00:33:26,859 para que lo ejecute, ya está 732 00:33:26,859 --> 00:33:29,460 entonces, llamar a la máquina virtual 733 00:33:29,460 --> 00:33:31,160 desde el Eclipse para que lo ejecute 734 00:33:31,160 --> 00:33:33,119 es muy sencillo 735 00:33:33,119 --> 00:33:33,400 ¿vale? 736 00:33:35,259 --> 00:33:36,380 simplemente, por ejemplo 737 00:33:36,380 --> 00:33:38,759 el código que queréis ejecutar 738 00:33:38,759 --> 00:33:39,920 este de aquí 739 00:33:39,920 --> 00:33:42,019 pues le dais al botón derecho 740 00:33:42,019 --> 00:33:44,299 oye ejecútame runas, ejecútame 741 00:33:44,299 --> 00:33:46,079 y aquí 742 00:33:46,079 --> 00:33:48,420 ¿vale? ejecútamelo 743 00:33:48,420 --> 00:33:49,339 ¿vale? 744 00:33:50,000 --> 00:33:52,440 y se abre una consola donde te muestra 745 00:33:52,440 --> 00:33:52,960 el resultado 746 00:33:52,960 --> 00:33:56,400 y ha hecho 747 00:33:56,400 --> 00:33:57,740 lo que esperábamos que hiciera 748 00:33:57,740 --> 00:34:00,619 ha hecho lo que esperábamos 749 00:34:00,619 --> 00:34:02,539 que hiciera, que es mostrarme 750 00:34:02,539 --> 00:34:03,779 por consola el 13 751 00:34:03,779 --> 00:34:04,519 dime 752 00:34:04,519 --> 00:34:07,140 si, entonces 753 00:34:07,140 --> 00:34:09,480 tú vas a ejecutar un programa por primera vez 754 00:34:09,480 --> 00:34:10,980 pues pinchas aquí 755 00:34:10,980 --> 00:34:13,460 en el código que tienes escrito, botón derecho 756 00:34:13,460 --> 00:34:15,400 en el desplegable te sale 757 00:34:15,400 --> 00:34:16,159 un runas 758 00:34:16,159 --> 00:34:19,019 y la primera opción que te sale, que es java 759 00:34:19,019 --> 00:34:20,039 application, vale 760 00:34:20,039 --> 00:34:23,579 una vez que ya has ejecutado programas 761 00:34:23,579 --> 00:34:25,519 en el historial este del botón verde 762 00:34:25,519 --> 00:34:27,500 este que es el botón verde 763 00:34:27,500 --> 00:34:29,719 de ejecutar, tiene aquí un historial 764 00:34:29,719 --> 00:34:30,820 vale 765 00:34:30,820 --> 00:34:32,719 en el runas 766 00:34:32,719 --> 00:34:35,119 de los últimos programas 767 00:34:35,119 --> 00:34:36,000 que has ejecutado 768 00:34:36,000 --> 00:34:37,219 vale 769 00:34:37,219 --> 00:34:38,460 entonces 770 00:34:38,460 --> 00:34:47,460 aquí perdón 771 00:34:47,460 --> 00:34:48,739 entonces 772 00:34:48,739 --> 00:34:49,500 en mi historial 773 00:34:49,500 --> 00:34:49,980 ahora mismo 774 00:34:49,980 --> 00:34:50,880 solo tiene uno 775 00:34:50,880 --> 00:34:51,519 que es el que acabo 776 00:34:51,519 --> 00:34:52,099 de ejecutar 777 00:34:52,099 --> 00:34:53,440 podría tener muchos 778 00:34:53,440 --> 00:34:54,940 y si le dais 779 00:34:54,940 --> 00:34:55,679 al botón verde 780 00:34:55,679 --> 00:34:56,840 este directamente 781 00:34:56,840 --> 00:34:58,739 el te ejecuta 782 00:34:58,739 --> 00:34:59,440 el primero 783 00:34:59,440 --> 00:35:00,480 que esté en el historial 784 00:35:00,480 --> 00:35:01,239 vale 785 00:35:01,239 --> 00:35:01,699 el primero que esté 786 00:35:01,699 --> 00:35:02,179 en el historial 787 00:35:02,179 --> 00:35:03,460 cuidado porque 788 00:35:03,460 --> 00:35:04,400 vosotros sois de los que 789 00:35:04,400 --> 00:35:05,380 dais a los botones 790 00:35:05,380 --> 00:35:05,739 a veces 791 00:35:05,739 --> 00:35:06,900 entonces veis un botón 792 00:35:06,900 --> 00:35:07,059 verde 793 00:35:07,059 --> 00:35:07,619 uy ejecuta 794 00:35:07,619 --> 00:35:09,619 pero eso no significa que esté ejecutando 795 00:35:09,619 --> 00:35:11,800 el que esté abierto, está ejecutando 796 00:35:11,800 --> 00:35:13,440 el primero del historial que hay arriba 797 00:35:13,440 --> 00:35:15,260 ¿y qué historial hay arriba? 798 00:35:15,340 --> 00:35:17,480 las últimas ejecuciones, o sea ejecuta 799 00:35:17,480 --> 00:35:19,440 el último ejecutado, el que está abierto 800 00:35:19,440 --> 00:35:20,400 ¿vale? 801 00:35:21,099 --> 00:35:22,860 entonces no deis al botón verde así a la 802 00:35:22,860 --> 00:35:24,139 ¿vale? 803 00:35:26,019 --> 00:35:27,159 bueno pues entonces 804 00:35:27,159 --> 00:35:29,800 se abre la consolita, esta de aquí 805 00:35:29,800 --> 00:35:31,199 que se me ha abierto ahí 806 00:35:31,199 --> 00:35:33,219 y sale el resultado que era 807 00:35:33,219 --> 00:35:34,880 lo que podíamos esperar 808 00:35:34,880 --> 00:35:37,059 ¿vale? a lo que podíamos esperar 809 00:35:37,059 --> 00:35:43,320 Aquí, antes de seguir con tipos de variables 810 00:35:43,320 --> 00:35:45,460 Cuestiones varias 811 00:35:45,460 --> 00:35:48,780 Para que nos vayamos familiarizando 812 00:35:48,780 --> 00:35:53,880 Este programa sintácticamente ha estado perfecto 813 00:35:53,880 --> 00:35:56,300 ¿Por qué cosas podría habernos fallado? 814 00:35:57,199 --> 00:35:59,539 Por ejemplo, porque yo aquí me he equivocado 815 00:35:59,539 --> 00:36:01,960 Imaginaos que me he equivocado y he puesto dos As 816 00:36:01,960 --> 00:36:04,940 O he empezado con mayúscula, por lo que fuera 817 00:36:04,940 --> 00:36:07,929 ¿Veis? 818 00:36:07,929 --> 00:36:10,150 automáticamente 819 00:36:10,150 --> 00:36:12,110 el eclipse cuando trata de hacer 820 00:36:12,110 --> 00:36:14,030 esa compilación que hace él para ver si 821 00:36:14,030 --> 00:36:15,989 sintácticamente es correcto e ir al código 822 00:36:15,989 --> 00:36:17,630 intermedio, me dice 823 00:36:17,630 --> 00:36:19,750 ¡uh! aquí tienes un error 824 00:36:19,750 --> 00:36:22,230 claro, porque la máquina 825 00:36:22,230 --> 00:36:24,269 virtual dice, uy me estás dando un nombre de algo 826 00:36:24,269 --> 00:36:26,550 voy a buscarlo en mi lista de variables 827 00:36:26,550 --> 00:36:28,150 dice, yo no tengo ninguna variable 828 00:36:28,150 --> 00:36:28,769 que se llame así 829 00:36:28,769 --> 00:36:32,369 claro, porque distingue las mayúsculas 830 00:36:32,369 --> 00:36:34,349 y las minúsculas, distingue 831 00:36:34,349 --> 00:36:36,190 entonces, lo siento, yo no tengo ninguna 832 00:36:36,190 --> 00:36:37,909 variable que se llame altura 833 00:36:37,909 --> 00:36:39,909 con mayúscula. No puedo 834 00:36:39,909 --> 00:36:41,869 hacer este programa, no puedo compilarlo 835 00:36:41,869 --> 00:36:43,210 porque es incorrecto. 836 00:36:43,869 --> 00:36:46,130 Aquí también, en este caso, la ayudita 837 00:36:46,130 --> 00:36:47,969 esta roja que saca 838 00:36:47,969 --> 00:36:50,170 nos es útil porque nos dice 839 00:36:50,170 --> 00:36:52,150 altura no es una variable. 840 00:36:53,309 --> 00:36:54,010 En este caso 841 00:36:54,010 --> 00:36:55,150 ese mensajito nos 842 00:36:55,150 --> 00:36:58,010 informa del verdadero problema. 843 00:36:58,849 --> 00:36:59,909 En muchos otros casos no. 844 00:37:00,070 --> 00:37:01,550 Nos diría cosas random muy raras. 845 00:37:02,489 --> 00:37:02,590 ¿Vale? 846 00:37:04,170 --> 00:37:05,969 Bueno, pues error típico de compilación. 847 00:37:05,969 --> 00:37:08,469 de compilación, que uno escriba un nombre de variable 848 00:37:08,469 --> 00:37:09,349 que no existe 849 00:37:09,349 --> 00:37:11,469 porque se ha equivocado escribiéndolo 850 00:37:11,469 --> 00:37:13,730 o porque se ha olvidado de declararla 851 00:37:13,730 --> 00:37:15,309 que puede ocurrir, vale 852 00:37:15,309 --> 00:37:18,030 bueno, vamos a parar aquí un segundín 853 00:37:18,030 --> 00:37:18,849 antes de seguir, vale