1 00:00:00,000 --> 00:00:06,780 Pues vamos a empezar lo que sería el tema 1, lo más básico de cualquier lenguaje de programación, 2 00:00:07,099 --> 00:00:28,269 que son los tipos de datos, las variables y las expresiones. 3 00:00:34,140 --> 00:00:39,179 Vale, imprescindible que arranquemos con esto para poder hacer cualquier cosa. 4 00:00:39,179 --> 00:00:50,880 Vale, aquí está la palabra más importante de la programación junto con la palabra algoritmo. 5 00:00:51,759 --> 00:01:02,140 De hecho, el primer libro de programación que fue la base de todo el desarrollo de la programación estructurada se llamaba Algoritmos más datos igual a programas. 6 00:01:03,039 --> 00:01:03,700 Así se llamaba. 7 00:01:03,700 --> 00:01:06,959 y efectivamente 8 00:01:06,959 --> 00:01:09,299 un programa es natural 9 00:01:09,299 --> 00:01:11,480 para nosotros, ya lo sabemos 10 00:01:11,480 --> 00:01:13,280 entender 11 00:01:13,280 --> 00:01:15,340 que es una secuencia de pasos, es un algoritmo 12 00:01:15,340 --> 00:01:17,400 eso ya lo sabemos, un programa es una secuencia de pasos 13 00:01:17,400 --> 00:01:19,400 es un algoritmo, pero es que hay otro elemento 14 00:01:19,400 --> 00:01:21,420 importantísimo, que no tenemos que perder 15 00:01:21,420 --> 00:01:22,739 de vista, y es que 16 00:01:22,739 --> 00:01:25,000 un programa no vale para nada 17 00:01:25,000 --> 00:01:27,480 si no tiene datos con los 18 00:01:27,480 --> 00:01:29,680 que trabajar y no tiene 19 00:01:29,680 --> 00:01:31,739 respuestas que darme 20 00:01:31,739 --> 00:01:33,599 que a su vez irán 21 00:01:33,599 --> 00:01:35,459 en datos, entonces los datos 22 00:01:35,459 --> 00:01:37,480 es el concepto básico de la programación 23 00:01:37,480 --> 00:01:39,000 porque los datos es 24 00:01:39,000 --> 00:01:41,060 esa estructura 25 00:01:41,060 --> 00:01:43,739 en la cual están todos los elementos 26 00:01:43,739 --> 00:01:45,040 con los que mi programa va a trabajar 27 00:01:45,040 --> 00:01:46,799 ¿vale? 28 00:01:47,459 --> 00:01:49,980 entonces, si yo quiero hacer un programa 29 00:01:49,980 --> 00:01:50,760 que 30 00:01:50,760 --> 00:01:53,859 calcule el IVA 31 00:01:53,859 --> 00:01:54,780 de mis facturas 32 00:01:54,780 --> 00:01:56,840 pues tendrá 33 00:01:56,840 --> 00:01:58,680 dato de entrada, que es 34 00:01:58,680 --> 00:02:00,719 el total de la factura 35 00:02:00,719 --> 00:02:02,819 ese es un dato de entrada 36 00:02:02,819 --> 00:02:05,359 el IVA que voy a aplicar 37 00:02:05,359 --> 00:02:06,799 ese es un dato de entrada 38 00:02:06,799 --> 00:02:08,520 tendrá un dato de salida 39 00:02:08,520 --> 00:02:11,560 que es el resultado con IVA 40 00:02:11,560 --> 00:02:11,840 ¿vale? 41 00:02:12,400 --> 00:02:14,460 entonces un programa no es nada 42 00:02:14,460 --> 00:02:17,539 si no tiene sus datos con los que trabajan 43 00:02:17,539 --> 00:02:18,240 ¿vale? 44 00:02:18,740 --> 00:02:19,960 datos con los que opera 45 00:02:19,960 --> 00:02:22,659 hace todas esas sentencias que hemos dicho 46 00:02:22,659 --> 00:02:25,139 y datos que normalmente me devuelve 47 00:02:25,139 --> 00:02:25,900 como resultado 48 00:02:25,900 --> 00:02:27,460 luego los datos 49 00:02:27,460 --> 00:02:30,360 son el concepto básico de la programación 50 00:02:30,360 --> 00:02:31,960 no me sirve de nada un programa 51 00:02:31,960 --> 00:02:34,099 que no me hace cosas, que no me entrega 52 00:02:34,099 --> 00:02:34,500 cosas 53 00:02:34,500 --> 00:02:36,539 bueno pues 54 00:02:36,539 --> 00:02:40,219 los datos tengo que guardarlos 55 00:02:40,219 --> 00:02:42,000 en algún sitio para que mi programa 56 00:02:42,000 --> 00:02:44,080 pueda trabajar con ellos, los tengo que guardar 57 00:02:44,080 --> 00:02:44,659 en algún lado 58 00:02:44,659 --> 00:02:48,060 ya sabemos 59 00:02:48,060 --> 00:02:49,120 que 60 00:02:49,120 --> 00:02:51,919 quien ejecuta los programas 61 00:02:51,919 --> 00:02:53,560 es la CPU 62 00:02:53,560 --> 00:02:54,580 eso ya lo sabemos 63 00:02:54,580 --> 00:02:58,400 bien porque el intérprete se los ha traducido 64 00:02:58,400 --> 00:02:59,960 ya línea por línea o bien porque 65 00:02:59,960 --> 00:03:01,800 y el código máquina y ya sabemos que la CPU 66 00:03:01,800 --> 00:03:03,360 es la que los ejecuta, vale 67 00:03:03,360 --> 00:03:05,580 bueno, pues la CPU 68 00:03:05,580 --> 00:03:07,979 ¿dónde encuentra esos datos? ¿dónde están 69 00:03:07,979 --> 00:03:09,099 esos datos para trabajar? 70 00:03:10,259 --> 00:03:12,319 pues esos datos para trabajar 71 00:03:12,319 --> 00:03:16,039 la CPU los saca de la 72 00:03:16,039 --> 00:03:17,979 memoria RAM, vale, ahí los tiene 73 00:03:17,979 --> 00:03:21,360 pero claro, yo en mi programa 74 00:03:21,360 --> 00:03:23,939 tengo que especificar varias 75 00:03:23,939 --> 00:03:26,340 cosas, que es, esos datos 76 00:03:26,340 --> 00:03:28,099 ¿qué tipo de 77 00:03:28,099 --> 00:03:28,740 datos son? 78 00:03:29,960 --> 00:03:35,460 ¿Qué nombre les voy a dar para que la CPU sepa distinguir unos de otros? 79 00:03:36,560 --> 00:03:40,120 Bueno, pues ese es el concepto de variable, ¿vale? 80 00:03:41,199 --> 00:03:42,860 Entonces, ¿qué es una variable? 81 00:03:44,580 --> 00:04:03,319 La variable es un espacio en memoria RAM que sirve para alojar un dato. 82 00:04:12,189 --> 00:04:17,129 Eso es una variable, un espacio en memoria RAM que sirve para alojar un dato. 83 00:04:17,529 --> 00:04:24,810 Un programa puede trabajar con una variable con 1.000 o con 2.000 millones de billones, con las que necesite. 84 00:04:26,009 --> 00:04:29,610 Cada variable es un espacio en la memoria RAM. 85 00:04:30,829 --> 00:04:34,490 Ahí acabo de dibujar tres variables. 86 00:04:36,389 --> 00:04:39,810 Acabo de dibujar tres variables, tres espacios en memoria RAM. 87 00:04:39,810 --> 00:04:53,000 Entonces, la CPU puede recoger el valor de la variable para operar con él, hacer sus sumas, sus restas, eso es lo que se llama leer la variable 88 00:04:53,000 --> 00:04:58,379 O puede mandarle un valor para escribir en ella, eso es lo que se llama escribir la variable 89 00:04:58,379 --> 00:05:05,220 Entonces, la variable, su propio nombre lo indica, variable, lo que contiene puede ir variando 90 00:05:05,220 --> 00:05:12,060 Lo que contiene puede ir variando porque la CPU puede ir mandándole cosas para que su valor cambie 91 00:05:12,060 --> 00:05:14,319 por eso se llama variable 92 00:05:14,319 --> 00:05:18,810 entonces 93 00:05:18,810 --> 00:05:20,250 su contenido 94 00:05:20,250 --> 00:05:21,250 lógicamente 95 00:05:21,250 --> 00:05:23,670 puede variar 96 00:05:23,670 --> 00:05:26,470 a lo largo de la ejecución del programa 97 00:05:26,470 --> 00:05:48,500 ¿vale? 98 00:05:50,120 --> 00:05:51,579 bueno pues tenemos clarísimo 99 00:05:51,579 --> 00:05:52,660 lo que es una variable ¿no? 100 00:05:53,139 --> 00:05:55,339 un espacio en memoria RAM 101 00:05:55,339 --> 00:05:57,060 que contiene un dato 102 00:05:57,060 --> 00:05:59,839 y ese dato lo utiliza la CPU 103 00:05:59,839 --> 00:06:01,939 pues para hacer sus operaciones 104 00:06:01,939 --> 00:06:03,500 puede sobre escribirlo 105 00:06:03,500 --> 00:06:03,920 etc. 106 00:06:04,839 --> 00:06:05,319 ¿Vale? 107 00:06:07,199 --> 00:06:14,800 Pero claro, yo estoy hablando ahora del módulo de programación que es escribir programas en un lenguaje de alto nivel, en particular Java. 108 00:06:15,819 --> 00:06:28,079 Entonces, hombre, esto de aquí, de dibujar una CPU con una RAM con cuadraditos, pues se me queda ahora mismo un poco por debajo de lo que nosotros vamos a hacer, 109 00:06:28,079 --> 00:06:31,879 que es generar un lenguaje de programación en alto nivel. 110 00:06:31,879 --> 00:06:33,800 entonces 111 00:06:33,800 --> 00:06:36,199 como lo que yo voy a hacer va a ser 112 00:06:36,199 --> 00:06:38,540 escribir en mi lenguaje de programación 113 00:06:38,540 --> 00:06:41,160 en mi lenguaje de programación 114 00:06:41,160 --> 00:06:42,259 tengo yo que tener 115 00:06:42,259 --> 00:06:43,339 una manera 116 00:06:43,339 --> 00:06:47,160 de crear estos espacios 117 00:06:47,160 --> 00:06:48,620 ¿vale? 118 00:06:49,180 --> 00:06:51,100 porque todo lo que voy a hacer yo como programador 119 00:06:51,100 --> 00:06:51,560 todo 120 00:06:51,560 --> 00:06:53,600 es escribir el código 121 00:06:53,600 --> 00:06:54,620 después de haberlo pensado 122 00:06:54,620 --> 00:06:56,459 escribir el código 123 00:06:56,459 --> 00:06:59,899 entonces esto primero que estoy diciendo que es tan importante 124 00:06:59,899 --> 00:07:00,540 que es 125 00:07:00,540 --> 00:07:02,920 crear estos espacios 126 00:07:02,920 --> 00:07:05,279 para que la CPU pueda trabajar 127 00:07:05,279 --> 00:07:07,680 esto que es tan importante, crear estas variables 128 00:07:07,680 --> 00:07:09,379 también lo tengo que hacer desde código 129 00:07:09,379 --> 00:07:11,319 todo lo tengo que hacer desde código 130 00:07:11,319 --> 00:07:13,060 es lo que hacemos nosotros como programadores 131 00:07:13,060 --> 00:07:15,459 escribir líneas de código 132 00:07:15,459 --> 00:07:16,660 líneas de código 133 00:07:16,660 --> 00:07:18,740 pues tengo que tener 134 00:07:18,740 --> 00:07:20,839 una manera de 135 00:07:20,839 --> 00:07:22,839 mediante código 136 00:07:22,839 --> 00:07:24,459 crear estos espacios 137 00:07:24,459 --> 00:07:26,339 vale 138 00:07:26,339 --> 00:07:28,439 ¿cómo se crean estos espacios? 139 00:07:28,660 --> 00:07:30,240 pues se crean mediante lo que se llama 140 00:07:30,240 --> 00:07:32,660 declaración de variables 141 00:07:32,660 --> 00:07:42,259 vale, ahora que ya sabemos 142 00:07:42,259 --> 00:07:44,779 que la variable es ese espacio 143 00:07:44,779 --> 00:07:45,740 esa cajita en RAM 144 00:07:45,740 --> 00:07:46,480 esa cajita 145 00:07:46,480 --> 00:07:48,120 ya borro eso 146 00:07:48,120 --> 00:07:57,019 bueno, pues ¿cómo se crean? 147 00:07:57,399 --> 00:07:58,540 ¿cómo puedo yo crearlos 148 00:07:58,540 --> 00:08:00,259 desde mi código fuente 149 00:08:00,259 --> 00:08:01,600 para que luego 150 00:08:01,600 --> 00:08:03,800 las instrucciones puedan usarlos? 151 00:08:04,639 --> 00:08:05,459 pues como he dicho 152 00:08:05,459 --> 00:08:06,899 se crean 153 00:08:06,899 --> 00:08:10,360 se hacen aparecer en la RAM 154 00:08:10,360 --> 00:08:10,879 así pum 155 00:08:10,879 --> 00:08:12,439 se hacen aparecer 156 00:08:12,439 --> 00:08:15,860 mediante una cosa que se llama 157 00:08:15,860 --> 00:08:20,699 declaración de variable. 158 00:08:40,230 --> 00:08:42,970 Vale, una declaración de variable 159 00:08:42,970 --> 00:08:45,049 hace aparecer una variable. 160 00:08:46,730 --> 00:08:48,750 ¿Hago yo después otra declaración de variable? 161 00:08:48,909 --> 00:08:50,029 Pues hago aparecer otra. 162 00:08:50,950 --> 00:08:52,450 Y así todas las que necesite. 163 00:08:53,129 --> 00:08:55,289 Y luego ya haré mis sentencias de código 164 00:08:55,289 --> 00:08:56,769 para trabajar con esas variables. 165 00:08:56,769 --> 00:08:58,549 Lo que sea que tenga yo que hacer. 166 00:08:59,070 --> 00:09:00,690 Sumarla, restarla, lo que sea. 167 00:09:00,690 --> 00:09:02,610 que tenga yo que hacer, ¿vale? 168 00:09:03,730 --> 00:09:05,789 Bueno, pues entonces nuestra primera tarea 169 00:09:05,789 --> 00:09:06,789 en este primer tema 170 00:09:06,789 --> 00:09:09,769 inevitablemente es esta. 171 00:09:10,470 --> 00:09:11,970 Aprender a declarar variables 172 00:09:11,970 --> 00:09:14,909 en nuestro lenguaje de programación seleccionado, 173 00:09:15,450 --> 00:09:16,450 que es Java, ¿vale? 174 00:09:16,450 --> 00:09:17,529 Aprender a declararlas. 175 00:09:29,860 --> 00:09:30,139 Vale. 176 00:09:32,100 --> 00:09:34,179 Pues, ¿cómo se declara una variable? 177 00:09:51,679 --> 00:09:52,240 Bueno, 178 00:09:53,740 --> 00:09:54,740 en todo el lenguaje de programación, 179 00:09:54,860 --> 00:09:56,539 por supuesto, hay variables, obviamente. 180 00:09:56,539 --> 00:09:58,419 Si no, el lenguaje de pronunciación no podría trabajar. 181 00:09:58,759 --> 00:10:02,539 Lo que pasa es que en cada lenguaje hay unas particularidades en su declaración. 182 00:10:03,480 --> 00:10:05,080 Pero en todos, lógicamente, hay variables. 183 00:10:06,000 --> 00:10:07,200 Bueno, pues ¿cómo se declaran? 184 00:10:08,179 --> 00:10:12,159 Lo primero que tenemos que hacer es elegir un nombre para esa variable. 185 00:10:13,080 --> 00:10:16,419 Porque un programa puede tener un montón de cajitas distintas, un montón de variables. 186 00:10:17,179 --> 00:10:19,500 ¿Cómo las distinguimos luego en las instrucciones? 187 00:10:20,000 --> 00:10:21,279 Por su nombre, no es tu tía. 188 00:10:22,120 --> 00:10:25,259 La única forma de distinguir una variable de otra es su nombre. 189 00:10:26,539 --> 00:10:36,580 Pues venga, lo primero, uno selecciona un nombre. Ahora, lo que voy a escribir aquí ya es como directamente código Java, pero bueno, todavía no podemos ejecutarlo, hay que hacer más cosas. 190 00:10:37,379 --> 00:10:48,759 Pues, por ejemplo, si yo quiero una variable que va a guardar la altura de mis pacientes porque soy médico, no sé qué, pues podría elegir, ya está, el nombre altura. 191 00:10:48,759 --> 00:10:50,539 hala 192 00:10:50,539 --> 00:10:53,279 que mal lo he escrito 193 00:10:53,279 --> 00:11:02,059 hala, un nombre de variable 194 00:11:02,059 --> 00:11:03,240 perfectamente elegido 195 00:11:03,240 --> 00:11:05,279 el nombre de variable 196 00:11:05,279 --> 00:11:08,460 como se lo llamamos 197 00:11:08,460 --> 00:11:10,460 x, como se lo llamamos 198 00:11:10,460 --> 00:11:11,320 pepito perez 199 00:11:11,320 --> 00:11:13,779 techo escurrido, vale 200 00:11:13,779 --> 00:11:15,100 lo podemos llamar como nos dé la gana 201 00:11:15,100 --> 00:11:17,940 pero hombre, la idea es que elijamos 202 00:11:17,940 --> 00:11:20,220 un nombre que tenga que ver 203 00:11:20,220 --> 00:11:21,460 con lo que va a guardar 204 00:11:21,460 --> 00:11:23,779 porque si no luego uno cuando está leyendo 205 00:11:23,779 --> 00:11:25,720 nuestro programa, es que no entiende 206 00:11:25,720 --> 00:11:27,480 nadie, dice, pero ¿qué es este programa? ¿Qué hace? 207 00:11:28,039 --> 00:11:29,620 Entonces, si damos a las variables 208 00:11:29,620 --> 00:11:31,980 nombres relacionados 209 00:11:31,980 --> 00:11:33,679 con el dato que están guardando, pues 210 00:11:33,679 --> 00:11:34,279 mucho mejor. 211 00:11:35,419 --> 00:11:37,620 Aunque sea larguísimo, me da lo mismo 212 00:11:37,620 --> 00:11:39,740 que el nombre sea largo. Ese no es 213 00:11:39,740 --> 00:11:41,539 un criterio que importe. 214 00:11:42,960 --> 00:11:43,539 Este nombre 215 00:11:43,539 --> 00:11:45,539 es una mierda de nombre, x. 216 00:11:46,080 --> 00:11:46,879 Este nombre 217 00:11:46,879 --> 00:11:49,340 altura 218 00:11:49,340 --> 00:11:51,740 alumno. 219 00:11:51,740 --> 00:11:54,019 es un nombre de variable maravilloso 220 00:11:54,019 --> 00:11:55,179 este 221 00:11:55,179 --> 00:11:58,120 cuando tú ves un programa que te ha hecho alguien 222 00:11:58,120 --> 00:12:00,080 y tiene variables que se llaman X e Y 223 00:12:00,080 --> 00:12:01,340 dices 224 00:12:01,340 --> 00:12:04,320 que poca elegancia programando tiene esta persona 225 00:12:04,320 --> 00:12:05,919 que llama las variables X e Y 226 00:12:05,919 --> 00:12:07,659 vago de narices 227 00:12:07,659 --> 00:12:09,179 porque X e Y 228 00:12:09,179 --> 00:12:12,039 para empezar ya me está quitando la opción 229 00:12:12,039 --> 00:12:14,019 de prever yo que va a hacer este programa 230 00:12:14,019 --> 00:12:16,220 tú ves a altura alumno 231 00:12:16,220 --> 00:12:18,440 y dices, ah, este programa tendrá que ver 232 00:12:18,440 --> 00:12:20,440 con medir alumnos o compararlos 233 00:12:20,440 --> 00:12:24,139 y eso pues marca la diferencia 234 00:12:24,139 --> 00:12:26,299 lógicamente en quién es un buen desarrollador 235 00:12:26,299 --> 00:12:26,799 y quién no 236 00:12:26,799 --> 00:12:29,679 vale 237 00:12:29,679 --> 00:12:31,480 no en cuanto al nombre 238 00:12:31,480 --> 00:12:34,139 hay ciertas reglas, estas reglas también van cambiando 239 00:12:34,139 --> 00:12:36,320 un poquito a veces en las suficientes versiones de Java 240 00:12:36,320 --> 00:12:38,559 pero bueno, salvo los detalles 241 00:12:38,559 --> 00:12:39,700 que nos importan menos 242 00:12:39,700 --> 00:12:42,399 lo más general, lo que todos sabemos 243 00:12:42,399 --> 00:12:43,340 siempre es 244 00:12:43,340 --> 00:12:46,379 que las variables tienen que estar 245 00:12:46,379 --> 00:12:47,740 constituidas 246 00:12:47,740 --> 00:12:50,559 por caracteres alfanuméricos 247 00:12:50,559 --> 00:12:52,899 caracteres alfabéticos 248 00:12:52,899 --> 00:12:54,460 normales o números, también vale 249 00:12:54,460 --> 00:12:55,519 o sea, altura 3, vale 250 00:12:55,519 --> 00:12:58,279 que el primero no sea un número 251 00:12:58,279 --> 00:12:59,679 vale 252 00:12:59,679 --> 00:13:02,399 y también vale el carácter 253 00:13:02,399 --> 00:13:03,559 de la barra baja 254 00:13:03,559 --> 00:13:06,440 y creo que el dólar, pero el dólar 255 00:13:06,440 --> 00:13:08,320 como yo suelo usar para unas cosas muy concretas 256 00:13:08,320 --> 00:13:10,120 es muy confuso, esto, usar 257 00:13:10,120 --> 00:13:11,779 el dólar en un nombre de variable 258 00:13:11,779 --> 00:13:13,700 es poco recomendable 259 00:13:13,700 --> 00:13:15,919 yo no lo he visto nunca, de hecho 260 00:13:15,919 --> 00:13:34,340 ¿Vale? Entonces, letras, números que expresen lo mejor posible el contenido. Si la barra baja nos viene bien barra baja, pero no es lo habitual. Por ejemplo, si yo quiero poner altura alumno, lo normal en Java sería ponerlo así. 261 00:13:34,340 --> 00:13:35,960 altura y alumno UI 262 00:13:35,960 --> 00:13:37,139 con la mayúscula 263 00:13:37,139 --> 00:13:39,519 esto es poco habitual en Java 264 00:13:39,519 --> 00:13:43,919 altura barra baja alumno 265 00:13:43,919 --> 00:13:47,360 las dos son nombres de variables válidos 266 00:13:47,360 --> 00:13:49,059 pero de alguna manera 267 00:13:49,059 --> 00:13:51,480 todos seguimos con una especie de convenios 268 00:13:51,480 --> 00:13:53,220 para programar parecido 269 00:13:53,220 --> 00:13:54,080 entre nosotros 270 00:13:54,080 --> 00:13:56,340 y entender los programas de los otros 271 00:13:56,340 --> 00:13:58,179 y entonces son brindis 272 00:13:58,179 --> 00:13:59,980 este es el nombre de programación 273 00:13:59,980 --> 00:14:01,840 un nombre de variable como más bonito 274 00:14:01,840 --> 00:14:02,720 más caché 275 00:14:02,720 --> 00:14:04,679 Que tú hayas elegido este nombre y no este. 276 00:14:07,409 --> 00:14:19,610 Bueno, pues entonces, primero, para declarar variables, ya hemos dicho, elegir el nombre, con todas las restricciones que os he dicho, ¿vale? 277 00:14:23,539 --> 00:14:26,940 Y ya está, poniendo eso está en cada variable, no. 278 00:14:26,940 --> 00:14:43,480 Bueno, falta una cosa fundamental en Java, que es indicar antes, antes del nombre de variable que yo he elegido, indicar qué tipo de dato va a tener, qué tipo de dato. 279 00:14:43,480 --> 00:14:46,720 ¿Y a qué me refiero con tipo de dato? 280 00:14:47,000 --> 00:14:48,059 Me refiero a decir 281 00:14:48,059 --> 00:14:50,039 Si va a ser un número entero 282 00:14:50,039 --> 00:14:52,419 Si va a ser un número decimal 283 00:14:52,419 --> 00:14:55,139 Si va a ser un char 284 00:14:55,139 --> 00:14:58,120 Si va a ser una cadena 285 00:14:58,120 --> 00:14:59,580 Un char me refiero a un carajo 286 00:14:59,580 --> 00:15:01,179 ¿Vale? 287 00:15:01,940 --> 00:15:04,039 O sea, ¿qué tipo de dato va a tener esa variable? 288 00:15:04,379 --> 00:15:05,299 Hay que ponerlo aquí 289 00:15:05,299 --> 00:15:07,220 El tipo 290 00:15:07,220 --> 00:15:15,250 Y ahora, ahora entramos en esto 291 00:15:15,250 --> 00:15:16,590 Una vez que hemos puesto el tipo 292 00:15:16,590 --> 00:15:19,250 ya podemos terminarlo 293 00:15:19,250 --> 00:15:20,029 con punto y coma 294 00:15:20,029 --> 00:15:22,570 ahora nos vamos con el tipo 295 00:15:22,570 --> 00:15:24,370 ¿vale? pero 296 00:15:24,370 --> 00:15:26,549 muy en resumen, por ahora 297 00:15:26,549 --> 00:15:28,889 la forma de declarar la variable 298 00:15:28,889 --> 00:15:30,330 es 299 00:15:30,330 --> 00:15:32,990 poner primero el tipo de dato 300 00:15:32,990 --> 00:15:35,269 que va a tener, si es número, si es carácter 301 00:15:35,269 --> 00:15:37,169 poner el nombre 302 00:15:37,169 --> 00:15:39,129 que damos a ese espacio, punto y coma 303 00:15:39,129 --> 00:15:41,090 esa sería 304 00:15:41,090 --> 00:15:43,049 una sentencia de declaración de variables 305 00:15:43,049 --> 00:15:43,590 válida 306 00:15:43,590 --> 00:15:50,330 cuando la máquina virtual de Java ejecute un código que tiene esto, 307 00:15:51,789 --> 00:15:52,549 ¿qué hace ella? 308 00:15:52,669 --> 00:16:00,169 Como intérprete, automáticamente hace aparecer en la RAM una cajita 309 00:16:00,169 --> 00:16:02,610 para guardar ese dato. 310 00:16:03,950 --> 00:16:08,190 Esa cajita tendría este nombre, el nombre altura, 311 00:16:08,350 --> 00:16:09,490 y aquí apareció la cajita. 312 00:16:10,389 --> 00:16:10,789 Y ya está. 313 00:16:10,789 --> 00:16:12,710 y esa caja ya está ahí 314 00:16:12,710 --> 00:16:15,669 durante todo el tiempo en el que el programa 315 00:16:15,669 --> 00:16:16,649 está en ejecución 316 00:16:16,649 --> 00:16:19,330 ahí está la cajita creada 317 00:16:19,330 --> 00:16:25,419 y una pregunta natural que me haríais 318 00:16:25,419 --> 00:16:28,539 esa cajita como de grande 319 00:16:28,539 --> 00:16:31,379 ya sabéis que la memoria RAM 320 00:16:31,379 --> 00:16:33,440 lógicamente tiene bits 321 00:16:33,440 --> 00:16:35,360 que a su vez se organizan en bytes 322 00:16:35,360 --> 00:16:36,940 por eso tenéis memorias 323 00:16:36,940 --> 00:16:39,200 de un giga, de dos gigas, de un tera, de dos teras 324 00:16:39,200 --> 00:16:40,919 todo bytes, un tera byte, un tera byte 325 00:16:40,919 --> 00:16:43,259 que organizan bytes, que un byte ya sabéis que son bits 326 00:16:43,259 --> 00:16:45,340 entonces la pregunta sería 327 00:16:45,340 --> 00:16:46,539 ¿y esta cajita? 328 00:16:47,299 --> 00:16:48,399 ¿cuántos bytes tiene? 329 00:16:49,299 --> 00:16:50,940 ¿me preparas una cajita de un byte? 330 00:16:51,019 --> 00:16:52,480 ¿me preparas una de 27 bytes? 331 00:16:52,600 --> 00:16:54,320 ¿de cuántos bytes me preparas la cajita? 332 00:16:55,460 --> 00:16:58,000 pues el tamaño de esta cajita 333 00:16:58,000 --> 00:16:59,539 si es de un byte 334 00:16:59,539 --> 00:17:00,500 de dos, de tres 335 00:17:00,500 --> 00:17:03,620 el tamaño depende 336 00:17:03,620 --> 00:17:05,240 del tipo que yo haya 337 00:17:05,240 --> 00:17:06,339 especificado aquí 338 00:17:06,339 --> 00:17:08,140 ¿vale? 339 00:17:08,599 --> 00:17:10,559 y ahora ya sí que nos queda más remedio 340 00:17:10,559 --> 00:17:11,740 que ver 341 00:17:11,740 --> 00:17:13,400 y qué tipos tenemos 342 00:17:13,400 --> 00:17:15,539 cuántos puedo elegir 343 00:17:15,539 --> 00:17:17,880 qué posibilidades tengo para elegir 344 00:17:17,880 --> 00:17:19,700 cuántos me da Java 345 00:17:19,700 --> 00:17:24,480 bueno pues me da los habituales 346 00:17:24,480 --> 00:17:26,519 que cualquier otro lenguaje 347 00:17:26,519 --> 00:17:27,140 de programación 348 00:17:27,140 --> 00:17:29,900 vamos a escribirlos aquí 349 00:17:29,900 --> 00:17:43,670 vale 350 00:17:43,670 --> 00:17:45,250 tipos posibles 351 00:17:45,250 --> 00:17:50,069 pues en esencia 352 00:17:50,069 --> 00:17:51,990 son, o números enteros, 353 00:17:52,049 --> 00:17:53,349 ya sabéis los que son números enteros, 354 00:17:53,549 --> 00:17:55,349 7, 0, 2, 355 00:17:56,029 --> 00:17:57,470 o números decimales, 356 00:17:57,750 --> 00:17:59,549 3,8, 9,2, 357 00:18:00,490 --> 00:18:00,890 o char, 358 00:18:01,630 --> 00:18:03,789 el a, el b, la interrogación, o char, 359 00:18:04,430 --> 00:18:05,809 o una cosa que se llama 360 00:18:05,809 --> 00:18:07,890 boolean, que es un tipo 361 00:18:07,890 --> 00:18:09,750 de dato que solamente puede 362 00:18:09,750 --> 00:18:11,470 guardar dos posibles valores. 363 00:18:12,849 --> 00:18:13,390 True o false. 364 00:18:14,210 --> 00:18:15,569 Porque un tipo de dato, 365 00:18:15,569 --> 00:18:17,309 un número entero, puede guardar 366 00:18:17,309 --> 00:18:19,509 un montón de valores. 27, 12, 367 00:18:19,509 --> 00:18:20,289 4, 8 368 00:18:20,289 --> 00:18:23,230 pero un tipo de dato de este boolean 369 00:18:23,230 --> 00:18:24,470 que he dicho que ahora voy a escribir 370 00:18:24,470 --> 00:18:27,690 solo te puede guardar dos posibles 371 00:18:27,690 --> 00:18:28,849 valores, true o false 372 00:18:28,849 --> 00:18:31,349 eso luego en los ejemplos ya se va viendo mejor 373 00:18:31,349 --> 00:18:33,710 su utilidad, porque es tan útil que exista 374 00:18:33,710 --> 00:18:35,529 bueno, pues ¿qué tipos tenemos? 375 00:18:35,730 --> 00:18:37,549 para guardar números enteros tenemos hasta 376 00:18:37,549 --> 00:18:38,670 cuatro posibilidades 377 00:18:38,670 --> 00:18:41,769 el tipo que se llama byte 378 00:18:41,769 --> 00:18:44,029 el que se llama 379 00:18:44,029 --> 00:18:44,529 short 380 00:18:44,529 --> 00:18:47,150 el que se llama int 381 00:18:47,150 --> 00:18:49,609 y el que se llama log 382 00:18:49,609 --> 00:18:53,759 los así tal cual 383 00:18:53,759 --> 00:18:55,299 escritos en minúsculos, por supuesto 384 00:18:55,299 --> 00:18:57,940 hasta cuatro 385 00:18:57,940 --> 00:18:58,839 tipos posibles 386 00:18:58,839 --> 00:19:00,339 solamente 387 00:19:00,339 --> 00:19:03,619 solamente para guardar 388 00:19:03,619 --> 00:19:04,700 un número entero 389 00:19:04,700 --> 00:19:06,319 ¿por qué no me das uno solo? 390 00:19:07,700 --> 00:19:09,259 ¿en qué se diferencian entre sí? 391 00:19:17,710 --> 00:19:18,349 ¿cómo, cómo, cómo? 392 00:19:20,690 --> 00:19:21,529 no, a ver 393 00:19:21,529 --> 00:19:23,089 log es largo 394 00:19:23,089 --> 00:19:31,410 A ver, en lo que se distinguen es en cuántos bytes reservas para guardar ese número. 395 00:19:32,250 --> 00:19:49,710 Si yo declaro aquí, uy, si yo declaro aquí mi variable de esta manera, byte altura, esta ya sí que es una sentencia de Java perfectamente válida. 396 00:19:49,710 --> 00:19:52,029 un tipo de dato válido 397 00:19:52,029 --> 00:19:53,609 byte, muy válido 398 00:19:53,609 --> 00:19:56,009 espacio, nombre de variable 399 00:19:56,009 --> 00:19:57,990 el que a mí me ha dado la gana, bien elegido 400 00:19:57,990 --> 00:20:00,210 terminado en punto y coma 401 00:20:00,210 --> 00:20:01,690 esta es una sentencia de Java válida 402 00:20:01,690 --> 00:20:04,109 al haber elegido yo 403 00:20:04,109 --> 00:20:04,890 el tipo byte 404 00:20:04,890 --> 00:20:08,109 ¿cuánto espacio se me reserva en la RAM? 405 00:20:09,450 --> 00:20:10,230 un byte 406 00:20:10,230 --> 00:20:11,630 solamente, 8 bits 407 00:20:11,630 --> 00:20:15,349 entonces solamente 408 00:20:15,349 --> 00:20:17,710 puedo darle a la variable altura 409 00:20:17,710 --> 00:20:19,670 valores números 410 00:20:19,670 --> 00:20:23,869 Valores numéricos que se pueden representar en 8 bits, que son muy poquitos. 411 00:20:25,549 --> 00:20:35,049 En 8 bits se pueden representar del menos 127 al 127, ya está, lo que cabe en 2 elevado a 7 con el bit de signo. 412 00:20:35,150 --> 00:20:41,430 Pero bueno, estas cosas en sistemas informáticos de la representación de números en binario, 413 00:20:42,170 --> 00:20:48,930 el que no lo haya visto en cursos anteriores de bachillerato, de tecnología, de grado medio, de lo que sea, 414 00:20:49,670 --> 00:20:51,009 Pues lo verá este año en sistemas. 415 00:20:52,049 --> 00:20:58,650 Ahora mismo a nosotros tampoco, lo único que nos importa es recordar que un bytes son 8 bits. 416 00:21:01,130 --> 00:21:03,250 Estos son bytes, 8 bits, los que sean. 417 00:21:06,539 --> 00:21:13,200 Y estos 8 bits me pueden representar números, pero solamente unos poquitos. 418 00:21:14,200 --> 00:21:17,119 Desde el menos 127 al 127. 419 00:21:17,420 --> 00:21:18,819 Bueno, uno de ellos de hecho ni siquiera. 420 00:21:18,819 --> 00:21:21,480 126, no sé el complemento a 2 421 00:21:21,480 --> 00:21:23,799 entonces si mi altura 422 00:21:23,799 --> 00:21:25,759 va a estar 423 00:21:25,759 --> 00:21:27,579 por debajo del menos 127 424 00:21:27,579 --> 00:21:29,420 o por encima del 127 425 00:21:29,420 --> 00:21:31,779 haber elegido un tipo byte 426 00:21:31,779 --> 00:21:33,660 es muy mala elección 427 00:21:33,660 --> 00:21:35,359 porque no me cabe 428 00:21:35,359 --> 00:21:37,740 no me cabe en 8 bits el numerito 429 00:21:37,740 --> 00:21:39,480 no me cabe, en 8 bits 430 00:21:39,480 --> 00:21:41,720 solo me caben numeritos en este margen 431 00:21:41,720 --> 00:21:43,579 números enteros en ese margen 432 00:21:43,579 --> 00:21:45,740 ¿vale? sería muy mala elección 433 00:21:45,740 --> 00:21:47,740 vale, vamos a poner 434 00:21:47,740 --> 00:21:48,099 aquí 435 00:21:48,099 --> 00:21:49,819 cinco minutillos