1 00:00:01,199 --> 00:00:08,220 Voy a grabar esta clase, por lo tanto, si habláis es que me dais el permiso de ser grabados. 2 00:00:09,980 --> 00:00:14,880 Vamos ahora a hablar de un tema bastante interesante. 3 00:00:15,019 --> 00:00:16,160 Esto de las variables. 4 00:00:16,519 --> 00:00:19,920 Alguno de vosotros ya lo habrá visto en programación anteriormente. 5 00:00:20,620 --> 00:00:21,879 Si ha hecho alguna programación. 6 00:00:22,059 --> 00:00:27,339 Alguno de vosotros habrá visto algún concepto parecido en bachillerato. 7 00:00:27,339 --> 00:00:30,120 Si habéis hecho bachillerato, a veces se hace un poco de programación allí. 8 00:00:30,120 --> 00:00:37,799 O a veces en matemática algunos conceptos pueden tener una relación con esto, ¿vale? 9 00:00:38,299 --> 00:00:42,100 Es un concepto que por sí mismo no es tan complejo, ¿vale? 10 00:00:42,420 --> 00:00:44,960 Pero es que hay que entenderlo muy bien 11 00:00:44,960 --> 00:00:50,320 Porque a partir de ahora y por el resto de vuestra vida en informática vais a usar variables 12 00:00:50,320 --> 00:00:54,579 Si esto lo tenéis bien entendido, pues perfecto 13 00:00:54,579 --> 00:00:57,420 Si tenéis dudas sobre estos conceptos 14 00:00:57,420 --> 00:01:01,439 Llegará un momento en que cuando las variables se complican un poco 15 00:01:01,439 --> 00:01:04,180 Y cuando las variables en vez de variables simples son arrays 16 00:01:04,180 --> 00:01:08,120 O son listas o son de objetos y cosas por el estilo 17 00:01:08,120 --> 00:01:09,980 Y tienes un montón de tipos raros 18 00:01:09,980 --> 00:01:12,099 Pues llega un momento en que dices 19 00:01:12,099 --> 00:01:13,719 Oye, ¿qué estoy haciendo? 20 00:01:14,299 --> 00:01:14,400 ¿Sí? 21 00:01:14,840 --> 00:01:19,000 Por lo tanto es bien que esto lo entendáis bien 22 00:01:19,000 --> 00:01:22,140 Si tenéis dudas en cualquier momento levantáis la mano y me decís no lo entiendo 23 00:01:22,140 --> 00:01:22,780 ¿Sí? 24 00:01:23,819 --> 00:01:24,180 Vale 25 00:01:24,180 --> 00:01:26,760 ¿Qué es una variable? 26 00:01:27,420 --> 00:01:28,859 En programación 27 00:01:28,859 --> 00:01:34,180 Una variable es una representación simbólica de un dato 28 00:01:34,180 --> 00:01:36,299 ¿Qué quiere decir esto? 29 00:01:37,040 --> 00:01:39,859 Cuando yo antes hablaba del señor alumno 30 00:01:39,859 --> 00:01:40,500 ¿Vale? 31 00:01:41,000 --> 00:01:43,659 Y le decía tú tienes una edad 32 00:01:43,659 --> 00:01:44,659 ¿Vale? 33 00:01:45,379 --> 00:01:48,579 Esta edad del alumno 34 00:01:48,579 --> 00:01:51,939 Es una representación simbólica de un dato 35 00:01:51,939 --> 00:01:53,459 Es decir 36 00:01:53,459 --> 00:01:55,560 ¿El alumno qué edad tiene? 37 00:01:56,180 --> 00:01:57,299 No lo sé 38 00:01:57,299 --> 00:01:59,459 yo sé que tiene una edad 39 00:01:59,459 --> 00:02:02,579 pero dependiendo de que alumno es 40 00:02:02,579 --> 00:02:04,120 tendrá un valor 41 00:02:04,120 --> 00:02:06,239 asociado distinto 42 00:02:06,239 --> 00:02:08,240 habrá un alumno que tiene 43 00:02:08,240 --> 00:02:10,120 17, un alumno que tiene 44 00:02:10,120 --> 00:02:11,900 25 y un alumno que tiene 45 00:02:11,900 --> 00:02:14,460 33, ¿estamos de acuerdo con esto? 46 00:02:15,300 --> 00:02:16,139 ahora en mi 47 00:02:16,139 --> 00:02:18,199 programa, cuando yo 48 00:02:18,199 --> 00:02:20,180 programo, no puedo 49 00:02:20,180 --> 00:02:22,340 saber si el alumno que voy 50 00:02:22,340 --> 00:02:23,939 a trabajar 51 00:02:23,939 --> 00:02:26,039 tiene 17, 22 52 00:02:26,039 --> 00:02:26,840 o 33 53 00:02:26,840 --> 00:02:32,979 No lo sé, porque dependerá cuando el usuario añadirá el alumno a mi sistema 54 00:02:32,979 --> 00:02:37,159 A ese punto yo sabré que ese alumno tiene 22 o tiene 25 55 00:02:37,159 --> 00:02:40,259 Pero yo tengo que programar, ¿vale? 56 00:02:40,259 --> 00:02:44,840 Si yo quiero hacer un programa, un método 57 00:02:44,840 --> 00:02:51,979 Que lo que hace es que me dice si el alumno es mayor de edad o menor de edad 58 00:02:51,979 --> 00:03:00,159 ¿Vale? ¿Cómo haríais vosotros, cómo implementaríais vosotros el método, dime si es mayor de edad? 59 00:03:03,490 --> 00:03:05,569 ¿Pilla la edad? 60 00:03:07,770 --> 00:03:12,449 Si es mayor de 18, o sea 19 o más. 61 00:03:14,030 --> 00:03:22,069 Entonces si es mayor o igual a 18, imprímeme, ¿es mayor de edad? 62 00:03:22,069 --> 00:03:24,169 Y si no lo es. 63 00:03:24,189 --> 00:03:26,389 Pues me imprimes es menor de edad 64 00:03:26,389 --> 00:03:28,389 ¿Están de acuerdo? Vale, ok 65 00:03:28,389 --> 00:03:30,389 Pero esta edad 66 00:03:30,389 --> 00:03:34,069 Cuando yo programo el método 67 00:03:34,069 --> 00:03:35,789 No puedo usar 22 68 00:03:35,789 --> 00:03:37,490 O 37 69 00:03:37,490 --> 00:03:38,830 O 54 70 00:03:38,830 --> 00:03:42,289 Tengo que usar edad 71 00:03:42,289 --> 00:03:46,669 O sea una representación simbólica 72 00:03:46,669 --> 00:03:49,050 De lo que será el dato 73 00:03:49,050 --> 00:03:52,509 En el futuro 74 00:03:52,509 --> 00:03:57,449 O sea que yo allí digo, si edad es mayor o igual a 18 75 00:03:57,449 --> 00:04:00,490 ¿Y cuánto es edad? No lo sé 76 00:04:00,490 --> 00:04:05,229 Es una representación simbólica, es una representación extracta 77 00:04:05,229 --> 00:04:09,110 Es cada alumno tendrá su edad con un valor concreto 78 00:04:09,110 --> 00:04:12,969 Pero como yo estoy haciendo un método que tiene que valer para todos los alumnos 79 00:04:12,969 --> 00:04:15,930 No puedo usar ni 17, ni 22, ni 53 80 00:04:15,930 --> 00:04:20,750 Tendré que utilizar una palabra que representa ese dato 81 00:04:20,750 --> 00:04:22,670 edad 82 00:04:22,670 --> 00:04:24,970 y me basaré sobre esa edad 83 00:04:24,970 --> 00:04:26,209 pues esa es una variable 84 00:04:26,209 --> 00:04:27,750 ¿se entiende? 85 00:04:34,050 --> 00:04:36,850 en la realidad una variable es una zona de memoria 86 00:04:36,850 --> 00:04:38,689 a la que asignamos 87 00:04:38,689 --> 00:04:40,110 tres características 88 00:04:40,110 --> 00:04:42,730 un nombre, un valor 89 00:04:42,730 --> 00:04:44,009 y un tipo 90 00:04:44,009 --> 00:04:46,550 ¿vale? cuando creamos una variable 91 00:04:46,550 --> 00:04:48,769 esta variable tiene que tener un nombre 92 00:04:48,769 --> 00:04:50,089 en nuestro caso edad 93 00:04:50,089 --> 00:04:51,850 un valor 94 00:04:51,850 --> 00:04:54,629 en nuestro caso 17 por ejemplo para un alumno 95 00:04:54,629 --> 00:04:55,970 O 24 por otro alumno 96 00:04:55,970 --> 00:04:58,410 Y también lo que se llama un tipo 97 00:04:58,410 --> 00:05:00,529 El tipo define 98 00:05:00,529 --> 00:05:02,129 Lo veremos otra vez más adelante 99 00:05:02,129 --> 00:05:04,430 Pero define que datos 100 00:05:04,430 --> 00:05:06,110 Puedo meter en esa variable 101 00:05:06,110 --> 00:05:08,569 Si mi variable 102 00:05:08,569 --> 00:05:09,750 Es de tipo entero 103 00:05:09,750 --> 00:05:11,949 No puedo poner gato 104 00:05:11,949 --> 00:05:13,629 Dentro de esta variable 105 00:05:13,629 --> 00:05:15,569 Puedo poner solo un número entero 106 00:05:15,569 --> 00:05:18,870 Si mi variable es de tipo 107 00:05:18,870 --> 00:05:21,470 Cadena de caracteres 108 00:05:21,470 --> 00:05:22,870 Puedo poner gato 109 00:05:22,870 --> 00:05:24,329 ¿Sí? 110 00:05:25,050 --> 00:05:27,829 Sígnica variables de tipo booleano 111 00:05:27,829 --> 00:05:28,709 ¿Vale? 112 00:05:28,829 --> 00:05:31,730 Solo admite valor verdadero o falso 113 00:05:31,730 --> 00:05:33,430 No puedo poner 7 114 00:05:33,430 --> 00:05:34,990 No puedo poner gato 115 00:05:34,990 --> 00:05:38,889 No puedo poner nada que no sea verdadero o falso 116 00:05:38,889 --> 00:05:40,069 ¿Sí? 117 00:05:40,470 --> 00:05:42,170 Entonces, hay varios tipos 118 00:05:42,170 --> 00:05:43,850 Nosotros estudiaremos unos cuantos 119 00:05:43,850 --> 00:05:46,509 Hay boolean, float, int 120 00:05:46,509 --> 00:05:50,990 Cada objeto será un tipo en un futuro 121 00:05:50,990 --> 00:05:51,889 Lo veremos 122 00:05:51,889 --> 00:05:54,170 String, etc 123 00:05:54,170 --> 00:05:56,689 Son tipos estos de aquí 124 00:05:56,689 --> 00:05:58,949 Y cuando yo creo una variable le tengo que decir 125 00:05:58,949 --> 00:06:01,110 Vale, tú eres un trozo de memoria, vale, perfecto 126 00:06:01,110 --> 00:06:02,149 ¿Cómo te llamas? 127 00:06:02,550 --> 00:06:04,089 Te llamas edad, vale, muy bien 128 00:06:04,089 --> 00:06:06,730 Te llamas nombre, vale, te llamas dirección 129 00:06:06,730 --> 00:06:07,750 Ese es su nombre 130 00:06:07,750 --> 00:06:11,470 Es como yo simbólicamente te represento 131 00:06:11,470 --> 00:06:13,550 Cuando te tengo que utilizar en mi programa 132 00:06:13,550 --> 00:06:15,189 Te llamaré de esta forma 133 00:06:15,189 --> 00:06:15,970 ¿Vale? 134 00:06:16,170 --> 00:06:18,649 Porque no sé qué valor tienes ahí dentro 135 00:06:18,649 --> 00:06:19,589 En un determinado momento 136 00:06:19,589 --> 00:06:21,870 Porque es variable ese valor 137 00:06:21,870 --> 00:06:23,730 puede cambiar, y por lo tanto 138 00:06:23,730 --> 00:06:25,509 yo siempre hablaré de edad 139 00:06:25,509 --> 00:06:27,769 cada vez que quiero utilizar el valor 140 00:06:27,769 --> 00:06:29,709 que tú tienes dentro, que podría ser 141 00:06:29,709 --> 00:06:30,670 el mismo o podría cambiar 142 00:06:30,670 --> 00:06:33,129 entonces su nombre 143 00:06:33,129 --> 00:06:35,329 el valor actual 144 00:06:35,329 --> 00:06:37,490 vale, si muy bien, y si yo te voy a buscar 145 00:06:37,490 --> 00:06:39,129 este valor edad 146 00:06:39,129 --> 00:06:41,689 que encuentro allí dentro, en este trozo 147 00:06:41,689 --> 00:06:43,629 de memoria que se llama edad 148 00:06:43,629 --> 00:06:45,310 que número está escrito 149 00:06:45,310 --> 00:06:47,730 ese es su valor, y también 150 00:06:47,730 --> 00:06:49,730 el tipo, de que puedo 151 00:06:49,730 --> 00:06:51,689 poner dentro de ti, puedo poner 152 00:06:51,689 --> 00:06:54,170 enteros, puedo poner 153 00:06:54,170 --> 00:06:56,410 números con la coma, puedo poner 154 00:06:56,410 --> 00:06:58,290 una frase, puedo poner 155 00:06:58,290 --> 00:07:00,430 un verdadero o falso, puedo poner 156 00:07:00,430 --> 00:07:02,350 un objeto, puedo poner 157 00:07:02,350 --> 00:07:04,310 lo que sea, ¿se entienden estas 158 00:07:04,310 --> 00:07:06,209 tres cosas? ¿dudas? 159 00:07:08,370 --> 00:07:10,370 vale, para entenderlo 160 00:07:10,370 --> 00:07:12,269 en cierto sentido, imagínate una 161 00:07:12,269 --> 00:07:14,009 caja o un cajón o algo 162 00:07:14,009 --> 00:07:15,449 que pueda contener algo, ¿vale? 163 00:07:15,610 --> 00:07:16,649 marcamos una caja 164 00:07:16,649 --> 00:07:19,850 en esta caja que está aquí 165 00:07:19,850 --> 00:07:22,009 Yo le pongo una pegatina encima 166 00:07:22,009 --> 00:07:24,629 Para identificar lo que va allí dentro 167 00:07:24,629 --> 00:07:25,610 ¿Vale? 168 00:07:25,930 --> 00:07:27,430 Por ejemplo, le pongo 169 00:07:27,430 --> 00:07:30,050 Edad, para nuestro ejemplo 170 00:07:30,050 --> 00:07:31,529 O por ejemplo, le pongo nombre 171 00:07:31,529 --> 00:07:34,129 ¿Vale? Entonces asumo que dentro de esta caja 172 00:07:34,129 --> 00:07:36,050 Lo que hay allí dentro sea 173 00:07:36,050 --> 00:07:38,170 La edad de este 174 00:07:38,170 --> 00:07:40,230 Usuario, de este alumno 175 00:07:40,230 --> 00:07:40,750 Lo que sea 176 00:07:40,750 --> 00:07:43,730 O dentro de esta caja hay el nombre 177 00:07:43,730 --> 00:07:46,209 De este usuario, de este animal 178 00:07:46,209 --> 00:07:47,189 De este lo que sea 179 00:07:47,189 --> 00:07:48,709 ¿Están de acuerdo con eso? 180 00:07:48,709 --> 00:07:51,470 que es 181 00:07:51,470 --> 00:07:53,089 el valor 182 00:07:53,089 --> 00:07:55,350 el valor es lo que pongo dentro de la caja 183 00:07:55,350 --> 00:07:57,069 si yo abro la caja y miro dentro 184 00:07:57,069 --> 00:07:59,149 encontraré Estefano, porque el nombre 185 00:07:59,149 --> 00:08:01,509 de este alumno es Estefano 186 00:08:01,509 --> 00:08:03,329 o si yo abro la caja 187 00:08:03,329 --> 00:08:05,189 encontraré 37, porque la edad 188 00:08:05,189 --> 00:08:06,370 de este alumno es 37 189 00:08:06,370 --> 00:08:09,350 y luego veremos que esta cosa 190 00:08:09,350 --> 00:08:11,430 se puede cambiar, si yo cumplo los años 191 00:08:11,430 --> 00:08:13,490 quito el 37, lo tiro 192 00:08:13,490 --> 00:08:15,629 pillo 38 y lo vuelvo a poner ahí 193 00:08:15,629 --> 00:08:18,970 ¿Sí? Tengo más de 38 años 194 00:08:18,970 --> 00:08:28,629 Y también el tipo define qué puede caber en esta caja 195 00:08:28,629 --> 00:08:29,529 ¿Vale? 196 00:08:29,889 --> 00:08:32,330 Si esta caja está hecha para números 197 00:08:32,330 --> 00:08:34,110 Y aquí dentro puedo poner solo números 198 00:08:34,110 --> 00:08:37,490 No le puedo poner una tira que ponga hola 199 00:08:37,490 --> 00:08:38,610 Porque ¿Quién lo va a abrir? 200 00:08:38,769 --> 00:08:40,169 Se encuentra hola y dice 201 00:08:40,169 --> 00:08:41,070 ¿Y qué es hola? 202 00:08:41,129 --> 00:08:42,509 ¿Qué es hola por 5? 203 00:08:43,230 --> 00:08:44,750 Si yo quiero hacer una operación 204 00:08:44,750 --> 00:08:47,649 Y me pillo la edad de la multiplico por 5 205 00:08:47,649 --> 00:08:48,509 Por alguna razón 206 00:08:48,509 --> 00:08:50,210 Y me encuentro dentro hola 207 00:08:50,210 --> 00:08:53,070 ¿Qué operación es hacer hola por 5? 208 00:08:53,490 --> 00:08:55,450 ¿La sabéis hacer vosotros la operación hola por 5? 209 00:08:57,389 --> 00:08:59,269 No, porque no es definida 210 00:08:59,269 --> 00:09:02,590 ¿Me explico lo que estoy diciendo? 211 00:09:02,590 --> 00:09:04,610 Es muy complejo 212 00:09:04,610 --> 00:09:05,909 ¿Queréis que lo repita? 213 00:09:06,269 --> 00:09:08,350 Sigo adelante y luego volvemos atrás 214 00:09:08,350 --> 00:09:11,330 Sigo y volvemos eventualmente 215 00:09:11,330 --> 00:09:11,549 ¿Vale? 216 00:09:12,549 --> 00:09:13,870 Por ejemplo 217 00:09:13,870 --> 00:09:17,409 La caja edad 218 00:09:17,409 --> 00:09:17,769 Aquí 219 00:09:17,769 --> 00:09:20,350 Contiene 18 220 00:09:20,350 --> 00:09:22,389 Y solo puede contener enteros 221 00:09:22,389 --> 00:09:24,070 ¿Vale? 222 00:09:24,230 --> 00:09:26,549 ¿Cómo defino en Java esta cosa? 223 00:09:27,149 --> 00:09:28,690 O sea, quiero una caja 224 00:09:28,690 --> 00:09:30,250 Que se llame edad 225 00:09:30,250 --> 00:09:33,149 Que pueda contener solo números enteros 226 00:09:33,149 --> 00:09:35,570 Y que dentro tenga 18 227 00:09:35,570 --> 00:09:36,789 Pues así 228 00:09:36,789 --> 00:09:39,789 Int 229 00:09:39,789 --> 00:09:42,250 Esta es una palabra reservada que me dice 230 00:09:42,250 --> 00:09:44,230 Estamos hablando de enteros 231 00:09:44,230 --> 00:09:47,149 Edad, nombre de la variable 232 00:09:47,149 --> 00:09:50,090 Es igual a 18 233 00:09:50,090 --> 00:09:51,210 Punto y coma 234 00:09:51,210 --> 00:09:54,409 Esta sentencia de aquí 235 00:09:54,409 --> 00:09:55,909 Lo que me dice es 236 00:09:55,909 --> 00:09:57,590 Estoy declarando una variable 237 00:09:57,590 --> 00:09:59,370 Estoy creando una nueva variable 238 00:09:59,370 --> 00:10:01,970 Un nuevo cajón, un nuevo espacio de memoria 239 00:10:01,970 --> 00:10:04,289 Al que a partir de ahora 240 00:10:04,289 --> 00:10:06,409 Si tú escribes edad 241 00:10:06,409 --> 00:10:09,389 Yo sé que tengo que ir a ese espacio de memoria 242 00:10:09,389 --> 00:10:12,029 Dentro le guardo 18 243 00:10:12,029 --> 00:10:16,230 y que sepas que solo puedo guardar enteros allí dentro 244 00:10:16,230 --> 00:10:18,549 si yo voy allí dentro encontraré un número 245 00:10:18,549 --> 00:10:21,590 si alguien intenta poner algo que no es un número 246 00:10:21,590 --> 00:10:23,110 o es un número con la coma 247 00:10:23,110 --> 00:10:24,769 o es una palabra 248 00:10:24,769 --> 00:10:26,929 pues yo le diré, no, aquí no puede ir 249 00:10:26,929 --> 00:10:29,129 porque tú me has dicho que en este espacio de memoria 250 00:10:29,129 --> 00:10:30,629 solo van enteros 251 00:10:30,629 --> 00:10:37,370 en Java no funciona 252 00:10:37,370 --> 00:10:40,830 en Java tienes que definir el tipo 253 00:10:40,830 --> 00:10:42,789 Java es un lenguaje tipado 254 00:10:42,789 --> 00:10:44,509 si no defines el tipo te dice 255 00:10:44,509 --> 00:10:45,970 El 256 00:10:45,970 --> 00:10:46,990 El 257 00:10:46,990 --> 00:10:49,750 El compilador 258 00:10:49,750 --> 00:10:50,850 Llegará aquí y te dirá 259 00:10:50,850 --> 00:10:52,809 No puede empezar una sentencia 260 00:10:52,809 --> 00:10:55,169 Con un identificador 261 00:10:55,169 --> 00:10:56,990 Me falta algo 262 00:10:56,990 --> 00:10:59,769 Si yo quiero que una palabra 263 00:10:59,769 --> 00:11:01,049 En vez que ent 264 00:11:01,049 --> 00:11:02,690 Tendré que poner aquí 265 00:11:02,690 --> 00:11:05,009 El tipo que representa las palabras 266 00:11:05,009 --> 00:11:06,370 No está 267 00:11:06,370 --> 00:11:07,149 Está más adelante 268 00:11:07,149 --> 00:11:09,990 Entonces, si yo he hecho 269 00:11:09,990 --> 00:11:11,509 Int edades igual a 18 270 00:11:11,509 --> 00:11:13,809 He creado esta nueva variable 271 00:11:13,809 --> 00:11:16,090 Con las tres características de la variable 272 00:11:16,090 --> 00:11:18,409 Nombre, tipo, valor 273 00:11:18,409 --> 00:11:21,049 ¿Dudas? 274 00:11:22,370 --> 00:11:23,809 Ese valor se puede cambiar luego 275 00:11:23,809 --> 00:11:26,389 Siendo una variable 276 00:11:26,389 --> 00:11:27,889 Se puede cambiar 277 00:11:27,889 --> 00:11:28,690 ¿Cómo? 278 00:11:33,039 --> 00:11:34,620 A continuación yo puedo hacer 279 00:11:34,620 --> 00:11:36,840 Edad es igual a 19 punto y coma 280 00:11:36,840 --> 00:11:38,500 Fijaos, no está ahí 281 00:11:38,500 --> 00:11:41,740 No estoy declarando una nueva variable 282 00:11:41,740 --> 00:11:43,159 Te estoy diciendo 283 00:11:43,159 --> 00:11:45,000 Es la variable que has creado aquí 284 00:11:45,000 --> 00:11:46,080 Que se llama edad 285 00:11:46,080 --> 00:11:47,759 Ahora tú 286 00:11:47,759 --> 00:11:49,399 Vete allí dentro 287 00:11:49,399 --> 00:11:51,720 Y colocas 19 288 00:11:51,720 --> 00:11:53,340 Le estoy cambiando el valor 289 00:11:53,340 --> 00:11:56,419 Estoy machacando el valor que estaba antes 290 00:11:56,419 --> 00:11:57,899 ¿Vale? Si en este trozo de memoria 291 00:11:57,899 --> 00:12:00,580 Estaba escrito 18, ese 18 lo he perdido 292 00:12:00,580 --> 00:12:01,980 No lo puedo recuperar 293 00:12:01,980 --> 00:12:04,779 Y he sobrescrito ese 18 294 00:12:04,779 --> 00:12:05,559 Con un 19 295 00:12:05,559 --> 00:12:10,220 Si pongo int, ¿qué me haría? 296 00:12:11,559 --> 00:12:12,080 Error 297 00:12:12,080 --> 00:12:12,919 ¿Por qué error? 298 00:12:12,919 --> 00:12:15,039 Porque me dice 299 00:12:15,039 --> 00:12:17,480 Ya has creado un trozo de memoria 300 00:12:17,480 --> 00:12:18,299 Que se llama edad 301 00:12:18,299 --> 00:12:21,080 Si tú empiezas a llamar varios trozos de memoria 302 00:12:21,080 --> 00:12:23,139 Edad, y luego me dices, pilla edad 303 00:12:23,139 --> 00:12:25,639 ¿Cuál pillo de los 10 que has identificado? 304 00:12:25,659 --> 00:12:27,860 La estás declarando y no te estás dándole un valor 305 00:12:27,860 --> 00:12:30,320 Cuando yo le doy el tipo también delante 306 00:12:30,320 --> 00:12:31,960 La primera vez que la uso 307 00:12:31,960 --> 00:12:33,179 Y es para crearla 308 00:12:33,179 --> 00:12:35,039 Esto crea una variable 309 00:12:35,039 --> 00:12:36,320 Ahora lo veremos también otra vez 310 00:12:36,320 --> 00:12:40,320 Esto modifica una variable ya existente 311 00:12:40,320 --> 00:12:42,139 Si yo aquí vuelvo a poner int 312 00:12:42,139 --> 00:12:44,440 Se enfada, me dice, no, mira, existe ya 313 00:12:44,440 --> 00:12:45,279 Una variable que se llama edad 314 00:12:45,279 --> 00:12:47,779 Si yo aquí no pongo int 315 00:12:47,779 --> 00:12:50,179 Se enfada, porque dice, en ningún lado 316 00:12:50,179 --> 00:12:52,120 Has creado una variable, un trozo de memoria 317 00:12:52,120 --> 00:12:54,279 Que se llama edad, por lo tanto, ¿qué tengo que hacer yo? 318 00:12:56,299 --> 00:12:56,460 ¿Sí? 319 00:12:56,820 --> 00:12:58,159 Por aquí puede haber dos problemas 320 00:12:58,159 --> 00:13:00,320 Puedo crear, puedo usar 321 00:13:00,320 --> 00:13:02,580 Una variable que no he creado 322 00:13:02,580 --> 00:13:03,860 Antes, error 323 00:13:03,860 --> 00:13:05,940 O puedo intentar 324 00:13:05,940 --> 00:13:08,120 Crear otra vez una variable 325 00:13:08,120 --> 00:13:09,940 Que ya está creada, error 326 00:13:09,940 --> 00:13:18,620 Ahora, si yo intento hacer que edad es igual a salmón 327 00:13:18,620 --> 00:13:20,100 Pues error 328 00:13:20,100 --> 00:13:22,460 Me dice, no 329 00:13:22,460 --> 00:13:24,740 Porque esto no es un número 330 00:13:24,740 --> 00:13:27,360 Y tú me has dicho que en esta caja solo van enteros 331 00:13:27,360 --> 00:13:31,000 Y esto, por cuanto me esfuerce, no es un entero 332 00:13:31,000 --> 00:13:33,559 Dudas? 333 00:13:35,700 --> 00:13:36,379 Preguntas? 334 00:13:43,629 --> 00:13:46,470 Otra variable que puede tener palabras 335 00:13:46,470 --> 00:13:49,370 Que sea tipo de pescado 336 00:13:49,370 --> 00:13:51,809 String, que es la palabra 337 00:13:51,809 --> 00:13:54,289 Tipo de salmón de pescado 338 00:13:54,289 --> 00:13:55,389 Igual salmón 339 00:13:55,389 --> 00:13:57,629 Perfecto, ahora lo veremos 340 00:13:57,629 --> 00:13:59,629 Pero por ahora 341 00:13:59,629 --> 00:14:01,190 Nosotros, tipo int 342 00:14:01,190 --> 00:14:03,289 Enteros, numeritos 343 00:14:03,289 --> 00:14:08,970 Float 344 00:14:08,970 --> 00:14:11,470 Double, admite el número con coma 345 00:14:13,090 --> 00:14:14,809 ¿Cuánto puedo almacenar en una variable? 346 00:14:16,049 --> 00:14:17,289 Depende del tipo de variable 347 00:14:17,289 --> 00:14:17,970 ¿Vale? 348 00:14:18,070 --> 00:14:19,129 Ahora veremos los tipos 349 00:14:19,129 --> 00:14:20,610 Cada tipo tiene un rank 350 00:14:20,610 --> 00:14:24,909 Un int hasta 2 a la 32 351 00:14:24,909 --> 00:14:27,350 4.000 millones 352 00:14:27,350 --> 00:14:34,230 Desde menos 2.000 millones hasta más 2.000 millones 353 00:14:34,230 --> 00:14:36,669 No me acuerdo exactamente, pero un rango de ese estilo 354 00:14:36,669 --> 00:14:41,129 Si no me equivoco son 32 bits un int 355 00:14:41,129 --> 00:14:44,429 A lo mejor son 16, no lo sé, no me acuerdo 356 00:14:44,429 --> 00:14:46,149 Va después la diapositiva que lo dice 357 00:14:46,149 --> 00:14:51,629 Pero cada tipo tiene asociado un número de dígitos binarios que lo representan 358 00:14:51,629 --> 00:14:53,309 Cuánta memoria tiene 359 00:14:53,309 --> 00:14:58,250 Entonces hay algunos que pueden contener solo 8 bits 360 00:14:58,250 --> 00:15:01,129 Entonces son 256 posibles valores 361 00:15:01,129 --> 00:15:04,750 Hay algunos que pueden tener 16 bits 362 00:15:04,750 --> 00:15:08,710 Entonces son 65.536 posibles valores 363 00:15:08,710 --> 00:15:10,529 Hay uno que está a 32 bits 364 00:15:10,529 --> 00:15:15,169 El double es doble precisión porque tiene 64 bits 365 00:15:15,169 --> 00:15:17,509 Hasta 2 a la 64 366 00:15:17,509 --> 00:15:18,649 Que es un número bastante grande 367 00:15:18,649 --> 00:15:20,129 Valores posibles 368 00:15:20,129 --> 00:15:22,669 Y así es 369 00:15:22,669 --> 00:15:25,450 Ahora hablaremos también de esto 370 00:15:25,450 --> 00:15:27,070 Cuando hablamos de tipos de variables 371 00:15:27,070 --> 00:15:28,309 Hablaremos de esto 372 00:15:28,309 --> 00:15:30,169 Por ahora me interesa entender 373 00:15:30,169 --> 00:15:31,710 ¿Qué es una variable? 374 00:15:32,190 --> 00:15:34,570 Pues eso, un cajón donde guardo los datos 375 00:15:34,570 --> 00:15:36,309 En el que tengo que definir 376 00:15:36,309 --> 00:15:38,570 Su nombre, el valor 377 00:15:38,570 --> 00:15:39,370 Y 378 00:15:39,370 --> 00:15:42,470 El tipo 379 00:15:42,470 --> 00:15:43,690 ¿Vale? 380 00:15:43,690 --> 00:15:49,690 Entonces, ¿cuándo defino el nombre de una variable? 381 00:15:50,629 --> 00:15:53,169 ¿Cómo puedo? O sea, ¿puedo elegir cualquier nombre? 382 00:15:54,470 --> 00:15:54,750 No 383 00:15:54,750 --> 00:16:00,549 Primero sabemos perfectamente que no puedo usar palabras reservadas 384 00:16:00,549 --> 00:16:05,509 No puedo hacer int static es igual a 3 385 00:16:05,509 --> 00:16:09,889 Porque static es una palabra reservada del sistema 386 00:16:09,889 --> 00:16:12,409 No puedo utilizarla como nombre 387 00:16:12,409 --> 00:16:14,929 Intvoid 388 00:16:14,929 --> 00:16:17,009 Intpublic 389 00:16:17,009 --> 00:16:24,139 Letras que puedo utilizar 390 00:16:24,139 --> 00:16:25,379 Todas de la A a la Z 391 00:16:25,379 --> 00:16:27,500 Mayúsculas y minúsculas 392 00:16:27,500 --> 00:16:28,899 ¿Puedo usar números? 393 00:16:29,159 --> 00:16:30,240 Sí, puedo usar números 394 00:16:30,240 --> 00:16:33,500 También puedo usar guión bajo o dólar 395 00:16:33,500 --> 00:16:36,279 Para los nombres de variables 396 00:16:36,279 --> 00:16:37,600 Estos 397 00:16:37,600 --> 00:16:40,940 No se suelen utilizar en Java 398 00:16:40,940 --> 00:16:43,320 En otros lenguajes de programación 399 00:16:43,320 --> 00:16:44,799 Todas las variables empiezan por 400 00:16:44,799 --> 00:16:46,559 Por dólar, por ejemplo 401 00:16:46,559 --> 00:16:48,820 O en otros 402 00:16:48,820 --> 00:16:51,259 Hay formas 403 00:16:51,259 --> 00:16:53,240 De llamar las variables de varios tipos 404 00:16:53,240 --> 00:16:53,940 Hay algunos 405 00:16:53,940 --> 00:16:56,899 Algunos métodos que te dicen 406 00:16:56,899 --> 00:16:58,279 Que cuando tú creas una variable 407 00:16:58,279 --> 00:17:00,879 El nombre de la variable tiene que incluir el tipo 408 00:17:00,879 --> 00:17:02,860 O sea, tú dices int 409 00:17:02,860 --> 00:17:05,099 Int guión bajo edad 410 00:17:05,099 --> 00:17:06,680 Es igual a 3 411 00:17:06,680 --> 00:17:09,099 Para que cuando tú uses esa variable 412 00:17:09,099 --> 00:17:10,400 Siempre sepas su tipo 413 00:17:10,400 --> 00:17:12,799 Hasta si no está escrito, porque si os fijáis aquí 414 00:17:12,799 --> 00:17:15,059 La primera vez 415 00:17:15,059 --> 00:17:17,400 Que vosotros 416 00:17:17,400 --> 00:17:18,799 Creáis una variable 417 00:17:18,799 --> 00:17:20,039 Estáis diciendo el tipo 418 00:17:20,039 --> 00:17:22,839 Pero si ahora aquí hay un millón de líneas de código 419 00:17:22,839 --> 00:17:24,059 Y luego uso edad 420 00:17:24,059 --> 00:17:25,940 La segunda vez que uso edad 421 00:17:25,940 --> 00:17:27,500 Nos está diciendo que tipo es 422 00:17:27,500 --> 00:17:29,299 ¿Vale? 423 00:17:29,700 --> 00:17:31,559 Si yo aquí en el nombre le he puesto 424 00:17:31,559 --> 00:17:33,059 Int-bajo edad 425 00:17:33,059 --> 00:17:35,900 Sé que cuando voy a reutilizar el nombre 426 00:17:35,900 --> 00:17:37,619 Int-bajo edad sé que es un int 427 00:17:37,619 --> 00:17:38,599 ¿Vale? 428 00:17:39,039 --> 00:17:40,099 Pero bueno, eso 429 00:17:40,099 --> 00:17:43,579 Luego se complica porque es un 430 00:17:43,579 --> 00:17:45,140 Rollo siempre escribir 431 00:17:45,140 --> 00:17:47,200 Int guión bajo o string guión bajo 432 00:17:47,200 --> 00:17:49,380 Y todas las variables se llaman iguales 433 00:17:49,380 --> 00:17:50,740 Porque empieza con int guión bajo 434 00:17:50,740 --> 00:17:52,359 ¿Vale? Por ahora 435 00:17:52,359 --> 00:17:55,519 Entonces, esto es olvidáoslo 436 00:17:55,519 --> 00:17:57,759 Cuando yo tengo que elegir 437 00:17:57,759 --> 00:17:59,319 Un nombre, ¿vale? 438 00:17:59,759 --> 00:18:01,960 Uso letras y números 439 00:18:01,960 --> 00:18:03,480 No puede ser 440 00:18:03,480 --> 00:18:06,240 Una palabra reservada 441 00:18:06,240 --> 00:18:06,740 ¿Vale? 442 00:18:07,279 --> 00:18:09,460 No puede comenzar por número 443 00:18:09,460 --> 00:18:12,660 O sea, int edad 1 444 00:18:12,660 --> 00:18:14,079 Igual a 19 445 00:18:14,079 --> 00:18:17,000 Perfecto, int apellido 1 446 00:18:17,000 --> 00:18:18,599 Es igual, no, int no 447 00:18:18,599 --> 00:18:21,039 String apellido 1 es igual a no sé qué 448 00:18:21,039 --> 00:18:23,039 String apellido 2 es igual a no sé qué 449 00:18:23,039 --> 00:18:23,579 Vale 450 00:18:23,579 --> 00:18:26,480 Pero 1 apellido no 451 00:18:26,480 --> 00:18:30,400 Siempre la primera 452 00:18:30,400 --> 00:18:32,200 Tiene que ser una letra 453 00:18:32,200 --> 00:18:33,720 No puede ser un número 454 00:18:33,720 --> 00:18:38,500 No puede ser una palabra reservada 455 00:18:38,500 --> 00:18:41,619 son case sensitive 456 00:18:41,619 --> 00:18:43,119 no es lo mismo 457 00:18:43,119 --> 00:18:44,819 edad minúscula 458 00:18:44,819 --> 00:18:47,119 que edad con la E mayúscula 459 00:18:47,119 --> 00:18:49,380 que edad con la D mayúscula 460 00:18:49,380 --> 00:18:49,940 al final 461 00:18:49,940 --> 00:18:52,119 que edad todo mayúsculo 462 00:18:52,119 --> 00:18:53,579 son nombres distintos 463 00:18:53,579 --> 00:18:57,160 y que cuando es una variable 464 00:18:57,160 --> 00:18:59,400 la primera letra 465 00:18:59,400 --> 00:19:01,519 de la variable va en minúscula 466 00:19:01,519 --> 00:19:02,940 ¿se acordáis? 467 00:19:03,099 --> 00:19:04,180 nombre de clase 468 00:19:04,180 --> 00:19:06,579 primera letra mayúscula 469 00:19:06,579 --> 00:19:08,279 nombre de 470 00:19:08,279 --> 00:19:10,700 variable, primera letra 471 00:19:10,700 --> 00:19:12,940 minúscula, así cuando yo veo un nombre 472 00:19:12,940 --> 00:19:14,640 ya tengo una idea de si es 473 00:19:14,640 --> 00:19:16,559 una clase o una variable 474 00:19:16,559 --> 00:19:20,420 y finalmente 475 00:19:20,420 --> 00:19:22,400 lo que hemos dicho antes, cuando 476 00:19:22,400 --> 00:19:24,180 tengo que 477 00:19:24,180 --> 00:19:26,339 juntar varias 478 00:19:26,339 --> 00:19:28,700 palabras para hacer 479 00:19:28,700 --> 00:19:30,859 un nombre, hago una cosa de ese estilo 480 00:19:30,859 --> 00:19:32,559 fecha de nacimiento 481 00:19:32,559 --> 00:19:34,960 pongo fecha, empiezo en minúscula 482 00:19:34,960 --> 00:19:38,339 Y cada palabra siguiente le pongo una mayúscula 483 00:19:38,339 --> 00:19:40,859 Otra opción podría ser esta 484 00:19:40,859 --> 00:19:45,339 Que Java lo reconoce 485 00:19:45,339 --> 00:19:48,480 Pero el estilo de Java no es esto 486 00:19:48,480 --> 00:19:50,319 No se suele hacer esto 487 00:19:50,319 --> 00:19:51,380 ¿Lo podéis hacer? 488 00:19:51,500 --> 00:19:51,640 Sí 489 00:19:51,640 --> 00:19:52,380 ¿Funciona? 490 00:19:52,460 --> 00:19:52,640 Sí 491 00:19:52,640 --> 00:19:54,740 ¿Se aconseja hacerlo? 492 00:19:54,900 --> 00:19:55,079 No 493 00:19:55,079 --> 00:19:57,740 ¿Dudas? 494 00:20:10,880 --> 00:20:13,339 Sin caracteres demoníacos 495 00:20:13,339 --> 00:20:16,079 Sin usar palabras reservadas 496 00:20:16,079 --> 00:20:17,859 estas las tenéis aquí, tanto 497 00:20:17,859 --> 00:20:20,299 os pasará alguna vez que pondréis 498 00:20:20,299 --> 00:20:21,640 un número raro 499 00:20:21,640 --> 00:20:24,059 y luego cuando me lo enseñáis, yo os diré 500 00:20:24,059 --> 00:20:26,180 mira, esto mejor que no lo pongas, este de aquí 501 00:20:26,180 --> 00:20:28,440 mira, se ha hecho esta variable, pero las cuesta mayúsculas 502 00:20:28,440 --> 00:20:30,240 debería ser minúsculas, y con el 503 00:20:30,240 --> 00:20:32,039 tiempo y con el pasar del tiempo, pues 504 00:20:32,039 --> 00:20:34,220 empezaréis a recordaros 505 00:20:34,220 --> 00:20:35,920 estas cosas, ¿vale? tampoco 506 00:20:35,920 --> 00:20:38,140 son tan complejas, es solo que 507 00:20:38,140 --> 00:20:40,140 lo oyes la primera vez y dices 508 00:20:40,140 --> 00:20:41,680 que me cuentas 509 00:20:41,680 --> 00:20:44,019 a la quinta vez que programáis, pues ya está 510 00:20:44,019 --> 00:20:45,259 ¿vale? 511 00:20:45,259 --> 00:20:46,799 Entonces, el nombre es 512 00:20:46,799 --> 00:20:49,420 Concepto de literal 513 00:20:49,420 --> 00:20:52,660 Cuando se habla de literal 514 00:20:52,660 --> 00:20:55,180 Se habla de un valor concreto 515 00:20:55,180 --> 00:20:56,480 ¿Vale? 516 00:20:57,579 --> 00:20:58,640 No una variable 517 00:20:58,640 --> 00:21:01,420 Sino uno de los posibles valores 518 00:21:01,420 --> 00:21:03,380 Que puedo guardar en una variable 519 00:21:03,380 --> 00:21:04,859 Por ejemplo 520 00:21:04,859 --> 00:21:06,240 Tres 521 00:21:06,240 --> 00:21:09,319 Entendido como el número tres 522 00:21:09,319 --> 00:21:10,339 El entero tres 523 00:21:10,339 --> 00:21:13,460 Es un literal de tipo int 524 00:21:13,460 --> 00:21:19,279 ¿Eh? 525 00:21:19,579 --> 00:21:23,400 Tres así 526 00:21:23,400 --> 00:21:25,220 ¿Entendido? 527 00:21:25,279 --> 00:21:27,119 Como el número entero tres 528 00:21:27,119 --> 00:21:29,339 No es un literal de tipo string 529 00:21:29,339 --> 00:21:31,539 Es un literal de tipo int 530 00:21:31,539 --> 00:21:38,150 La cadena gato 531 00:21:38,150 --> 00:21:44,710 Es un literal 532 00:21:44,710 --> 00:21:47,349 Es un valor concreto 533 00:21:47,349 --> 00:21:49,089 Pero no de tipo int 534 00:21:49,089 --> 00:21:51,049 Será de tipo string 535 00:21:51,049 --> 00:21:59,349 El carácter A 536 00:21:59,349 --> 00:22:00,549 Fijaos 537 00:22:00,549 --> 00:22:02,069 No doble comillas 538 00:22:02,069 --> 00:22:04,289 Sino comillas 539 00:22:04,289 --> 00:22:06,970 Es un literal 540 00:22:06,970 --> 00:22:08,630 De tipo char 541 00:22:08,630 --> 00:22:10,009 Carácter 542 00:22:10,009 --> 00:22:15,250 Porque es de tipo char 543 00:22:15,250 --> 00:22:16,329 No de tipo string 544 00:22:16,329 --> 00:22:18,609 Si pusiera doble comillas 545 00:22:18,609 --> 00:22:20,509 Sería un literal 546 00:22:20,509 --> 00:22:21,789 De tipo string 547 00:22:21,789 --> 00:22:27,369 9,993 548 00:22:27,369 --> 00:22:30,289 Es un literal 549 00:22:30,289 --> 00:22:32,450 Pero no de tipo int 550 00:22:32,450 --> 00:22:34,849 Tampoco de tipo char 551 00:22:34,849 --> 00:22:36,890 Tampoco de tipo string 552 00:22:36,890 --> 00:22:39,230 De tipo 553 00:22:39,230 --> 00:22:40,849 Double 554 00:22:40,849 --> 00:22:41,890 O float 555 00:22:41,890 --> 00:22:45,900 Cada tipo 556 00:22:45,900 --> 00:22:49,099 Tiene su conjunto de literales 557 00:22:49,099 --> 00:22:50,940 Los literales son 558 00:22:50,940 --> 00:22:53,240 Aquellos valores que yo puedo poner 559 00:22:53,240 --> 00:22:54,900 En un determinado tipo 560 00:22:54,900 --> 00:22:58,000 Si yo estoy hablando de enteros 561 00:22:58,000 --> 00:22:59,799 Todos los enteros son literales 562 00:22:59,799 --> 00:23:00,700 Para tipo entero 563 00:23:00,700 --> 00:23:03,180 Si yo estoy hablando de string 564 00:23:03,180 --> 00:23:05,819 Los literales de tipo string son todas las palabras 565 00:23:05,819 --> 00:23:09,740 Los literales 566 00:23:09,740 --> 00:23:11,819 Se pueden guardar en variables 567 00:23:11,819 --> 00:23:13,920 Cuyo tipo lo permita 568 00:23:13,920 --> 00:23:17,400 Para pensar 569 00:23:17,400 --> 00:23:30,500 Si yo quiero guardarla 570 00:23:30,500 --> 00:23:31,299 En una variable 571 00:23:31,299 --> 00:23:33,859 Esta variable, ¿qué tipo tiene que tener? 572 00:23:33,859 --> 00:23:35,440 Int 573 00:23:35,440 --> 00:23:38,970 ¿Todos de acuerdo? 574 00:23:41,869 --> 00:23:46,299 String 575 00:23:46,299 --> 00:23:51,069 Pregunta 576 00:23:51,069 --> 00:23:53,190 ¿Este es el número 3? 577 00:23:54,569 --> 00:23:55,410 No 578 00:23:55,410 --> 00:23:58,609 Esta es la palabra 579 00:23:58,609 --> 00:24:01,950 Formada por el símbolo 3 580 00:24:01,950 --> 00:24:19,900 Este es el carácter 3 581 00:24:19,900 --> 00:24:33,220 Es una letra 582 00:24:33,220 --> 00:24:36,579 Los string es una secuencia de char 583 00:24:36,579 --> 00:24:40,490 Sin complicarnos demasiado 584 00:24:40,490 --> 00:24:47,490 ¿Esto qué es? 585 00:24:48,869 --> 00:24:49,450 ¿Esto qué es? 586 00:24:50,269 --> 00:24:50,710 String 587 00:24:50,710 --> 00:24:53,809 ¿Y esto qué es? 588 00:24:55,470 --> 00:24:56,150 Error 589 00:24:56,150 --> 00:24:59,250 No existe el carácter 32 590 00:24:59,250 --> 00:25:01,150 Existe el carácter 3 591 00:25:01,150 --> 00:25:02,589 Existe el carácter 2 592 00:25:02,589 --> 00:25:10,140 Ya veremos 593 00:25:10,140 --> 00:25:13,920 Esto yo tendría 594 00:25:13,920 --> 00:25:15,700 El carácter 3 595 00:25:15,700 --> 00:25:17,279 Y el carácter 2 596 00:25:17,279 --> 00:25:19,940 Y si quiero los puedo juntar 597 00:25:19,940 --> 00:25:22,019 Y el resultado sería esta cosa allí 598 00:25:22,019 --> 00:25:23,140 Un string 599 00:25:23,140 --> 00:25:24,319 Pero no 600 00:25:24,319 --> 00:25:27,279 Por ahora me interesan los literales 601 00:25:27,279 --> 00:25:28,500 Estamos viendo los literales 602 00:25:28,500 --> 00:25:29,740 ¿Se entienden los literales? 603 00:25:30,940 --> 00:25:33,160 Entonces dependiendo de los tipos 604 00:25:33,160 --> 00:25:34,500 Que tenga, ¿Qué tipos hay? 605 00:25:34,539 --> 00:25:42,039 Lo veremos. Por ahora estamos trabajando con enteros, palabras y una letrerita. 606 00:25:42,519 --> 00:25:49,539 Bueno, no es una letra porque esto también es un char, y no es una letra, un símbolo. 607 00:25:51,460 --> 00:25:56,240 Estos se van de la mano porque esto es una secuencia de esto. 608 00:25:59,119 --> 00:26:04,359 Vale, fenomenal. 609 00:26:04,359 --> 00:26:08,079 Esto tiene también sentido 610 00:26:08,079 --> 00:26:08,559 Porque 611 00:26:08,559 --> 00:26:13,569 A que estos 612 00:26:13,569 --> 00:26:15,369 No sabéis hacer 613 00:26:15,369 --> 00:26:20,960 Estos 614 00:26:20,960 --> 00:26:23,460 No sabéis hacer 615 00:26:23,460 --> 00:26:30,640 ¿Esto qué es? 616 00:26:31,359 --> 00:26:31,960 Un resto 617 00:26:31,960 --> 00:26:33,339 ¿Cuánto vale? 618 00:26:33,640 --> 00:26:34,359 Uno 619 00:26:34,359 --> 00:26:36,720 Porque es el número tres 620 00:26:36,720 --> 00:26:38,460 Al que resto 621 00:26:38,460 --> 00:26:39,779 El número dos 622 00:26:39,779 --> 00:26:41,180 Resultado uno 623 00:26:41,180 --> 00:26:43,700 Es matemática, son números 624 00:26:43,700 --> 00:26:50,059 Esto es la palabra 3 menos la palabra 2 625 00:26:50,059 --> 00:26:53,599 Es como si os dijera gato menos cocodrilo 626 00:26:53,599 --> 00:27:04,589 No está definida la función menos, la operación menos entre palabras 627 00:27:04,589 --> 00:27:06,349 Por lo tanto, no 628 00:27:06,349 --> 00:27:10,630 Mismo dividido 629 00:27:10,630 --> 00:27:14,450 Casa dividido 630 00:27:14,450 --> 00:27:17,789 Coche 631 00:27:17,789 --> 00:27:18,650 ¿Cuánto hace? 632 00:27:19,970 --> 00:27:21,730 No sé, no existe 633 00:27:21,730 --> 00:27:25,470 No, me aventuro en el más 634 00:27:25,470 --> 00:27:26,869 Porque el más sí existe 635 00:27:26,869 --> 00:27:28,009 Pero lo veremos más adelante 636 00:27:28,009 --> 00:27:31,539 ¿Dudas? 637 00:27:42,299 --> 00:27:42,859 ¿Dudas? 638 00:27:44,400 --> 00:27:45,619 ¿Se entiende que es un literal? 639 00:27:46,079 --> 00:27:47,279 Los literales me sirven para 640 00:27:47,279 --> 00:27:49,200 Escoger los valores correctos 641 00:27:49,200 --> 00:27:51,259 Para ponerlo dentro de las variables 642 00:27:51,259 --> 00:27:53,740 Una vez que he definido el tipo de una variable 643 00:27:53,740 --> 00:27:56,279 Dentro podrán ir solo literales 644 00:27:56,279 --> 00:27:56,900 De ese tipo 645 00:27:56,900 --> 00:27:59,240 ¿Justo? 646 00:28:01,559 --> 00:28:02,119 ¿Dudas? 647 00:28:03,680 --> 00:28:04,599 Entonces, variables 648 00:28:04,599 --> 00:28:05,799 ¿Qué tipos hay? 649 00:28:08,019 --> 00:28:09,160 Vamos a ver 650 00:28:09,160 --> 00:28:11,970 Así 651 00:28:11,970 --> 00:28:15,710 Boolean 652 00:28:15,710 --> 00:28:16,950 ¿Vale? 653 00:28:17,069 --> 00:28:19,069 Que será Boolean 654 00:28:19,069 --> 00:28:20,509 En Java 655 00:28:20,509 --> 00:28:24,670 Si yo creo una variable boolean 656 00:28:24,670 --> 00:28:28,250 Dentro pueden ir solo dos valores posibles 657 00:28:28,250 --> 00:28:31,069 Verdadero o falso 658 00:28:31,069 --> 00:28:36,490 Luego como se define un verdadero o falso 659 00:28:36,490 --> 00:28:38,410 Depende del lenguaje de programación 660 00:28:38,410 --> 00:28:40,109 En C por ejemplo falso es cero 661 00:28:40,109 --> 00:28:42,609 Y cualquier otro número es verdadero 662 00:28:42,609 --> 00:28:44,410 Pero eso no me interesa 663 00:28:44,410 --> 00:28:46,369 Yo cuando voy a trabajar aquí 664 00:28:46,369 --> 00:28:50,049 Solo usaré dos literales que son true 665 00:28:50,049 --> 00:28:51,630 o false 666 00:28:51,630 --> 00:28:54,470 esos son los únicos dos literales 667 00:28:54,470 --> 00:28:55,289 que puedo utilizar 668 00:28:55,289 --> 00:28:59,970 si yo creo una variable 669 00:28:59,970 --> 00:29:01,910 boolean 670 00:29:01,910 --> 00:29:03,150 en java 671 00:29:03,150 --> 00:29:05,349 ¿cuánta memoria me ocupa? 672 00:29:06,490 --> 00:29:07,130 un byte 673 00:29:07,130 --> 00:29:09,009 ¿vale? 674 00:29:09,509 --> 00:29:10,250 8 bits 675 00:29:10,250 --> 00:29:14,549 cada vez que yo hago boolean x es igual a true 676 00:29:14,549 --> 00:29:16,029 estoy ocupando 8 bits 677 00:29:16,029 --> 00:29:18,670 ¿lo das? 678 00:29:20,049 --> 00:29:39,650 Está claro que esto puede ser más complejo. El booleano viene del álgebra de Boole, que es toda la álgebra que tiene que ver con condiciones, con sentencias que sean verdaderas o falsas. 679 00:29:39,650 --> 00:29:47,549 Por ejemplo, tres menores que siete, este señor de aquí, ¿qué es? 680 00:29:48,349 --> 00:29:51,890 El resultado de esta cosa aquí, ¿qué es? 681 00:29:52,230 --> 00:29:52,450 True. 682 00:29:56,640 --> 00:29:59,880 O sea, que esta es una expresión booleana. 683 00:30:00,880 --> 00:30:10,339 El resultado de, mientras esta de aquí es una operación algébrica, tres más siete, ¿vale? 684 00:30:10,339 --> 00:30:12,460 3 menor que 7 685 00:30:12,460 --> 00:30:15,119 es booleana 686 00:30:15,119 --> 00:30:17,579 esto devuelve un entero 687 00:30:17,579 --> 00:30:18,539 una operación 688 00:30:18,539 --> 00:30:21,420 este de aquí devuelve si es verdadero o falso 689 00:30:21,420 --> 00:30:23,640 si 3 es menor que 7 690 00:30:23,640 --> 00:30:24,259 será true 691 00:30:24,259 --> 00:30:26,900 si 3 no es menor que 7 692 00:30:26,900 --> 00:30:27,579 será false 693 00:30:27,579 --> 00:30:30,640 entonces 694 00:30:30,640 --> 00:30:33,299 en las variables booleanas 695 00:30:33,299 --> 00:30:35,039 yo podré guardar 696 00:30:35,039 --> 00:30:36,039 cualquiera 697 00:30:36,039 --> 00:30:38,839 que sea una expresión booleana 698 00:30:38,839 --> 00:30:40,519 Cuyo resultado sea true o false 699 00:30:40,519 --> 00:30:43,319 No solo true o false como literal 700 00:30:43,319 --> 00:30:45,599 Pero esto más adelante 701 00:30:45,599 --> 00:30:48,740 Por ahora estamos viendo los tipos 702 00:30:48,740 --> 00:30:50,680 Vamos pasito a pasito 703 00:30:50,680 --> 00:30:52,319 Entonces está el tipo booleano 704 00:30:52,319 --> 00:30:54,539 Todos de acuerdo con el tipo booleano 705 00:30:54,539 --> 00:30:57,640 Idea de donde se puede utilizar 706 00:30:57,640 --> 00:30:58,500 El tipo booleano 707 00:30:58,500 --> 00:31:03,029 ¿Os acordáis todas las veces que 708 00:31:03,029 --> 00:31:05,890 En nuestros pseudocódigos o en nuestros algoritmos 709 00:31:05,890 --> 00:31:07,109 Hemos dicho si 710 00:31:07,109 --> 00:31:09,430 Esto es verdadero 711 00:31:09,430 --> 00:31:11,089 y entonces salgo 712 00:31:11,089 --> 00:31:13,289 y está aquí lo que va dentro 713 00:31:13,289 --> 00:31:14,650 del sí 714 00:31:14,650 --> 00:31:15,710 que será 715 00:31:15,710 --> 00:31:20,910 pero lo veremos 716 00:31:20,910 --> 00:31:25,130 tipo booleano, verdadero o falso 717 00:31:25,130 --> 00:31:27,769 tipo carácter 718 00:31:27,769 --> 00:31:29,430 es un carácter 719 00:31:29,430 --> 00:31:31,849 singolo, una letra, un número, un símbolo 720 00:31:31,849 --> 00:31:33,769 o cualquier cosa de ese tipo 721 00:31:33,769 --> 00:31:35,109 en Java 722 00:31:35,109 --> 00:31:36,970 es char 723 00:31:36,970 --> 00:31:39,089 vale, y ocupa 724 00:31:39,089 --> 00:31:40,569 dos bytes 725 00:31:40,569 --> 00:31:43,450 16 bits, es decir 726 00:31:43,450 --> 00:31:44,490 que se pueden 727 00:31:44,490 --> 00:31:47,109 tratar 728 00:31:47,109 --> 00:31:49,309 se pueden trabajar con máximo 729 00:31:49,309 --> 00:31:51,490 2 elevado a la 16 730 00:31:51,490 --> 00:31:53,589 posibles caracteres 731 00:31:53,589 --> 00:31:54,170 distintos 732 00:31:54,170 --> 00:31:57,269 yo tendré tiras 733 00:31:57,269 --> 00:31:58,470 de 16 bits 734 00:31:58,470 --> 00:32:00,990 secuencias de 16 bits 735 00:32:00,990 --> 00:32:03,450 que interpretados por el 736 00:32:03,450 --> 00:32:05,190 ordenador me darán 737 00:32:05,190 --> 00:32:07,569 un determinado carácter 738 00:32:07,569 --> 00:32:08,809 por ejemplo 739 00:32:08,809 --> 00:32:10,789 no es verdad, me lo invento 740 00:32:10,789 --> 00:32:13,309 el número, la secuencia 741 00:32:13,309 --> 00:32:42,880 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, es la letra A mayúscula, ¿sí?, y no hay un máximo, vale, estos, cuando yo estoy, los booleanos hemos dicho True Force, los carácteres son estos que hago con la comilla simple, con el apóstrofe, apóstrofe, apóstrofe, ¿vale?, 742 00:32:42,880 --> 00:32:45,440 Luego 743 00:32:45,440 --> 00:32:47,480 Tipos 744 00:32:47,480 --> 00:32:49,380 Otro tipo, byte 745 00:32:49,380 --> 00:32:51,400 Un byte 746 00:32:51,400 --> 00:32:54,440 Es un número de 8 bits 747 00:32:54,440 --> 00:33:00,720 Los bytes, este tipo de aquí 748 00:33:00,720 --> 00:33:02,259 Nosotros lo veremos muy poco 749 00:33:02,259 --> 00:33:04,420 Hasta final de curso quizás 750 00:33:04,420 --> 00:33:05,940 Salen 751 00:33:05,940 --> 00:33:08,680 Cuando yo empiezo a tener que hacer cosas 752 00:33:08,680 --> 00:33:10,440 Como leer ficheros 753 00:33:10,440 --> 00:33:13,059 Entonces lo voy leyendo byte por byte 754 00:33:13,059 --> 00:33:16,579 O leer cosas que llegan desde internet 755 00:33:16,579 --> 00:33:18,099 Por la tarjeta de red 756 00:33:18,099 --> 00:33:20,259 Entonces voy leyendo byte por byte 757 00:33:20,259 --> 00:33:25,420 Pero nosotros lo utilizaremos recientemente 758 00:33:25,420 --> 00:33:28,700 Sepáis que los bytes son grupos de 8 bits 759 00:33:28,700 --> 00:33:31,400 Y que tienen una representación numérica 760 00:33:31,400 --> 00:33:33,279 Yo puedo pillar estos 8 bits y decir 761 00:33:33,279 --> 00:33:34,740 Pero ¿cuánto vales tú? 762 00:33:35,539 --> 00:33:37,079 El discurso es que con 8 bits 763 00:33:37,079 --> 00:33:39,839 Puedes hacer máximo 256 valores 764 00:33:39,839 --> 00:33:45,160 Desde menos 128 hasta más 127 765 00:33:45,160 --> 00:33:55,160 Por ejemplo, un byte podría ser un tipo de dato que utilizo para una edad 766 00:33:55,160 --> 00:34:00,660 Porque gente que supera los 127 años, pues son pocos 767 00:34:00,660 --> 00:34:07,200 Si os fijáis, son 8 bits 768 00:34:07,200 --> 00:34:12,480 Serían 2 elevado a la 8 769 00:34:12,480 --> 00:34:15,320 2, 3, 4, 5, 6, 7 770 00:34:15,320 --> 00:34:18,000 4 y 4, 8 bits 771 00:34:18,000 --> 00:34:20,639 Aquí van ceros y unos 772 00:34:20,639 --> 00:34:23,039 Son 2 elevado a la 8 773 00:34:23,039 --> 00:34:27,059 Que es 256 posibles números 774 00:34:27,059 --> 00:34:29,639 Pero el primer bit este de aquí 775 00:34:29,639 --> 00:34:32,199 Me dice si es positivo o negativo 776 00:34:32,199 --> 00:34:35,300 Si este es 1, es positivo 777 00:34:35,300 --> 00:34:37,380 Si es de 0 es negativo 778 00:34:37,380 --> 00:34:40,139 Por lo tanto 779 00:34:40,139 --> 00:34:42,000 Los números que puede hacer 780 00:34:42,000 --> 00:34:44,199 En realidad son solo 7 bits 781 00:34:44,199 --> 00:34:46,739 Son 7 bits de números 782 00:34:46,739 --> 00:34:48,239 Más si es positivo o negativo 783 00:34:48,239 --> 00:34:49,860 Y por lo tanto 784 00:34:49,860 --> 00:34:51,260 2 a la 7 son 785 00:34:51,260 --> 00:34:52,639 128 786 00:34:52,639 --> 00:34:56,719 De 0 a 127 787 00:34:56,719 --> 00:34:58,179 Números positivos 788 00:34:58,179 --> 00:35:01,039 Y de menos 1 a menos 128 789 00:35:01,039 --> 00:35:01,920 Números negativos 790 00:35:01,920 --> 00:35:13,860 Y si este rango es demasiado pequeño 791 00:35:13,860 --> 00:35:16,059 Y necesito algo un poquito más grande 792 00:35:16,059 --> 00:35:18,599 Pues tengo los tipos short 793 00:35:18,599 --> 00:35:21,280 Que son números un poquito más grandes 794 00:35:21,280 --> 00:35:23,480 Porque en vez de ocupar un solo byte 795 00:35:23,480 --> 00:35:25,800 Ocupan dos bytes 796 00:35:25,800 --> 00:35:26,960 En memoria 797 00:35:26,960 --> 00:35:28,619 En vez de tener 8 bits 798 00:35:28,619 --> 00:35:30,260 Tengo 16 bits 799 00:35:30,260 --> 00:35:31,960 Del que el primero 800 00:35:31,960 --> 00:35:34,380 Es el que me dice si es positivo o negativo 801 00:35:34,380 --> 00:35:36,199 Y todos los demás 15 802 00:35:36,199 --> 00:35:38,900 O sea, 2 a la 15 son los posibles valores 803 00:35:38,900 --> 00:35:40,820 Por lo tanto, ahora voy de 804 00:35:40,820 --> 00:35:43,280 Menos 32.768 805 00:35:43,280 --> 00:35:46,599 Hasta 32.767 806 00:35:46,599 --> 00:35:48,739 Este es el rango 807 00:35:48,739 --> 00:35:49,900 De números 808 00:35:49,900 --> 00:36:02,289 En serio, si hago dos bytes 809 00:36:02,289 --> 00:36:04,090 Un byte más otro byte 810 00:36:04,090 --> 00:36:06,030 Y uno es 127 y otro es 127 811 00:36:06,030 --> 00:36:06,590 ¿Qué pasa? 812 00:36:11,710 --> 00:36:14,250 Porque si tú marcas 813 00:36:14,250 --> 00:36:15,510 Un 1 aquí 814 00:36:15,510 --> 00:36:18,070 Porque el 0 815 00:36:18,070 --> 00:36:20,090 Es considerado como positivo 816 00:36:20,090 --> 00:36:22,070 Entonces vas de 0 817 00:36:22,070 --> 00:36:24,150 A 127, son 128 818 00:36:24,150 --> 00:36:26,030 Todos son 256 819 00:36:26,030 --> 00:36:28,110 La mitad serían 128 valores 820 00:36:28,110 --> 00:36:28,949 ¿Vale? 821 00:36:29,309 --> 00:36:32,610 En positivo tienes de 0 a 127 822 00:36:32,610 --> 00:36:34,929 Porque son 128 valores 823 00:36:34,929 --> 00:36:35,869 Si tú contas 824 00:36:35,869 --> 00:36:37,670 0, 1, 2, 3, 4 825 00:36:37,670 --> 00:36:41,050 Cuando llegas a 127 has contado 128 valores posibles 826 00:36:41,050 --> 00:36:42,409 En negativo 827 00:36:42,409 --> 00:36:43,409 No empieza de 0 828 00:36:43,409 --> 00:36:44,670 Empieza de menos 1 829 00:36:44,670 --> 00:36:46,690 Entonces acaba en menos 127 830 00:36:46,690 --> 00:36:53,469 Como es implementado 831 00:36:53,469 --> 00:36:53,949 No lo sé 832 00:36:53,949 --> 00:36:57,469 Pero el discurso es que un bit 833 00:36:57,469 --> 00:36:59,730 Te está diciendo si es positivo o negativo 834 00:36:59,730 --> 00:37:01,590 Probablemente el 0 835 00:37:01,590 --> 00:37:03,329 Imagínate, me lo invento 836 00:37:03,329 --> 00:37:04,730 El 0 son todos 0 837 00:37:04,730 --> 00:37:07,809 Este es 0 838 00:37:07,809 --> 00:37:09,650 ¿Quieres hacer 127? 839 00:37:10,369 --> 00:37:10,670 Es 840 00:37:10,670 --> 00:37:11,849 Esto 841 00:37:11,849 --> 00:37:13,969 127 842 00:37:13,969 --> 00:37:16,250 ¿Quieres hacer menos 1? 843 00:37:16,690 --> 00:37:17,570 1 844 00:37:17,570 --> 00:37:23,630 o será 845 00:37:23,630 --> 00:37:25,510 así, será menos 1 846 00:37:25,510 --> 00:37:26,329 no sé 847 00:37:26,329 --> 00:37:29,590 y entonces con esto puedes llegar a 848 00:37:29,590 --> 00:37:31,849 que será menos 128 849 00:37:31,849 --> 00:37:34,150 porque no se corresponde esto con el 0 850 00:37:34,150 --> 00:37:35,789 con este de aquí le restas 1 851 00:37:35,789 --> 00:37:36,550 no sé si lo ves 852 00:37:36,550 --> 00:37:37,650 así 853 00:37:37,650 --> 00:37:41,269 o al revés, da igual, al fin y al cabo son 854 00:37:41,269 --> 00:37:41,909 fáciles 855 00:37:41,909 --> 00:37:46,030 son binarios, si esto 1 y este 0 856 00:37:46,030 --> 00:37:48,090 los cambias y dices que el 0 857 00:37:48,090 --> 00:37:50,269 lo haces así, o sea, como lo decía 858 00:37:50,269 --> 00:37:52,409 yo antes, no lo sé cómo está implementado, me da igual 859 00:37:52,409 --> 00:37:54,289 ¿vale? el rango es este 860 00:37:54,289 --> 00:37:55,210 ¿sí? 861 00:37:56,570 --> 00:37:58,190 entonces, necesito un rango 862 00:37:58,190 --> 00:37:59,530 un pollo más grande, voy al short 863 00:37:59,530 --> 00:38:02,269 necesito un rango todavía más grande 864 00:38:02,269 --> 00:38:04,329 porque estos números son demasiado pequeños 865 00:38:04,329 --> 00:38:06,110 por ejemplo, estoy hablando de mi sueldo 866 00:38:06,110 --> 00:38:09,050 entonces, 32.768 euros 867 00:38:09,050 --> 00:38:10,110 al mes se me quedan 868 00:38:10,110 --> 00:38:12,130 cortos, pues entonces voy al 869 00:38:12,130 --> 00:38:12,389 int 870 00:38:12,389 --> 00:38:15,809 ¿vale? porque menos de un millón al mes 871 00:38:15,809 --> 00:38:17,190 rechazáis el trabajo 872 00:38:17,190 --> 00:38:20,289 Aquí está 873 00:38:20,289 --> 00:38:21,010 ¿Vale? 874 00:38:21,590 --> 00:38:23,869 Puntito, puntito, puntito 875 00:38:23,869 --> 00:38:24,889 Dos mil millones 876 00:38:24,889 --> 00:38:27,110 Desde menos dos mil millones 877 00:38:27,110 --> 00:38:28,909 A más dos mil millones 878 00:38:28,909 --> 00:38:31,050 Dos a la treinta y dos 879 00:38:31,050 --> 00:38:31,929 ¿Vale? 880 00:38:32,590 --> 00:38:34,969 Del que el primero es positivo y negativo 881 00:38:34,969 --> 00:38:36,909 Y dos a la treinta y uno 882 00:38:36,909 --> 00:38:38,369 Es este número de aquí 883 00:38:38,369 --> 00:38:41,469 ¿Dudas? 884 00:38:44,880 --> 00:38:46,340 Y que esto se me queda 885 00:38:46,340 --> 00:38:48,800 Se me queda pequeño porque ya son 886 00:38:48,800 --> 00:38:50,079 Un par de años que trabajo 887 00:38:50,079 --> 00:38:52,840 Entonces dos mil millones de euros al mes 888 00:38:52,840 --> 00:38:53,679 Es poco 889 00:38:53,679 --> 00:38:55,239 Pues voy a long 890 00:38:55,239 --> 00:38:58,079 Long son siempre enteros 891 00:38:58,079 --> 00:39:00,019 Estamos siempre hablando de enteros 892 00:39:00,019 --> 00:39:02,760 Pero ahora son enteros de ocho bits 893 00:39:02,760 --> 00:39:04,360 Ocho bytes, perdón 894 00:39:04,360 --> 00:39:06,039 O sea, ocho por ocho 895 00:39:06,039 --> 00:39:08,239 Sesenta y cuatro bits 896 00:39:08,239 --> 00:39:10,420 Dos elevado a sesenta y cuatro 897 00:39:10,420 --> 00:39:12,119 Números bastante grandes 898 00:39:12,119 --> 00:39:20,139 Oye, ¿por qué todo esto? 899 00:39:21,260 --> 00:39:21,940 Nosotros 900 00:39:21,940 --> 00:39:23,739 Normalmente usamos los bits 901 00:39:23,739 --> 00:39:26,539 En determinados casos 902 00:39:26,539 --> 00:39:28,679 En que vamos a números muy grandes 903 00:39:28,679 --> 00:39:30,519 Imaginaos que tenéis que contar 904 00:39:30,519 --> 00:39:33,019 Milisegundos o nanosegundos 905 00:39:33,019 --> 00:39:34,579 De una operación y cosas por el estilo 906 00:39:34,579 --> 00:39:36,179 Entonces salen números muy grandes 907 00:39:36,179 --> 00:39:38,119 Pues entonces puede llegar a un long 908 00:39:38,119 --> 00:39:40,179 ¿Sí? Ahora 909 00:39:40,179 --> 00:39:42,519 ¿Por qué uso int, short, byte 910 00:39:42,519 --> 00:39:43,480 O otras cosas? 911 00:39:43,980 --> 00:39:46,420 Pues tenéis que tener en cuenta que en algunas 912 00:39:46,420 --> 00:39:48,400 Situaciones, a lo mejor 913 00:39:48,400 --> 00:39:49,900 Lo que ocupo en memoria 914 00:39:49,900 --> 00:39:52,360 Es relevante, en un ordenador 915 00:39:52,360 --> 00:40:14,380 A lo mejor no, pero si estoy en un cacharro wearable que tiene muy poca memoria y cualquier memoria que uso tiene que ser optimizada al máximo y solo uso números de este rango, por alguna razón, no tiene sentido que ponga un int y ocupe 4 bytes por cada variable que uso cuando solo necesito un byte. 916 00:40:14,380 --> 00:40:19,119 En una variable de tipo int 917 00:40:19,119 --> 00:40:22,480 Cabrían hasta 4 variables de tipo val 918 00:40:22,480 --> 00:40:40,079 2 a la 63 son 919 00:40:40,079 --> 00:40:42,960 2 a la 64 posibles valores 920 00:40:42,960 --> 00:40:45,679 Pero van de menos a más 921 00:40:45,679 --> 00:40:48,360 Si tú contas desde menos este número 922 00:40:48,360 --> 00:40:50,460 A más este número 923 00:40:50,460 --> 00:40:53,940 Te encuentras 2 a la 64 valores distintos 924 00:40:53,940 --> 00:40:55,760 Pero lo que se usa 925 00:40:55,760 --> 00:40:57,019 Es el primer bit 926 00:40:57,019 --> 00:40:59,000 Se usa para saber si es positivo o negativo 927 00:40:59,000 --> 00:41:01,440 Entonces en vez de llegar al extremo máximo 928 00:41:01,440 --> 00:41:03,079 Lo que estás haciendo es este número 929 00:41:03,079 --> 00:41:05,559 Trasladarlo y pillar un poco negativo 930 00:41:05,559 --> 00:41:06,099 Un poco positivo 931 00:41:06,099 --> 00:41:09,360 ¿Dudas? 932 00:41:10,619 --> 00:41:12,960 Todo esto son enteros 933 00:41:12,960 --> 00:41:14,539 ¿Si? 934 00:41:15,179 --> 00:41:17,000 Y si quiero con la goma 935 00:41:17,000 --> 00:41:18,440 Pues tengo 936 00:41:18,440 --> 00:41:21,059 Estos dos señores de aquí 937 00:41:21,059 --> 00:41:23,320 Float y double 938 00:41:23,320 --> 00:41:24,980 Float 939 00:41:24,980 --> 00:41:30,480 Va de menos 3.4 por 10 a la 38 940 00:41:30,480 --> 00:41:33,300 Hasta 3.4 por 10 a la 38 941 00:41:33,300 --> 00:41:34,599 ¿Vale? 942 00:41:35,340 --> 00:41:36,719 Mientras que el double 943 00:41:36,719 --> 00:41:39,579 Double significa doble precisión 944 00:41:39,579 --> 00:41:39,940 ¿Vale? 945 00:41:40,000 --> 00:41:41,960 Son números más precisos 946 00:41:41,960 --> 00:41:44,199 Puedo tener más decimales 947 00:41:44,199 --> 00:41:46,139 Va a esta cosa de aquí 948 00:41:46,139 --> 00:41:47,719 Y esta cosa de aquí 949 00:41:47,719 --> 00:41:49,780 El discurso es que 950 00:41:49,780 --> 00:41:52,440 Mientras con los enteros 951 00:41:52,440 --> 00:41:54,039 Más o menos lo podemos entender 952 00:41:54,039 --> 00:41:55,360 Si pensamos en binario 953 00:41:55,360 --> 00:41:57,460 Con esto 954 00:41:57,460 --> 00:42:00,699 Es un poco distinto 955 00:42:00,699 --> 00:42:01,679 Porque esto se divide 956 00:42:01,679 --> 00:42:04,079 Una parte de byte que son un exponente 957 00:42:04,079 --> 00:42:06,219 Y otra parte de byte que son 958 00:42:06,219 --> 00:42:08,179 La base 959 00:42:08,179 --> 00:42:09,420 Y entonces 960 00:42:09,420 --> 00:42:12,139 Estos números en realidad por dentro 961 00:42:12,139 --> 00:42:13,980 Son representados como un número 962 00:42:13,980 --> 00:42:15,579 Elevado a no se cuanto 963 00:42:15,579 --> 00:42:17,860 Entonces me permite hacer 964 00:42:17,860 --> 00:42:19,940 Más combinaciones pero es más complejo 965 00:42:19,940 --> 00:42:20,880 De entender como funciona 966 00:42:20,880 --> 00:42:23,380 Pero me da igual, lo hace Java 967 00:42:23,380 --> 00:42:26,500 A mí me da igual, yo escribo 3.7 968 00:42:26,500 --> 00:42:27,780 Y le digo que es un float 969 00:42:27,780 --> 00:42:29,480 Y yo lo único que me tengo que encargar 970 00:42:29,480 --> 00:42:32,400 Es que no puedo poner un 3.7 dentro de un long 971 00:42:32,400 --> 00:42:35,219 Si yo creo una variable long 972 00:42:35,219 --> 00:42:36,820 Y le pongo dentro 3.7 973 00:42:36,820 --> 00:42:37,480 Me dice no 974 00:42:37,480 --> 00:42:41,510 Dudas 975 00:42:41,510 --> 00:42:44,349 Preguntas 976 00:42:44,349 --> 00:42:48,349 Estos de aquí 977 00:42:48,349 --> 00:42:50,170 Y posiblemente algunos más 978 00:42:50,170 --> 00:42:51,869 No lo sé, diría que no 979 00:42:51,869 --> 00:42:53,789 Pero puede ser que algunos se me hayan colado 980 00:42:53,789 --> 00:42:58,750 Son lo que se llaman tipos de datos primitivos 981 00:42:58,750 --> 00:43:06,050 Todas estas son palabras reservadas 982 00:43:06,050 --> 00:43:09,869 Byte, boolean, int, long 983 00:43:09,869 --> 00:43:12,090 No lo puedo utilizar como nombres 984 00:43:12,090 --> 00:43:15,849 Ni de variable, ni de método, ni de nada 985 00:43:15,849 --> 00:43:22,369 Y se llaman tipos de datos primitivos porque no son objetos 986 00:43:22,369 --> 00:43:24,909 Son tipos de datos básicos 987 00:43:24,909 --> 00:43:30,750 Veremos en un futuro que yo puedo crear variables de tipo objeto 988 00:43:30,750 --> 00:43:33,889 Entonces eso no son tipos de datos primitivos 989 00:43:33,889 --> 00:43:35,750 Por ahora, olvidaos esto 990 00:43:35,750 --> 00:43:39,349 Y mantenéos sobre el concepto que estos son los tipos de datos primitivos 991 00:43:39,349 --> 00:43:40,409 Los tengo que conocer 992 00:43:40,409 --> 00:43:42,889 El viernes más