1 00:00:00,430 --> 00:00:08,470 Vale, entonces, voy a grabar esta clase, por lo tanto, si habláis, me dais el consentimiento a grabar vuestra voz. 2 00:00:08,990 --> 00:00:15,609 Dicho esto, vamos a ver hoy un concepto muy importante de la programación. 3 00:00:15,810 --> 00:00:20,910 Este concepto es relativamente sencillo, ¿vale? No es un concepto muy complejo. 4 00:00:21,350 --> 00:00:28,730 Pero, para aquellos de vosotros que no han programado nunca, puede que sea un poco novedoso. 5 00:00:28,730 --> 00:00:49,549 Y la forma básica, así, cuando esto se complica un poquito y se empiezan a hacer un uso un poquito más avanzado de variables, o se empiezan a poner, spoiler del futuro, objetos dentro de las variables, vosotros empezáis a sufrir y perder el concepto de variable, ¿vale? 6 00:00:49,549 --> 00:00:53,530 Entonces, intentad escuchar y aprender. 7 00:00:53,869 --> 00:00:58,109 Y en cualquier momento, por favor, si no entendéis o no es claro lo que se está diciendo, 8 00:00:58,549 --> 00:01:04,230 paradme y yo, encantado, me invento otro ejemplo o intento deciros lo de atrás. 9 00:01:05,250 --> 00:01:08,769 Entonces, ¿qué es una variable? 10 00:01:08,930 --> 00:01:12,409 La variable son representaciones simbólicas de los datos. 11 00:01:13,170 --> 00:01:17,909 Son una zona de memoria a la que asignamos un nombre, un valor y un tipo. 12 00:01:17,909 --> 00:01:33,290 Es decir que en vez de tener el número 5 o el número 72, yo tendré una representación simbólica de este número. 13 00:01:33,670 --> 00:01:38,370 Que no sé exactamente qué número es porque puede variar. 14 00:01:38,950 --> 00:01:45,390 Imaginaos un programa que pide al usuario cuántos años tienes y el usuario pone un número. 15 00:01:45,390 --> 00:01:48,109 yo no sé qué número va a poner 16 00:01:48,109 --> 00:01:49,329 yo como programador 17 00:01:49,329 --> 00:01:51,209 sé que me dará un número 18 00:01:51,209 --> 00:01:53,310 pero no sé qué número me va a poner 19 00:01:53,310 --> 00:01:55,709 entonces, para poder usar 20 00:01:55,709 --> 00:01:57,010 ese número después 21 00:01:57,010 --> 00:01:59,430 y imprimir, muy bien, tienes 22 00:01:59,430 --> 00:02:01,430 tu número, años 23 00:02:01,430 --> 00:02:03,969 pues yo necesito este número 24 00:02:03,969 --> 00:02:05,709 llamarlo de alguna forma 25 00:02:05,709 --> 00:02:08,129 porque no es el número 7, no es el número 24 26 00:02:08,129 --> 00:02:09,629 no es 27 00:02:09,629 --> 00:02:10,750 es un número 28 00:02:10,750 --> 00:02:13,789 entonces le tengo que dar un nombre 29 00:02:13,789 --> 00:02:21,189 una representación simbólica. Entonces, por ejemplo, lo llamaré edad. A este punto yo le diré al usuario 30 00:02:21,189 --> 00:02:28,990 dame tu número, dame tu edad, el valor que me da él, veremos cómo, de alguna forma mágica, lo guardaré 31 00:02:28,990 --> 00:02:37,110 en esta variable, en esta zona de memoria, en esta representación de este dato, y a partir de ahora 32 00:02:37,110 --> 00:02:39,389 en mi programa, cada vez que yo usaré 33 00:02:39,389 --> 00:02:40,270 la palabra, o sea, 34 00:02:40,949 --> 00:02:42,629 el identificador, edad, 35 00:02:43,169 --> 00:02:45,310 no me estoy refiriendo a un número concreto, 36 00:02:45,430 --> 00:02:47,330 pero sí me estoy refiriendo a aquel número 37 00:02:47,330 --> 00:02:48,930 que el usuario me ha dado. 38 00:02:51,120 --> 00:02:52,219 ¿Sí? Es, 39 00:02:52,340 --> 00:02:54,680 en un cierto sentido, sí parecido 40 00:02:54,680 --> 00:02:55,819 a la X 41 00:02:55,819 --> 00:02:58,520 de las funciones que habéis visto 42 00:02:58,520 --> 00:02:59,900 alguna vez en matemática, 43 00:03:00,300 --> 00:03:02,520 en bachillerato, barra, no sé si cuarta es la S, 44 00:03:02,699 --> 00:03:04,599 cuando haces F de X es igual 45 00:03:04,599 --> 00:03:06,280 a X más 5. 46 00:03:06,780 --> 00:03:08,240 ¿Vale? ¿Cuánto vale X? 47 00:03:08,419 --> 00:03:10,360 lo sé 48 00:03:10,360 --> 00:03:12,360 es un valor 49 00:03:12,360 --> 00:03:14,300 que luego ya asociaré 50 00:03:14,300 --> 00:03:16,139 y por x es igual a 1 51 00:03:16,139 --> 00:03:17,939 pues mi función vale 6 52 00:03:17,939 --> 00:03:19,599 porque 1 más 5 es 6 53 00:03:19,599 --> 00:03:20,819 por x es 3 54 00:03:20,819 --> 00:03:22,560 mi función valdrá 8 55 00:03:22,560 --> 00:03:24,060 porque 5 más 3 es 8 56 00:03:24,060 --> 00:03:26,039 pero como yo no sé 57 00:03:26,039 --> 00:03:27,500 qué número me vas a pedir 58 00:03:27,500 --> 00:03:28,900 pues entonces pongo x 59 00:03:28,900 --> 00:03:31,199 x es una representación simbólica 60 00:03:31,199 --> 00:03:31,860 de ese dato 61 00:03:31,860 --> 00:03:34,400 ¿se entiende? 62 00:03:35,400 --> 00:03:35,639 vale 63 00:03:35,639 --> 00:03:36,479 ahora 64 00:03:36,479 --> 00:03:38,259 más informáticamente 65 00:03:38,259 --> 00:03:46,939 la variable es un trozo de memoria nosotros tenemos la ram vale tenemos dos memorias en 66 00:03:46,939 --> 00:03:51,900 el ordenador la rama y el disco duro disco duro sirve para almacenar las cosas que cuando apagó 67 00:03:51,900 --> 00:03:56,360 el ordenador el orden siendo sigan allí mientras la rama es una cosa que cuando apago el ordenador 68 00:03:56,360 --> 00:04:02,439 se borra entera y cuando la diciendo copio allí los datos porque la rama es más rápida entonces 69 00:04:02,439 --> 00:04:04,580 cuando voy a utilizar la RAM, mi ordenador 70 00:04:04,580 --> 00:04:05,319 funciona mejor. 71 00:04:06,840 --> 00:04:08,099 Entonces, nosotros 72 00:04:08,099 --> 00:04:08,979 hasta 73 00:04:08,979 --> 00:04:10,919 mayo 74 00:04:10,919 --> 00:04:14,719 no vamos a usar la memoria secundaria, 75 00:04:14,780 --> 00:04:16,319 no vamos a usar la memoria 76 00:04:16,319 --> 00:04:16,920 de disco. 77 00:04:18,160 --> 00:04:20,339 Aparte que para guardar los puntos Java. 78 00:04:20,920 --> 00:04:22,079 No accederemos a fiches. 79 00:04:24,120 --> 00:04:26,240 Sin embargo, sí vamos a usar la memoria 80 00:04:26,240 --> 00:04:28,300 principal, la memoria RAM, que es 81 00:04:28,300 --> 00:04:29,600 donde se guardan 82 00:04:29,600 --> 00:04:32,180 estas variables. Cuando yo arranco 83 00:04:32,180 --> 00:04:38,899 el programa y le doy el botón verde del eclipse el eclipse me hace dos cosas primero me lanza una 84 00:04:38,899 --> 00:04:45,360 instancia de la java virtual machine intérprete que será un proceso que funciona y luego a este 85 00:04:45,360 --> 00:04:53,480 proceso le pasa como parámetro mi clase vale mi punto clas para que se ejecute si este proceso 86 00:04:53,480 --> 00:05:02,310 tendrá un espacio de memoria y en esta memoria es donde yo creo mis variables dudas hasta aquí 87 00:05:02,310 --> 00:05:09,490 entonces una variable es un trocito de memoria grande lo que tiene que ser grande dependiendo 88 00:05:09,490 --> 00:05:15,430 del tipo de variable que es será más grande o más pequeño hay variables que ocupan muy poco 89 00:05:15,430 --> 00:05:23,910 y variables que ocupan mucho ahora yo tengo la memoria quiero crear una variable entonces el 90 00:05:23,910 --> 00:05:31,350 sistema lo que me hace es este trocito de memoria un trocito vale lo voy a reservar para ti para que 91 00:05:31,350 --> 00:05:40,230 sea para que tú puedas escribir allí dentro valores ahora pero para ello poder identificar 92 00:05:40,230 --> 00:05:46,250 para poder usar este trozo de memoria le tengo que dar un nombre entonces tengo que elegir un 93 00:05:46,250 --> 00:05:53,069 identificador mal para decir cada vez que yo utilizaré este identificador me estoy refiriendo 94 00:05:53,069 --> 00:06:00,149 a lo que está dentro de ese trocito de memoria que tú me has reservado en nuestro caso de la 95 00:06:00,149 --> 00:06:02,790 por ejemplo, ya lo he dicho antes, edad, ¿vale? 96 00:06:03,069 --> 00:06:07,050 Si yo he llamado este trozo de memoria edad, cada vez que usaré edad, 97 00:06:07,329 --> 00:06:11,689 lo que te estoy diciendo es vete a un trozo de memoria que se llame edad, 98 00:06:11,790 --> 00:06:14,709 que yo haya llamado edad o que yo haya definido como identificador edad, 99 00:06:15,009 --> 00:06:16,750 y mírame qué hay allí dentro. 100 00:06:17,649 --> 00:06:18,810 ¿Y qué hay allí dentro? 101 00:06:18,810 --> 00:06:21,470 Pues habrá un valor, ¿sí? 102 00:06:21,610 --> 00:06:29,230 Un valor actual de esa variable, que increíblemente puede variar. 103 00:06:29,709 --> 00:06:30,750 Por eso se llama variable. 104 00:06:31,529 --> 00:06:43,930 Si yo tengo mi edad y de repente cumplo años, el valor que se contenía allí se le puede sumar uno y volver a guardarlo en ese trozo de memoria. 105 00:06:44,110 --> 00:06:52,730 A partir de ahora, cada vez que yo voy a buscar esta edad, esta inferioridad, voy a ese trocito de memoria y encontraré un valor distinto. 106 00:06:56,759 --> 00:07:01,100 La tercera cosa que caracteriza una variable es el tipo. 107 00:07:01,100 --> 00:07:14,540 Cuando yo digo, oye, mira, resérvame un trozo de memoria, y este trozo de memoria lo voy a llamar edad, le tengo que decir también al sistema qué puedo guardar allí dentro. 108 00:07:15,339 --> 00:07:19,420 No sólo lo que guardo, sino qué puedo guardar. 109 00:07:20,079 --> 00:07:29,579 Por ejemplo, si es una edad, le diré que este trozo de memoria puede contener enteros, porque la edad es un entero. 110 00:07:29,579 --> 00:07:43,379 Si fuera la circunferencia de un círculo, pues entonces a lo mejor en vez de enterros le diría puedes guardar números decimales, o sea que puedan tener la coma. 111 00:07:44,019 --> 00:07:59,220 Si en vez de eso fuera un trozo de memoria donde le voy a poner una palabra, le voy a poner mi nombre, por ejemplo, pues le diría, oye, mira, aquí dentro se guardarán carácteres, se guardarán palabras, no se guardarán números. 112 00:07:59,579 --> 00:08:04,860 Pero en cualquier caso, cuando creo una variable, le tengo que decir estas tres cosas. 113 00:08:05,560 --> 00:08:09,139 Cómo se llama esta variable, su nombre, su identificador, 114 00:08:09,800 --> 00:08:12,939 qué tipo de datos puedo tener en esta variable, 115 00:08:13,300 --> 00:08:20,600 si son enteros, si son con comas, si son strings, si son caracteres, si son lo que sea. 116 00:08:21,240 --> 00:08:22,480 Ahora veremos los tipos de datos. 117 00:08:22,480 --> 00:08:32,200 y después le puedo poner dentro un valor que tiene que ser del tipo que he declarado. 118 00:08:34,389 --> 00:08:39,149 No puedo decir, mira, aquí dentro voy a poner números y ahora ¿qué me puedo poner dentro? 119 00:08:39,250 --> 00:08:40,090 Pues pongo un gato. 120 00:08:40,470 --> 00:08:41,669 Pues no, gato no es un número. 121 00:08:42,149 --> 00:08:45,370 Me enfado si tú intentas poner una palabra donde van solo números. 122 00:08:48,029 --> 00:08:48,370 ¿Dudas? 123 00:08:49,970 --> 00:08:51,870 Entonces una variable es un cajón. 124 00:08:51,870 --> 00:08:54,409 con una etiqueta delante 125 00:08:54,409 --> 00:08:55,710 que me dice 126 00:08:55,710 --> 00:08:57,950 cómo se llama ese cajón 127 00:08:57,950 --> 00:09:00,289 que sólo puede 128 00:09:00,289 --> 00:09:01,929 contener un tipo de 129 00:09:01,929 --> 00:09:03,350 elemento 130 00:09:03,350 --> 00:09:06,549 y con dentro uno de estos elementos 131 00:09:06,549 --> 00:09:07,929 es un cajón 132 00:09:07,929 --> 00:09:09,570 con escrito fuera edad 133 00:09:09,570 --> 00:09:12,269 que si yo lo abro, sólo dentro puedo poner números 134 00:09:12,269 --> 00:09:13,850 y dentro habrá un número 135 00:09:13,850 --> 00:09:14,889 siete 136 00:09:14,889 --> 00:09:16,070 ¿verdad? 137 00:09:17,429 --> 00:09:18,110 ¿dudas? 138 00:09:20,480 --> 00:09:22,580 vale, siempre hemos entendido el concepto 139 00:09:22,580 --> 00:09:26,240 que imagina una caja con escrito un intuidor para diferenciarla de otra caja, 140 00:09:26,399 --> 00:09:29,320 el nombre, que contiene algo, el valor, 141 00:09:29,759 --> 00:09:33,240 y que solo puede contener un cierto tipo de cosas, que es el tipo. 142 00:09:33,700 --> 00:09:40,259 Si yo tengo la caja para bolígrafos, no puedo poner dentro un teclado, 143 00:09:40,259 --> 00:09:42,279 solo puedo poner un bolígrafo. 144 00:09:43,240 --> 00:09:47,120 La caja tendrá un nombre, que será mi bolígrafo, 145 00:09:47,559 --> 00:09:50,279 y yo cuando lo abro, dentro guardo mi bolígrafo 1, 146 00:09:50,279 --> 00:09:58,519 vale un valor de eso y lo cierro solo porque es una caja pequeña no cabe ni un teclado ni 147 00:09:58,519 --> 00:10:04,620 un ratón ni un ordenador pero tendré otra caja que se llama la caja ordenador o mi ordenador 148 00:10:04,620 --> 00:10:10,320 se llama que puede contener ordenadores por dentro poder poner un ordenador se entiende 149 00:10:10,320 --> 00:10:14,019 ¿Cómo se hace esto en Java? 150 00:10:14,679 --> 00:10:14,879 ¿Vale? 151 00:10:15,860 --> 00:10:16,700 Aquí lo tenéis. 152 00:10:18,159 --> 00:10:22,080 int edad es igual a 18.com 153 00:10:22,080 --> 00:10:23,059 ¿Vale? 154 00:10:23,480 --> 00:10:24,360 ¿Qué es esto? 155 00:10:24,799 --> 00:10:24,919 Sí. 156 00:10:26,639 --> 00:10:29,759 ¿En qué apartado? 157 00:10:30,759 --> 00:10:34,009 Nosotros lo hemos visto. 158 00:10:34,129 --> 00:10:36,509 Donde están los atributos, allí lo puede declarar. 159 00:10:36,509 --> 00:10:40,090 Pero nosotros ahora hacemos todo dentro del mail. 160 00:10:40,830 --> 00:10:41,309 Por ahora. 161 00:10:41,990 --> 00:10:42,149 ¿Vale? 162 00:10:42,149 --> 00:10:44,830 Porque estamos en programación falsamente 163 00:10:44,830 --> 00:10:46,169 estructurada, ¿vale? 164 00:10:46,370 --> 00:10:48,669 Entonces, es como si todo el resto me lo olvido, 165 00:10:48,789 --> 00:10:49,889 no sé, no existe, 166 00:10:50,429 --> 00:10:52,429 y obtengo la llave del 167 00:10:52,429 --> 00:10:54,269 main que acaba aquí, 168 00:10:54,649 --> 00:10:56,190 pues allí dentro es donde hago todo. 169 00:10:56,289 --> 00:10:58,129 ¿Quiero declarar una variable? La declaro allí dentro. 170 00:10:59,129 --> 00:10:59,250 ¿Sí? 171 00:11:00,590 --> 00:11:02,490 Entonces, int edad es igual a 172 00:11:02,490 --> 00:11:04,269 18.coma me está diciendo, 173 00:11:04,690 --> 00:11:06,570 oye sistema, créame 174 00:11:06,570 --> 00:11:08,330 un espacio de memoria. 175 00:11:08,330 --> 00:11:10,169 ¿Cómo se llama este espacio de memoria? 176 00:11:14,539 --> 00:11:14,879 No. 177 00:11:14,879 --> 00:11:16,200 Sí, va. 178 00:11:17,059 --> 00:11:18,600 La idea es la memoria principal, pero 179 00:11:18,600 --> 00:11:20,940 yo le estoy diciendo, sistema, quiero crear 180 00:11:20,940 --> 00:11:23,019 una variable, ¿vale? Esta variable 181 00:11:23,019 --> 00:11:25,039 me creará, me reservará un trozo 182 00:11:25,039 --> 00:11:26,039 de memoria. Este 183 00:11:26,039 --> 00:11:29,000 trozo de memoria reservado, 184 00:11:29,360 --> 00:11:31,039 ¿cómo se llama? Con esto, 185 00:11:31,240 --> 00:11:35,240 ¿eh? Edad, ¿vale? 186 00:11:35,500 --> 00:11:37,179 Este es el identificador, es el 187 00:11:37,179 --> 00:11:39,080 nombre. Int edad, 188 00:11:39,259 --> 00:11:40,980 edad, me está definiendo que este 189 00:11:40,980 --> 00:11:43,039 trozo de memoria ahora se llama 190 00:11:43,039 --> 00:11:45,000 edad. Cada vez que usaré 191 00:11:45,000 --> 00:11:50,679 dada a partir de ahora no me estoy refiriendo a no sé qué más ese trozo de memoria porque lo 192 00:11:50,679 --> 00:12:02,720 ha decidido lo ha declarado qué tipo de datos puedo poner dentro de edad enteros sería este 193 00:12:02,720 --> 00:12:21,299 int. En inglés, integer o integer, no sé, ¿vale? Integer, como he conocido yo, no puedo decir integer, nunca he olvidado o nunca he buscado la pronunciación correcta, pero int me está diciendo que aquí dentro solo pueden ir números. 194 00:12:21,299 --> 00:12:25,899 No puedo poner palabras, no puedo poner números con coma, 195 00:12:26,240 --> 00:12:30,539 no puedo poner valores verdadero y falso, que serían booleanos. 196 00:12:31,860 --> 00:12:34,860 He declarado que este trozo solo puede contener el término. 197 00:12:35,019 --> 00:12:36,539 ¿Y qué contiene ahora mismo? 198 00:12:38,799 --> 00:12:40,480 Si yo abro la caja y miro, ¿qué hay dentro? 199 00:12:42,799 --> 00:12:43,399 18. 200 00:12:45,519 --> 00:12:46,460 ¿Se entiende? 201 00:12:50,820 --> 00:12:53,519 Puedes cambiar su valor y poner 19, por ejemplo, 202 00:12:53,519 --> 00:12:55,980 Pero no puedes poner salmón 203 00:12:55,980 --> 00:12:57,600 Salmón, no lo aceptaría 204 00:12:57,600 --> 00:12:59,379 Porque salmón no es una palabra, no es un número 205 00:12:59,379 --> 00:13:00,120 ¿Sí? 206 00:13:00,799 --> 00:13:02,139 Fijaos que aquí yo digo 207 00:13:02,139 --> 00:13:04,720 Edad es igual a 19 punto y coma 208 00:13:04,720 --> 00:13:05,759 Este ok 209 00:13:05,759 --> 00:13:07,539 Edad es igual a salmón 210 00:13:07,539 --> 00:13:08,620 Me daría error 211 00:13:08,620 --> 00:13:12,240 ¿Qué diferencia hay entre esta línea de abajo 212 00:13:12,240 --> 00:13:14,639 Edad igual a 19 punto y coma 213 00:13:14,639 --> 00:13:15,759 Y esta línea de arriba 214 00:13:15,759 --> 00:13:17,279 Int edad igual a 18 215 00:13:17,279 --> 00:13:19,940 No está en int 216 00:13:19,940 --> 00:13:24,110 No está en la mano que sí 217 00:13:24,110 --> 00:13:25,590 Como he dicho 218 00:13:25,590 --> 00:13:31,590 ¿Y qué cambia en esto? ¿Por qué una vez está lento y otra vez no? 219 00:13:31,590 --> 00:13:33,590 ¿Qué pensáis que... 220 00:13:33,590 --> 00:13:35,590 ... 221 00:13:35,590 --> 00:13:37,590 ... 222 00:13:37,590 --> 00:13:39,590 ... 223 00:13:39,590 --> 00:13:43,350 ¿Alguien lo quiere decir de otra forma? 224 00:13:43,350 --> 00:13:51,899 Aquí estoy creando la variable. Aquí estoy declarando la variable. 225 00:13:51,899 --> 00:13:56,899 La variable no existía y aquí te estoy diciendo voy a crear un nuevo espacio de memoria 226 00:13:56,899 --> 00:14:03,500 sólo puede contener entero que se llama edad y ponle dentro 18 ahora a partir de 227 00:14:03,500 --> 00:14:10,399 ahora en mi programa ese trozo ya existe si yo lo quiero modificar no hace falta 228 00:14:10,399 --> 00:14:15,500 que de verdad decir entidad porque él sabe ya que edad puede contener sólo 229 00:14:15,500 --> 00:14:20,539 enteros se lo he dicho cuando la he declarado ahora la estoy solo usando la 230 00:14:20,539 --> 00:14:28,039 estoy modificando cuando la modificó la uso directamente digo hoy vida edad es 231 00:14:28,039 --> 00:14:29,139 es igual a 19, ¿vale? 232 00:14:29,580 --> 00:14:32,259 Esto quiere decir, destruye lo que hay dentro, 233 00:14:33,019 --> 00:14:34,460 pilla este nuevo valor 19 234 00:14:34,460 --> 00:14:36,179 y guárdalo en esa caja. 235 00:14:36,639 --> 00:14:38,539 Recuerda que en la variable está un solo valor. 236 00:14:39,220 --> 00:14:41,200 Entonces, o está el 18 o está el 19. 237 00:14:41,600 --> 00:14:42,620 Antes estaba el 18, 238 00:14:42,740 --> 00:14:43,580 en el momento en que le digo, 239 00:14:43,679 --> 00:14:44,879 no, ahora es igual a 19, 240 00:14:45,279 --> 00:14:48,519 pues lo que tienes que hacer es poner el 19 dentro. 241 00:14:49,899 --> 00:14:50,059 ¿Sí? 242 00:14:50,460 --> 00:14:52,200 Este operador de aquí igual 243 00:14:52,200 --> 00:14:55,500 no es el igual que conocéis vosotros. 244 00:14:55,500 --> 00:14:58,639 3 es igual a 3, es verdad 245 00:14:58,639 --> 00:15:02,740 Este de aquí es un operador de asignación 246 00:15:02,740 --> 00:15:03,960 Me está diciendo 247 00:15:03,960 --> 00:15:05,419 Lo que hay a la derecha 248 00:15:05,419 --> 00:15:09,059 Guárdalo dentro de lo que hay a la izquierda 249 00:15:09,059 --> 00:15:13,059 A la izquierda va un identificador de variable 250 00:15:13,059 --> 00:15:15,320 A la derecha va un valor 251 00:15:15,320 --> 00:15:17,960 Que sea del tipo correcto 252 00:15:17,960 --> 00:15:20,320 ¿Dudas hasta aquí? 253 00:15:22,179 --> 00:15:23,840 Muy bien, sabéis que es una variable 254 00:15:23,840 --> 00:15:53,620 ¿Vale? ¿Sí? Y si en vez de un no, de un, de un, de un, ah, no, perdón. Aquí vamos a ver cómo se da un nombre a una variable. ¿Vale? ¿Qué puedo hacer para dar un nombre a una variable? ¿Vale? Se compone de uno más caracteres de los siguientes. Letras de A a la Z o A mayúscula Z. ¿Vale? Números de 0 a 9, guión bajo se puede usar y símbolo de dólar. ¿Sí? Todo esto son caracteres admitidos para una, el nombre de una variable. 255 00:15:53,620 --> 00:16:01,820 pero por ejemplo el punto no, no puedo llamar edad de punto mía, o mi punto edad, no lo puedo hacer, 256 00:16:02,059 --> 00:16:11,080 pero sí puedo hacer mi guión bajo edad, ¿sí? Personalmente, he olvidado esto, ¿sí? 257 00:16:14,600 --> 00:16:19,200 Yo usaré solo letras y números, ¿sí? 258 00:16:19,200 --> 00:16:22,240 No puede comenzar por número 259 00:16:22,240 --> 00:16:23,759 Como he dicho antes 260 00:16:23,759 --> 00:16:25,820 Los identificadores en Java no empiezan por número 261 00:16:25,820 --> 00:16:27,700 Puedo llamar edad de 3 262 00:16:27,700 --> 00:16:29,659 Pero no puedo llamar 3 edad 263 00:16:29,659 --> 00:16:30,360 ¿Ok? 264 00:16:31,299 --> 00:16:33,720 No pueden coincidir con ninguna palabra reservada 265 00:16:33,720 --> 00:16:35,320 No puedo llamar una palabra 266 00:16:35,320 --> 00:16:37,759 Int public es igual a 18 267 00:16:37,759 --> 00:16:38,879 No funciona 268 00:16:38,879 --> 00:16:40,080 ¿Ok? 269 00:16:41,299 --> 00:16:43,919 Son case sensitive o sensibles a mayúscula 270 00:16:43,919 --> 00:16:46,220 O sea, edad con la e mayúscula 271 00:16:46,220 --> 00:16:47,740 No es la misma variable 272 00:16:47,740 --> 00:16:49,460 que edad con la e minúscula. 273 00:16:50,019 --> 00:16:50,500 Cuidado. 274 00:16:53,120 --> 00:16:53,779 Concajará los 275 00:16:53,779 --> 00:16:56,000 identificadores compuestos de varias palabras 276 00:16:56,000 --> 00:16:58,059 poniendo en mayúscula la primera letra 277 00:16:58,059 --> 00:16:59,580 de cada palabra, en lugar de utilizar 278 00:16:59,580 --> 00:17:00,779 bien, bajo, solo, tal, cosa. 279 00:17:01,360 --> 00:17:02,700 Fecha de nacimiento, 280 00:17:03,820 --> 00:17:05,880 la d de d es 281 00:17:05,880 --> 00:17:07,779 mayúscula, la n de nacimiento es 282 00:17:07,779 --> 00:17:09,319 mayúscula, y cosas por el estilo. 283 00:17:09,880 --> 00:17:11,740 La primera letra de un 284 00:17:11,740 --> 00:17:13,720 identificador de variable, o de 285 00:17:13,720 --> 00:17:15,740 método, será minúscula. 286 00:17:17,740 --> 00:17:19,279 ¿Es necesario? No. 287 00:17:20,619 --> 00:17:23,140 ¿Todos los programadores de Java hacen así? Sí. 288 00:17:25,039 --> 00:17:32,559 Eso me permite, dado un identificador, saber si es una variable, si es un método o si es una clase. 289 00:17:33,119 --> 00:17:37,440 Si empieza por mayúscula es una clase, si empieza por minúscula es una variable o un método. 290 00:17:39,079 --> 00:17:39,440 ¿Se entiende? 291 00:17:44,299 --> 00:17:46,259 Literal. ¿Qué es el concepto de literal? 292 00:17:46,259 --> 00:17:49,640 Literal es un valor concreto, ¿vale? Es un valor. 293 00:17:50,160 --> 00:17:55,140 Si yo te digo un literal de los enteros, pues 3 es un literal de entero. 294 00:17:55,279 --> 00:17:57,000 27 es un literal de entero. 295 00:17:57,119 --> 00:17:58,859 45 es un literal de entero. 296 00:17:59,940 --> 00:18:03,019 Si yo quiero literales de coma flotante, ¿vale? 297 00:18:03,019 --> 00:18:04,480 Que se llaman flot, ¿vale? 298 00:18:04,519 --> 00:18:09,759 Que son números con la coma, pues 3,7 es un literal de flot. 299 00:18:10,779 --> 00:18:12,940 25,9 es un literal de flot. 300 00:18:14,000 --> 00:18:15,960 39 es un literal de flot. 301 00:18:16,259 --> 00:18:22,000 Que ya te he entrado a cómo hacer. ¿Sí? ¿Eh? 302 00:18:24,700 --> 00:18:30,779 Pillamos dos tipos. Entero, ¿vale? Entonces, el entero, cuando yo te digo int, es... 303 00:18:30,779 --> 00:18:34,740 Tú aquí dentro puedes poner el conjunto de todos los números enteros del mundo. 304 00:18:35,220 --> 00:18:39,960 Cada uno de esos es un literal. Es algo que puedes usar para meterlo ahí dentro. 305 00:18:40,099 --> 00:18:43,000 No sé qué has dicho, no me he enterado. Que estoy hablando... 306 00:18:43,000 --> 00:18:48,500 Entonces, por ejemplo, 5 es un número entero, por lo tanto es un íntegro. 307 00:18:48,619 --> 00:18:49,660 Lo puedes usar como íntegro. 308 00:18:51,000 --> 00:18:52,539 27 es un número entero. 309 00:18:53,420 --> 00:18:58,339 27,4 no lo puedes usar porque no es un literal de entero. 310 00:19:00,430 --> 00:19:00,789 ¿Me entiendes? 311 00:19:01,690 --> 00:19:03,690 Es otra cosa, pero no es un entero. 312 00:19:03,809 --> 00:19:07,029 Porque 27,4, el coma 4 me hace pensar que no es un íntegro. 313 00:19:07,369 --> 00:19:08,009 Por lo tanto, no me da. 314 00:19:08,950 --> 00:19:10,650 Ahora, otro tipo de datos. 315 00:19:10,650 --> 00:19:13,170 Lo veremos, pero para introducirlo, para que se suene. 316 00:19:13,549 --> 00:19:14,029 Float. 317 00:19:14,309 --> 00:19:19,690 Float es coma flotante, o sea que es un número que puede tener una coma que se mueve, ¿vale? 318 00:19:19,869 --> 00:19:22,670 Es un número con coma, es un número decimal, ¿sí? 319 00:19:22,849 --> 00:19:29,710 Entonces, 27,4 es un número con coma, por lo tanto puede ir dentro de un float, ¿sí? 320 00:19:30,269 --> 00:19:37,490 39,5 también es un literal de los float, por lo tanto puede ir dentro del float, es un número decimal. 321 00:19:37,490 --> 00:19:43,529 Ahora, 91, así, a seca, ¿es un número decimal? 322 00:19:45,740 --> 00:19:45,960 Sí. 323 00:19:47,940 --> 00:19:50,740 Es 91,000000. 324 00:19:51,259 --> 00:19:53,880 Entonces, el 0000 a la derecha no los pones. 325 00:19:55,240 --> 00:19:58,220 Pero 91 es un número con coma. 326 00:19:58,460 --> 00:19:59,819 Lo puedes ver como número con coma. 327 00:20:00,480 --> 00:20:04,799 Entonces, si uso los números float, que son los números que admiten decimales, 328 00:20:05,180 --> 00:20:06,900 también puedo admitir 91. 329 00:20:06,900 --> 00:20:11,380 Todos los enteros son números con coma. 330 00:20:12,539 --> 00:20:15,559 Solo que hay una coma precisa, coma C. 331 00:20:16,299 --> 00:20:17,160 Entonces sí lo puedo usar. 332 00:20:21,720 --> 00:20:23,279 Tipo palabra, ¿vale? 333 00:20:23,359 --> 00:20:25,460 Será string, con una S mayúscula. 334 00:20:26,359 --> 00:20:36,559 Dentro de string yo puedo poner gato, puedo poner cocodrilo, puedo poner mi nombre, puedo poner el Quijote. 335 00:20:36,559 --> 00:20:37,480 Me da igual. 336 00:20:38,279 --> 00:20:42,440 ¿Sí? Siempre que sean delimitados, de comillas a comillas, ¿vale? 337 00:20:42,759 --> 00:20:50,859 Un literal del tipo string son todas las palabras, el conjunto de palabras que se te ocurren. 338 00:20:50,859 --> 00:20:55,720 Son una cadena de carácteres, una serie de carácteres, uno tras otro. 339 00:20:56,579 --> 00:20:56,680 ¿Sí? 340 00:20:59,819 --> 00:21:07,140 Este de aquí, con una camilla sola, es también un literal de un tipo que se llama carácter. 341 00:21:08,119 --> 00:21:11,579 El tipo carácter es un solo símbolo. 342 00:21:11,900 --> 00:21:15,460 Puede ser una letra, puede ser un número, puede ser un punto, puede ser un asterisco, 343 00:21:15,779 --> 00:21:17,839 pero un solo símbolo. 344 00:21:19,019 --> 00:21:23,380 La cadena de caracteres es una secuencia de este tipo de aquí. 345 00:21:23,819 --> 00:21:27,900 Si tengo uno solo, es un char, C-H-A-R, tipo char. 346 00:21:27,900 --> 00:21:32,420 Si en vez tengo muchos unos detrás de otros, será una cadena de caracteres, o sea, un string. 347 00:21:32,420 --> 00:21:42,519 Y esto es simplemente para decir que cada tipo de variable tiene un conjunto de valores admitidos. 348 00:21:42,920 --> 00:21:46,059 Estos valores admitidos se llaman literales. 349 00:21:47,559 --> 00:21:51,160 Entonces, ¿me podéis hacer un ejemplo de un literal de int? 350 00:21:53,869 --> 00:21:54,130 Uno. 351 00:21:54,789 --> 00:21:55,349 Otro ejemplo. 352 00:21:55,609 --> 00:21:56,390 20. 353 00:21:56,549 --> 00:21:57,009 Otro ejemplo. 354 00:21:57,950 --> 00:22:01,009 Un ejemplo de literal de string. 355 00:22:01,710 --> 00:22:02,190 Gato. 356 00:22:02,750 --> 00:22:03,210 Gato. 357 00:22:03,210 --> 00:22:03,670 ¿Qué más? 358 00:22:04,369 --> 00:22:17,369 Un ejemplo de literal de número decimal, lo habéis pillado, ¿no? 359 00:22:17,369 --> 00:22:22,480 ¿Y para entero? 360 00:22:22,480 --> 00:22:30,480 Para entero, no. Para un ínter, no. Para un float o un double, sí. 361 00:22:30,480 --> 00:22:36,480 De alguna forma, luego lo veremos. Ahora lo que me interesa es que entendáis el concepto de literal. 362 00:22:36,480 --> 00:22:38,680 En un cierto sentido 363 00:22:38,680 --> 00:22:41,200 Cuando declaro la variable 364 00:22:41,200 --> 00:22:43,220 Int, o sea, tipo 365 00:22:43,220 --> 00:22:44,579 Nombre 366 00:22:44,579 --> 00:22:46,440 Es igual literal 367 00:22:46,440 --> 00:22:48,240 ¿Entendéis? 368 00:22:50,940 --> 00:22:52,140 Sí, sí, a ver, lo repiteremos 369 00:22:52,140 --> 00:22:53,579 Este es el tipo 370 00:22:53,579 --> 00:22:56,039 Este es el nombre 371 00:22:56,039 --> 00:22:59,039 Igual, y aquí va un literal 372 00:22:59,039 --> 00:22:59,920 De este tipo 373 00:22:59,920 --> 00:23:01,779 ¿Sí? 374 00:23:02,140 --> 00:23:04,500 Cuando hago edad es igual a 19 375 00:23:04,500 --> 00:23:06,759 Esto tiene que ser un literal 376 00:23:06,759 --> 00:23:08,119 De este tipo 377 00:23:08,119 --> 00:23:20,220 del tipo de esta variable, ¿se entiende?, va. ¿Qué más?, ok. Literales se pueden 378 00:23:20,220 --> 00:23:24,700 guardar en variable cuyo tipo lo permita, vale, si un variable, o sea cada literal 379 00:23:24,700 --> 00:23:30,119 tendrá su tipo, 91 tendrá un tipo, 91,5 tendrá un tipo float, se puede 380 00:23:30,119 --> 00:23:36,259 guardar en variables punto float, o sea de tipo float. Gato tendrá tipo string, pues se 381 00:23:36,259 --> 00:23:44,900 puede guardar dentro de variables de tipo string. En realidad, 91 es tipo int, pero también es tipo flag. 382 00:23:48,079 --> 00:23:55,940 Ok, entonces, ¿qué tipos de datos tenemos? Vamos a ver lo que se llaman los tipos de datos primitivos. 383 00:23:55,940 --> 00:24:10,279 ¿Vale? Son los más básicos. Nunca. En algunos lenguajes de programación sí. Te permite, por ejemplo, 384 00:24:10,279 --> 00:24:13,279 Javascript, por ejemplo, Credo o Python. 385 00:24:13,279 --> 00:24:19,279 En una lista tú puedes imaginar números, textos y tal, pero aquí no. 386 00:24:19,279 --> 00:24:22,279 Tampoco en la lista. 387 00:24:22,279 --> 00:24:26,279 O sea, el Java es un lenguaje de programación tipal. 388 00:24:26,279 --> 00:24:30,279 O sea que todo tiene que tener su tipo. 389 00:24:30,279 --> 00:24:38,279 Tú puedes hacer algunos truquillos para conseguir obtener una lista, un array, 390 00:24:38,279 --> 00:24:40,460 o lo que sea, con valores 391 00:24:40,460 --> 00:24:42,720 mezclados, pero normalmente 392 00:24:42,720 --> 00:24:44,680 no es lo que quieres. Tú quieres mantener 393 00:24:44,680 --> 00:24:45,460 todo separado. 394 00:24:46,480 --> 00:24:48,680 Cuando aprendes a hacerlo, es todo 395 00:24:48,680 --> 00:24:50,420 más ordenado. Claramente 396 00:24:50,420 --> 00:24:52,680 aprecio de que tú tienes que saber qué estás 397 00:24:52,680 --> 00:24:54,299 haciendo. Mientras en 398 00:24:54,299 --> 00:24:56,740 otros lenguajes que son poco tipados, 399 00:24:57,140 --> 00:24:58,900 pues el mismo 400 00:24:58,900 --> 00:25:00,400 sistema infiere 401 00:25:00,400 --> 00:25:02,380 qué tipo de datos están en las 402 00:25:02,380 --> 00:25:04,420 variables. Y luego 403 00:25:04,420 --> 00:25:06,259 de vez en cuando se equivoca. 404 00:25:06,259 --> 00:25:12,440 Porque si tú dentro de la variable no sabes si tienes una palabra o un número, luego no podrás nunca sumar esa variable. 405 00:25:12,940 --> 00:25:18,619 Porque a la vez que tienes un número que funciona, a la vez que tienes una palabra, no lo puedes hacer. 406 00:25:18,720 --> 00:25:20,160 Gato plus 7, más 7. 407 00:25:21,319 --> 00:25:23,579 Entonces, ¿vale? 408 00:25:24,599 --> 00:25:26,259 ¿Qué tipos de datos hay? 409 00:25:27,680 --> 00:25:34,079 Entonces, hay el tipo booleano, desde el concepto de álgebra de Boole, que era un señor. 410 00:25:34,079 --> 00:25:46,259 El álgebra de Boole es un álgebra que se basa sobre dos valores, verdadero y falso, cero y uno, si quisiéramos. 411 00:25:47,019 --> 00:26:00,599 Entonces, son todas una matemática que se basa sobre preposiciones que cuando yo las resuelvo, en vez de tener un número, pues tengo un valor que es verdadero o falso. 412 00:26:01,599 --> 00:26:02,380 La lógica. 413 00:26:04,079 --> 00:26:14,359 Esto nos servirá a nosotros y como programadores lo tendremos que ver mucho porque, por ejemplo, todas las condiciones del if, del while, y cosas por el estilo, usarán estos tipos de valores. 414 00:26:14,940 --> 00:26:20,240 ¿Verdad? Y cuando yo decía, si una condición es verdadera, haz esto. Si es falsa, haz otra cosa. 415 00:26:20,720 --> 00:26:23,319 Esto es porque el if recibe un booleano. 416 00:26:24,119 --> 00:26:24,960 Pasa un booleano. 417 00:26:24,960 --> 00:26:32,299 Si esta cosa de aquí, que más le quita aquí, se soluciona, se resuelve con un true, entonces se ejecuta este trozo de código. 418 00:26:32,299 --> 00:26:34,920 si se resuelve con un false 419 00:26:34,920 --> 00:26:37,259 entonces se ejecuta un trozo de código distinto 420 00:26:37,259 --> 00:26:38,579 pero en general 421 00:26:38,579 --> 00:26:39,299 lo veremos 422 00:26:39,299 --> 00:26:41,799 el tipo booleano 423 00:26:41,799 --> 00:26:44,779 es un tipo que admite solo dos valores 424 00:26:44,779 --> 00:26:46,339 hay dos literales 425 00:26:46,339 --> 00:26:48,599 en booleano, ninguno más 426 00:26:48,599 --> 00:26:50,519 que son true y false 427 00:26:50,519 --> 00:26:53,380 en Java 428 00:26:53,380 --> 00:26:56,519 la palabra que me dice que es un booleano 429 00:26:56,519 --> 00:26:57,319 es boolean 430 00:26:57,319 --> 00:27:00,480 ocupa un byte 431 00:27:00,480 --> 00:27:01,700 de espacio 432 00:27:01,700 --> 00:27:08,599 o sea que cuando yo creo una variable boolean me crea un trocito de memoria grande un byte 433 00:27:08,599 --> 00:27:20,710 vale 8 bits como mínimo vale false o máximo vale true y dos valores positivos dudas 434 00:27:20,710 --> 00:27:31,569 carácter vale es un singolo carácter letra o número o símbolo vale en java se llama char 435 00:27:31,569 --> 00:27:39,670 y ocupa dos bytes. Para almacenar un carácter, ocupo dos bytes de memoria. 436 00:27:39,670 --> 00:27:47,450 Cuando creo una variable de tipo char, char letra es igual a un 437 00:27:47,450 --> 00:27:52,849 literal de tipo char, pues lo que estoy ocupando es dos bytes de memoria dentro 438 00:27:52,849 --> 00:27:55,190 de la RAM. 439 00:27:55,190 --> 00:27:57,650 Los valores mínimos y máximos no me los sé. 440 00:27:59,230 --> 00:28:00,670 Son carácteres. 441 00:28:00,829 --> 00:28:05,369 A, B, C, K, asterisco, comilla, punto y coma. 442 00:28:05,950 --> 00:28:07,589 Eso son símbolos. 443 00:28:09,349 --> 00:28:09,990 Bytes. 444 00:28:11,349 --> 00:28:22,549 Desde aquí, desde byte, hasta esto, hasta long, byte, short, interlong, son todos números enteros. 445 00:28:22,549 --> 00:28:25,630 representan 446 00:28:25,630 --> 00:28:27,630 todos números enteros 447 00:28:27,630 --> 00:28:29,089 lo que cambia es el rango 448 00:28:29,089 --> 00:28:30,869 de lo que puedo poner ahí dentro 449 00:28:30,869 --> 00:28:33,309 si uso un byte 450 00:28:33,309 --> 00:28:35,809 es de tamaño un solo byte 451 00:28:35,809 --> 00:28:37,769 un byte son 8 bits 452 00:28:37,769 --> 00:28:39,430 entonces el número 453 00:28:39,430 --> 00:28:41,630 más pequeño que puede hacer 454 00:28:41,630 --> 00:28:43,029 es menos 128 455 00:28:43,029 --> 00:28:45,750 y el número más grande que puede hacer 456 00:28:45,750 --> 00:28:46,569 es 127 457 00:28:46,569 --> 00:28:48,029 ¿sabéis algo de binario? 458 00:28:49,970 --> 00:28:52,329 si yo tuviera 8 bits 459 00:28:52,329 --> 00:28:56,829 ¿Cuántos números distintos puedo hacer con 8 bits? 460 00:29:00,339 --> 00:29:02,980 2 elevado a la 8 461 00:29:02,980 --> 00:29:07,279 Que son 256 posibles valores 462 00:29:07,279 --> 00:29:13,140 Si contáis desde menos 128 a más 127 463 00:29:13,140 --> 00:29:16,420 Son 256 posibles valores 464 00:29:16,420 --> 00:29:18,339 El primer bit 465 00:29:18,339 --> 00:29:20,400 Si es 0 466 00:29:20,400 --> 00:29:23,279 Si es 0 es positivo 467 00:29:23,279 --> 00:29:24,539 Si es 1 es negativo 468 00:29:24,539 --> 00:29:29,079 O sea, el primer bit me dice simplemente si es un número positivo o negativo. 469 00:29:29,380 --> 00:29:33,759 Y luego me quedan otros 7 bits, que 2 a la 7 son 128, 470 00:29:34,559 --> 00:29:38,319 posibles números para decir si es positivo o negativo. 471 00:29:39,140 --> 00:29:44,279 Por eso, si pongo el primero a 1 y todo el resto a 1, me voy hasta menos 128. 472 00:29:44,920 --> 00:29:49,480 Si pongo el primero a 1 y luego pongo todo a 1, me voy a 127. 473 00:29:50,660 --> 00:29:53,880 Tened en cuenta que en los positivos se cuenta también el 0, por eso es un número. 474 00:29:56,690 --> 00:30:17,150 ¿Dudas? ¿Entiendes? Vale, si yo quiero números más grandes que estos, en vez de utilizar un byte que ocupa solo un byte, puedo usar un short, que es un número corto, un número pequeño, que en vez de ocupar un byte, ocupa dos bytes. 475 00:30:17,150 --> 00:30:22,609 Ahora, en vez de tener 8 bits con el que puedo jugar, tengo 16 bits con el que puedo jugar. 476 00:30:23,109 --> 00:30:27,170 Por lo tanto, puedo llegar hasta 2 a la 16 distintos números. 477 00:30:27,470 --> 00:30:31,430 O sea, 65.536 posibles números distintos. 478 00:30:31,430 --> 00:30:37,829 Que van desde menos la mitad de eso, o sea, menos 32.000, hasta más 32.000. 479 00:30:38,529 --> 00:30:39,710 Números pequeños. 480 00:30:40,970 --> 00:30:46,150 Si necesito números más grandes, puedo ir a int, que ocupa 4 bytes. 481 00:30:46,150 --> 00:30:49,829 Entonces, ahora no tengo 16 bits con los que jugar, 482 00:30:49,950 --> 00:30:51,930 pero tengo 32 bits con los que jugar. 483 00:30:52,089 --> 00:30:56,289 Entonces, puedo llegar hasta 2 a las 32 posibles valores, ¿vale? 484 00:30:56,650 --> 00:30:59,930 Que van desde menos punto, punto, punto, 485 00:31:00,029 --> 00:31:03,109 2.000 millones hasta más 2.000 millones. 486 00:31:03,809 --> 00:31:07,410 Son 4.000 millones más o menos de números posibles. 487 00:31:08,069 --> 00:31:12,589 Y estos me sobran normalmente. 488 00:31:12,589 --> 00:31:15,930 La mayoría de las veces que usamos un número entero 489 00:31:15,930 --> 00:31:19,329 Este rango es más que aceptable 490 00:31:19,329 --> 00:31:20,130 Edad 491 00:31:20,130 --> 00:31:22,569 Es más aceptable 492 00:31:22,569 --> 00:31:25,109 Tener desde menos 2.000 millones de años 493 00:31:25,109 --> 00:31:26,930 A más 2.000 millones de años 494 00:31:26,930 --> 00:31:28,369 2.000 millones de años 495 00:31:28,369 --> 00:31:30,750 Sí, poca gente que conozco yo 496 00:31:30,750 --> 00:31:32,589 Ha pasado los 2.000 millones de años 497 00:31:32,589 --> 00:31:33,529 ¿Sí? 498 00:31:33,829 --> 00:31:35,809 De hecho para la edad hasta podría 499 00:31:35,809 --> 00:31:37,230 Podría valer un byte 500 00:31:37,230 --> 00:31:39,309 El 37 501 00:31:39,309 --> 00:31:42,910 Llegar a ese 27 502 00:31:42,910 --> 00:31:44,670 No imposible 503 00:31:44,670 --> 00:31:56,329 Pero, si imaginaos un programa que está calculando las distancias entre planetas o entre estrellas, 504 00:31:57,549 --> 00:32:02,210 entonces, en kilómetros, entonces a lo mejor este número de aquí ya se queda por título. 505 00:32:02,930 --> 00:32:06,029 Entonces se necesita una variable que sea todavía más grande. 506 00:32:06,529 --> 00:32:10,470 Esto ocupa 8 bytes en memoria, ¿vale? 507 00:32:10,869 --> 00:32:12,650 Entonces 64 bits, si no me equivoco. 508 00:32:12,650 --> 00:32:14,869 pues entonces puede hacer 509 00:32:14,869 --> 00:32:17,250 números mucho, mucho más grandes. 510 00:32:17,390 --> 00:32:18,509 Siempre enteros son. 511 00:32:18,809 --> 00:32:20,029 Todo esto son enteros. 512 00:32:20,910 --> 00:32:21,130 ¿Vale? 513 00:32:21,670 --> 00:32:22,970 Pero la idea es que 514 00:32:22,970 --> 00:32:25,750 dependiendo del tipo de variable que pillo 515 00:32:25,750 --> 00:32:28,309 ocupará más o menos en memoria. 516 00:32:28,650 --> 00:32:29,250 ¿Vale? 517 00:32:29,609 --> 00:32:33,069 Y podrá contener números más grandes o más pequeños. 518 00:32:34,509 --> 00:32:34,869 ¿Dudas? 519 00:32:36,650 --> 00:32:38,190 ¿Para qué me sirve esto? 520 00:32:38,509 --> 00:32:39,809 Porque depende de lo que hago yo. 521 00:32:40,490 --> 00:32:40,690 ¿Vale? 522 00:32:40,690 --> 00:32:42,730 en nuestros ordenadores, en nuestros ejercicios 523 00:32:42,730 --> 00:32:44,869 nosotros usaremos siempre int porque da igual 524 00:32:44,869 --> 00:32:46,890 pero imaginaos que estáis en una situación 525 00:32:46,890 --> 00:32:48,470 en el que el dispositivo 526 00:32:48,470 --> 00:32:50,390 donde vais a programar tiene 527 00:32:50,390 --> 00:32:51,910 muy poca memoria RAM 528 00:32:51,910 --> 00:32:54,009 poquísima memoria RAM 529 00:32:54,009 --> 00:32:56,349 y yo no voy a usar estos números RAM 530 00:32:56,349 --> 00:32:58,450 entonces en vez de utilizar int 531 00:32:58,450 --> 00:33:00,289 uso byte para que sea lo más 532 00:33:00,289 --> 00:33:02,390 gaste lo menos recursos 533 00:33:02,390 --> 00:33:03,109 posible 534 00:33:03,109 --> 00:33:06,490 si yo hago un programa donde voy a 535 00:33:06,490 --> 00:33:08,470 hacer distancias interestelares 536 00:33:08,470 --> 00:33:10,269 y cosas por el estilo y necesito 537 00:33:10,269 --> 00:33:17,049 un entero grande pues no puedo utilizar esto utilizar si yo estoy contando milisegundos o 538 00:33:17,049 --> 00:33:25,809 nanosegundos en tiempos de reciente largos pues a lo mejor entre hoy y mañana en milisegundos pues 539 00:33:25,809 --> 00:33:32,589 esta cosa aquí no me perdón no es suficiente necesito un número más grande se entiende 540 00:33:32,589 --> 00:33:34,230 Tú das 541 00:33:34,230 --> 00:33:36,470 Vale, ahora 542 00:33:36,470 --> 00:33:38,349 Si en vez de los enteros 543 00:33:38,349 --> 00:33:40,250 Quiero coma flotante 544 00:33:40,250 --> 00:33:41,829 O sea, quiero decimales 545 00:33:41,829 --> 00:33:44,029 Quiero poder tener números coma algo 546 00:33:44,029 --> 00:33:45,789 Tengo dos opciones 547 00:33:45,789 --> 00:33:48,210 Los float o los double 548 00:33:48,210 --> 00:33:49,849 Los float 549 00:33:49,849 --> 00:33:51,970 Ocupan 4 bytes 550 00:33:51,970 --> 00:33:54,029 Y me permiten hacer números 551 00:33:54,029 --> 00:33:56,609 Desde menos 3.4 552 00:33:56,609 --> 00:33:58,269 Multiplicado de 10 a la 38 553 00:33:58,269 --> 00:33:59,309 O sea, sí 554 00:33:59,309 --> 00:34:02,349 Hasta 3.4 por 10 a la 38 555 00:34:02,349 --> 00:34:12,889 son números bastante más grandes, son muchos números, o el double que tiene 8 bytes y puede hacer estas cosas aquí, que son mucho más. 556 00:34:13,670 --> 00:34:26,329 Tened en cuenta que mientras aquí lo que escribo dentro es directamente el número, en Sloat double dentro de la variable no escribo directamente el número, 557 00:34:26,329 --> 00:34:30,090 Pero hay una parte que es un exponente y una parte que es un número. 558 00:34:30,750 --> 00:34:33,989 Y luego calcularé este número elevado a este exponente. 559 00:34:34,210 --> 00:34:37,690 Por eso me permite hacer muchos más números por aquí. 560 00:34:38,250 --> 00:34:39,090 ¿Por qué se llama double? 561 00:34:41,190 --> 00:34:43,030 Porque tiene el doble de precisión. 562 00:34:44,750 --> 00:34:47,829 Este de afloat me permite una precisión buena. 563 00:34:48,710 --> 00:34:52,030 El double me permite una precisión del doble. 564 00:34:52,030 --> 00:35:10,610 Tened en cuenta que, mientras los enteros van directamente por el número que es, aquí tenemos dos problemas con los float y los double. Por un lado, el número máximo al que puedo llegar. Y el segundo problema es cuánto preciso puedo ser con un número. 565 00:35:10,610 --> 00:35:21,409 Imaginaos un número que es 3,123,123,123,123,123,123,123,123,123,123,123,123,123 por un millón de veces. 566 00:35:22,130 --> 00:35:23,650 Un millón de veces, 1, 2, 3. 567 00:35:24,710 --> 00:35:26,789 Pues eso en un ordenador no lo puedo guardar. 568 00:35:27,690 --> 00:35:31,889 Es demasiado preciso para que se pueda guardar en un ordenador. 569 00:35:32,969 --> 00:35:34,210 ¿Me explico lo que quiero decir? 570 00:35:34,210 --> 00:35:37,550 lo puedo aproximar 571 00:35:37,550 --> 00:35:39,329 a un número un poquito más grande 572 00:35:39,329 --> 00:35:41,409 un poquito más pequeño que se pueda 573 00:35:41,409 --> 00:35:42,769 representar 574 00:35:42,769 --> 00:35:44,110 con un dado 575 00:35:44,110 --> 00:35:49,380 pero estos son problemas 576 00:35:49,380 --> 00:35:51,019 complejos que 577 00:35:51,019 --> 00:35:53,360 conllevan a que cuando se hacen 578 00:35:53,360 --> 00:35:55,480 por ejemplo el mundo de la física, el mundo de la biología 579 00:35:55,480 --> 00:35:57,300 cuando se tienen que hacer mediciones muy 580 00:35:57,300 --> 00:35:59,599 precisas con ordenadores, allí tengo problemas 581 00:35:59,599 --> 00:36:01,420 pero por lo que hacemos nosotros 582 00:36:01,420 --> 00:36:02,019 nos da igual 583 00:36:02,019 --> 00:36:07,780 Entonces vamos a declarar variables 584 00:36:07,780 --> 00:36:09,820 Tiro un poquito más adelante 585 00:36:09,820 --> 00:36:11,260 Tanto luego estaré feo 586 00:36:11,260 --> 00:36:13,360 5 minutos antes a lo mejor 587 00:36:13,360 --> 00:36:15,119 Pero aquí si no tengo que bloquear el vídeo 588 00:36:15,119 --> 00:36:17,500 Declaración de variables 589 00:36:17,500 --> 00:36:19,699 Hay dos formas de declaración 590 00:36:19,699 --> 00:36:22,039 Simple o con inicialización 591 00:36:22,039 --> 00:36:24,440 Lo que hemos visto antes es esta aquí debajo 592 00:36:24,440 --> 00:36:26,840 ¿Cómo se hace una declaración simple? 593 00:36:27,420 --> 00:36:27,980 Tipo 594 00:36:27,980 --> 00:36:30,099 Nombre.com 595 00:36:30,099 --> 00:36:32,559 intedad.com 596 00:36:32,559 --> 00:36:33,960 ¿Qué hace esto? 597 00:36:34,320 --> 00:36:36,039 Me está creando un trozo de memoria 598 00:36:36,039 --> 00:36:39,280 Dentro de este trozo de memoria solo puedo poner enteros 599 00:36:39,280 --> 00:36:41,159 Este trozo de memoria se llama edad 600 00:36:41,159 --> 00:36:43,699 Pero no he metido dentro nada 601 00:36:43,699 --> 00:36:46,519 No lo he inicializado 602 00:36:46,519 --> 00:36:48,039 Cuidado 603 00:36:48,039 --> 00:36:49,920 Porque si ahora lo uso 604 00:36:49,920 --> 00:36:51,159 Mi programa explota 605 00:36:51,159 --> 00:36:59,920 En general es muy importante inicializar las variables 606 00:36:59,920 --> 00:37:01,780 Darle un número inicial 607 00:37:02,599 --> 00:37:05,139 En realidad, por ejemplo, en el caso del entero, 608 00:37:05,559 --> 00:37:06,639 si yo no le doy ningún número, 609 00:37:06,820 --> 00:37:08,380 él me lo inicializa en automático a hacer. 610 00:37:09,260 --> 00:37:09,440 ¿Vale? 611 00:37:09,800 --> 00:37:13,360 Pero en teoría yo debería siempre ponerle un número. 612 00:37:13,539 --> 00:37:14,679 O sea, que esta cosa de aquí, 613 00:37:15,320 --> 00:37:17,019 veremos que a veces se puede utilizar, 614 00:37:17,280 --> 00:37:17,920 veremos por qué, 615 00:37:18,320 --> 00:37:21,139 pero en general nosotros usaremos esta ahora. 616 00:37:22,079 --> 00:37:22,519 Sí. 617 00:37:23,039 --> 00:37:25,719 Ah, o sea, el literal es el tipo de dato que equipas 618 00:37:25,719 --> 00:37:27,400 al detectar una variable. 619 00:37:27,780 --> 00:37:30,519 El literal es el valor... 620 00:37:30,519 --> 00:37:31,260 El tipo de datos. 621 00:37:31,260 --> 00:37:39,139 el valor que le das pillándolo del conjunto de todos los posibles valores 622 00:37:39,139 --> 00:37:50,909 de ese tipo. Yo te digo, tu edad es 37, pues 37 es un número que entre 623 00:37:50,909 --> 00:37:57,289 todos los números posibles que son int, he elegido este índice de edad. 624 00:37:58,670 --> 00:38:03,050 Entonces, por ejemplo, int edad, estoy creando una variable que se llama edad, que tiene dentro 625 00:38:03,050 --> 00:38:08,389 enteros pero no sé cuánto vale damos resultado estoy creando una variable que 626 00:38:08,389 --> 00:38:13,250 se llama resultado al trozo de memoria grande cuánto 627 00:38:13,250 --> 00:38:20,630 8 bytes y entonces hay un espacio de memoria de 8 bits va bytes guardado al 628 00:38:20,630 --> 00:38:24,409 que me refiero con resultado cada vez que utilizaré la palabra resultado me 629 00:38:24,409 --> 00:38:27,929 estoy refiriendo a lo que está dentro de esa caja de 8 bytes que guardaron la 630 00:38:27,929 --> 00:38:33,559 memoria y dentro puede tener sólo 631 00:38:35,519 --> 00:38:40,940 decimales decimales de decisión doble de precisión doble 632 00:38:40,940 --> 00:38:46,380 decimal boolean hay espacio libre punto y coma 633 00:38:46,380 --> 00:38:50,880 he creado un espacio de memoria grande cuanto 634 00:38:50,880 --> 00:38:58,219 un byte que se llama hay espacio libre se llama así vale y dentro puede guardar 635 00:38:58,219 --> 00:39:04,900 solo dos tipos de valores. ¿Cuáles valores? ¿Valero o falso? Porque es booleano. ¿Y qué hay dentro? 636 00:39:06,719 --> 00:39:12,019 No lo sé, porque no lo he inicializado, pero normalmente booleano, si no lo inicializo, me pone false. 637 00:39:12,019 --> 00:39:18,800 Edad, si no lo inicializo, me pone cero. Y double, si no lo inicializo, me pone cero también. 638 00:39:18,800 --> 00:39:26,460 Pero inicializadlo, porque luego cuando llegue el futuro, veremos cuándo se usa esto. 639 00:39:26,460 --> 00:39:34,300 Pero ahora sepáis que existe. Pero nosotros usamos esto, que es tipo nombre igual literal punto y coma. 640 00:39:34,860 --> 00:39:38,219 Como por ejemplo, int numpáginas igual 200 punto y coma. 641 00:39:38,840 --> 00:39:40,820 Entonces tengo una variable. ¿Cómo se llama la variable? 642 00:39:43,219 --> 00:39:45,239 Numpáginas. ¿Qué contiene dentro? 643 00:39:46,440 --> 00:39:48,260 Y 200 es un literal de qué? 644 00:39:48,840 --> 00:39:52,010 De int. 645 00:39:53,429 --> 00:39:55,929 Porque en esta caja solo puedo poner int. 646 00:39:55,929 --> 00:39:57,090 ¿Vale? 647 00:39:57,170 --> 00:39:57,809 Solo valores 648 00:39:57,809 --> 00:39:59,429 Que tienen tipo int 649 00:39:59,429 --> 00:40:00,489 Y 200 650 00:40:00,489 --> 00:40:01,409 Es un número entero 651 00:40:01,409 --> 00:40:02,130 Y tiene tipo int 652 00:40:02,130 --> 00:40:03,550 Lo puedo guardar 653 00:40:03,550 --> 00:40:05,289 Boolean 654 00:40:05,289 --> 00:40:05,809 Acabado 655 00:40:05,809 --> 00:40:06,250 Es igual a 656 00:40:06,250 --> 00:40:07,170 False.com 657 00:40:07,170 --> 00:40:09,690 ¿Cómo se llama 658 00:40:09,690 --> 00:40:10,170 La variable? 659 00:40:11,849 --> 00:40:12,849 ¿Es acabado? 660 00:40:14,150 --> 00:40:14,750 No 661 00:40:14,750 --> 00:40:15,429 Porque es falso 662 00:40:15,429 --> 00:40:16,449 ¿Ve? 663 00:40:16,829 --> 00:40:17,469 Probablemente 664 00:40:17,469 --> 00:40:18,869 Esto será en mi programa 665 00:40:18,869 --> 00:40:19,889 Que le he puesto 666 00:40:19,889 --> 00:40:20,690 Acabado false 667 00:40:20,690 --> 00:40:22,269 Y que hará lo que sea 668 00:40:22,269 --> 00:40:23,789 Y cuando en un determinado momento 669 00:40:23,789 --> 00:40:24,530 Habrá acabado 670 00:40:24,530 --> 00:40:25,809 Pondrá acabado true 671 00:40:25,809 --> 00:40:27,690 y entonces yo puedo ir a mirar acabado 672 00:40:27,690 --> 00:40:29,369 y saber si se ha acabado o no 673 00:40:29,369 --> 00:40:30,170 en un determinado momento. 674 00:40:33,010 --> 00:40:34,030 ¿Falso qué es? 675 00:40:35,449 --> 00:40:36,150 ¿Qué es? 676 00:40:37,570 --> 00:40:38,690 Valor booleano. 677 00:40:38,929 --> 00:40:39,730 Es decir, es un 678 00:40:39,730 --> 00:40:41,210 literal 679 00:40:41,210 --> 00:40:42,489 de tipo booleano. 680 00:40:43,929 --> 00:40:44,269 ¿Se entiende? 681 00:40:45,250 --> 00:40:45,570 Easy. 682 00:40:46,570 --> 00:40:46,730 Vale. 683 00:40:49,500 --> 00:40:50,679 Declaración múltiple. 684 00:40:51,099 --> 00:40:53,039 Declaro varias variables de golpe. 685 00:40:53,380 --> 00:40:53,619 ¿Vale? 686 00:40:54,019 --> 00:40:55,880 Tanto con literal como sin literal. 687 00:40:56,119 --> 00:40:56,280 ¿Vale? 688 00:40:57,139 --> 00:40:57,579 Int 689 00:40:57,579 --> 00:41:01,800 ¿Cuántas variables he creado? 690 00:41:02,699 --> 00:41:03,539 Dos. 691 00:41:03,719 --> 00:41:04,420 ¿Cómo se llama la primera? 692 00:41:05,599 --> 00:41:06,820 ¿Cómo se llama la segunda? 693 00:41:07,820 --> 00:41:09,159 ¿Qué contienen? 694 00:41:10,920 --> 00:41:11,360 Cero. 695 00:41:11,780 --> 00:41:12,960 Cero probablemente. 696 00:41:13,500 --> 00:41:14,820 ¿Y qué pueden contener? 697 00:41:14,980 --> 00:41:15,619 ¿Qué tipo tienen? 698 00:41:16,860 --> 00:41:17,340 Interos. 699 00:41:17,500 --> 00:41:17,760 Int. 700 00:41:19,300 --> 00:41:20,280 ¿Me seguís? 701 00:41:20,840 --> 00:41:22,159 ¿Hay alguien que se ha perdido? 702 00:41:22,900 --> 00:41:24,320 Si alguien se ha perdido, me lo diga, 703 00:41:24,480 --> 00:41:25,940 que la próxima se la ha perdido a él 704 00:41:25,940 --> 00:41:27,119 y lo razonamos juntos. 705 00:41:27,579 --> 00:41:30,179 No tengáis miedo. ¿Habéis entendido todo? 706 00:41:31,760 --> 00:41:31,940 Va. 707 00:41:32,860 --> 00:41:36,800 Char, inicial, nombre, coma, inicial, apellido, punto y coma. 708 00:41:38,099 --> 00:41:38,980 ¿Cuántas palabras hay? 709 00:41:43,699 --> 00:41:44,380 Dos. 710 00:41:44,920 --> 00:41:45,599 ¿Cómo se llama la primera? 711 00:41:48,119 --> 00:41:49,079 ¿La segunda? 712 00:41:50,780 --> 00:41:52,059 ¿Qué contienen? 713 00:41:54,539 --> 00:41:55,800 Ni idea. 714 00:41:55,800 --> 00:41:58,500 No sé cuál es el valor por defecto de un char. 715 00:41:58,960 --> 00:41:59,960 Realmente es vacío. 716 00:42:00,400 --> 00:42:00,960 Pero no lo sé. 717 00:42:01,199 --> 00:42:01,780 Hay que probarlo. 718 00:42:01,780 --> 00:42:11,440 que pueden contener un carácter, es decir, un símbolo, una letra, un valor, uno, uno, no dos. 719 00:42:12,599 --> 00:42:18,719 Si fueran dos carácteres, ¿podría usar char? ¿Qué tendría que usar? 720 00:42:21,559 --> 00:42:22,900 No lo hemos visto todavía, string. 721 00:42:25,000 --> 00:42:33,360 O puedo inicializar múltiple o multioble, como lo he escrito aquí, pero con el literal, ¿vale? 722 00:42:33,360 --> 00:42:42,539 entonces aquí cuánta hagamos esto cuántas para en lo de abajo cuántas variables se crean 723 00:42:51,480 --> 00:42:52,119 3 724 00:42:52,119 --> 00:43:15,340 si yo tengo este comando de aquí cuántas variables se crea 725 00:43:22,119 --> 00:43:27,559 no no porque es una declaración este es un único comando es una declaración 726 00:43:27,559 --> 00:43:35,320 múltiple es un coma no es un punto y como que se puede declarar la comerci 727 00:43:35,320 --> 00:43:39,380 intervalle formatura algún te coma lo que está haciendo es creando las dos a 728 00:43:39,380 --> 00:43:44,179 la vez misma cosa aquí está creando tres variables a la vez la primera como se 729 00:43:44,179 --> 00:43:49,440 llama error la segunda la tercera 730 00:43:49,440 --> 00:43:59,599 que contiene que pueden contener las 13 que pueden contener profundo es decir un 731 00:43:59,599 --> 00:44:05,280 valor booleano su tipo es booleano de las 3 732 00:44:05,460 --> 00:44:11,840 la primera tiene la segunda tiene la tercera tiene 733 00:44:11,840 --> 00:44:19,119 que son literales de booleanos sí o no perfecto 734 00:44:19,119 --> 00:44:21,820 Cambiar el valor a una variable, ya lo hemos visto, ¿vale? 735 00:44:21,960 --> 00:44:24,960 Para cambiar el valor a una variable es nombre igual a valor. 736 00:44:25,340 --> 00:44:28,159 Tiene una variable que tiene que haber existido antes. 737 00:44:28,360 --> 00:44:30,699 O sea, antes declaro la variable y luego le cambio el valor. 738 00:44:30,860 --> 00:44:33,219 No puedo cambiar el valor a una variable que no he creado. 739 00:44:33,699 --> 00:44:39,380 La diferencia es que para crear la variable, aquí va el tipo, para cambiarla el tipo no está. 740 00:44:41,460 --> 00:44:41,639 ¿Sí? 741 00:44:42,139 --> 00:44:45,559 Por ejemplo, si hago int edad es igual a 18, fenomenal. 742 00:44:45,659 --> 00:44:49,039 He creado una variable que se llama edad, que puede tener dentro enteros. 743 00:44:49,119 --> 00:44:53,280 y tiene el valor 18, para modificarla, edad igual a 19. 744 00:44:53,880 --> 00:44:56,500 Te estoy diciendo, vete a la porción que se llama edad, 745 00:44:56,880 --> 00:44:59,300 y allí dentro, tira lo que hay ahí dentro, 746 00:44:59,679 --> 00:45:03,400 bórralo, y pon 19, que es un literal de índice. 747 00:45:06,980 --> 00:45:07,380 ¿Entiendes? 748 00:45:07,820 --> 00:45:11,199 ¿Entiendes la diferencia entre declaración y modificación? 749 00:45:13,159 --> 00:45:16,480 Yo, antes de poder modificar algo, lo tengo que haber declarado. 750 00:45:16,900 --> 00:45:20,900 Si no lo hago así, me va a decir, no sé quién es este. 751 00:45:22,219 --> 00:45:23,480 Ponme 19 en edad. 752 00:45:24,159 --> 00:45:25,320 No sé quién es edad. 753 00:45:25,460 --> 00:45:28,340 No puedo resolver el símbolo edad, te voy a decir. 754 00:45:28,639 --> 00:45:30,460 ¿Qué es nuestro símbolo edad? 755 00:45:31,900 --> 00:45:35,760 Lo más declarado que es, no sé qué identificador es, no puedo hacer nada. 756 00:45:36,860 --> 00:45:39,320 Boolean, tienda abierta es igual a true, punto y coma. 757 00:45:39,519 --> 00:45:42,199 ¿Es una declaración o es un cambio de valor? 758 00:45:44,159 --> 00:45:45,219 Declaración, estoy diciendo. 759 00:45:45,360 --> 00:45:48,099 Creemos en una cosa, se mantiene abierta, dentro le pones true, 760 00:45:48,260 --> 00:45:50,719 y puede tener dentro booleanos, o sea, true or false. 761 00:45:50,719 --> 00:45:52,880 y ahora hago tienda abierta igual a false 762 00:45:52,880 --> 00:45:55,699 hasta modificar 763 00:45:55,699 --> 00:45:56,460 ¿sí? 764 00:45:57,500 --> 00:45:58,500 notas y cambios 765 00:45:58,500 --> 00:46:00,380 no he declarado antes 766 00:46:00,380 --> 00:46:02,199 boom, error 767 00:46:02,199 --> 00:46:03,400 ¿sí? 768 00:46:05,610 --> 00:46:07,130 tipo string, ¿vale? 769 00:46:07,710 --> 00:46:10,050 el tipo string es un tipo distinto 770 00:46:10,050 --> 00:46:12,130 no es un tipo primitivo 771 00:46:12,130 --> 00:46:15,190 los tipos primitivos son los que hemos visto hasta ahora 772 00:46:15,190 --> 00:46:16,329 ¿vale? 773 00:46:16,469 --> 00:46:18,530 char, un carácter 774 00:46:18,530 --> 00:46:19,630 es un tipo primitivo 775 00:46:19,630 --> 00:46:22,530 string no es un tipo primitivo 776 00:46:22,530 --> 00:46:28,909 ¿Le veis una diferencia gráfica entre String y los otros? 777 00:46:31,519 --> 00:46:32,599 La mayúscula. 778 00:46:33,360 --> 00:46:35,119 String es con la S mayúscula. 779 00:46:35,360 --> 00:46:38,599 ¿Y cuándo un identificador empieza con una letra mayúscula? 780 00:46:38,679 --> 00:46:39,039 ¿Qué es? 781 00:46:46,230 --> 00:46:49,090 ¿Dónde ponemos nosotros nombres con la letra mayúscula? 782 00:46:49,429 --> 00:46:51,550 Con la primera letra mayúscula. 783 00:46:57,710 --> 00:46:58,849 En Java. 784 00:46:58,849 --> 00:47:04,670 ¿Dónde hemos usado nosotros identificadores cuya primera letra es mayúscula? 785 00:47:04,710 --> 00:47:05,269 En el sistema. 786 00:47:05,489 --> 00:47:07,230 No, no lo hemos hecho nosotros. 787 00:47:07,329 --> 00:47:07,829 Lo hemos usado, 788 00:47:07,909 --> 00:47:08,750 pero no lo hemos hecho nosotros. 789 00:47:08,969 --> 00:47:09,969 No es un identificador 790 00:47:09,969 --> 00:47:10,710 que hemos dado nosotros. 791 00:47:10,809 --> 00:47:11,250 No es un nombre 792 00:47:11,250 --> 00:47:12,070 que hemos dado nosotros. 793 00:47:14,739 --> 00:47:15,659 Public class 794 00:47:15,659 --> 00:47:17,400 y el nombre de la clase. 795 00:47:18,199 --> 00:47:19,260 El nombre de la clase 796 00:47:19,260 --> 00:47:19,960 va en mayúscula. 797 00:47:20,219 --> 00:47:20,639 Y entonces, 798 00:47:20,920 --> 00:47:21,340 stringer, 799 00:47:21,360 --> 00:47:22,400 si tiene la S mayúscula, 800 00:47:22,460 --> 00:47:22,860 ¿qué es? 801 00:47:23,059 --> 00:47:23,480 La clase. 802 00:47:26,019 --> 00:47:26,460 ¿Vale? 803 00:47:27,260 --> 00:47:27,699 Vosotros, 804 00:47:27,800 --> 00:47:28,539 cada vez que intentáis 805 00:47:28,539 --> 00:47:29,480 el stringer 806 00:47:29,480 --> 00:47:30,940 como si fuera un tipo, 807 00:47:31,380 --> 00:47:32,380 en realidad ya estáis 808 00:47:32,380 --> 00:47:33,599 trabajando con objetos, 809 00:47:34,139 --> 00:47:34,800 pero no lo sabéis. 810 00:47:36,019 --> 00:47:36,460 ¿Vale? 811 00:47:36,460 --> 00:47:38,860 Lo volveremos a ver, ¿vale? 812 00:47:38,860 --> 00:47:40,840 Cuando en un futuro veremos que son los objetos 813 00:47:40,840 --> 00:47:42,579 Y le vamos a acordar string, jaja 814 00:47:42,579 --> 00:47:43,860 ¿Vale? Pero por ahora 815 00:47:43,860 --> 00:47:47,000 Por ahora nosotros usamos string como si fuera 816 00:47:47,000 --> 00:47:49,139 Otro tipo primitivo, solo que los otros tipos 817 00:47:49,139 --> 00:47:50,780 Primitivos son todos sin minúsculas 818 00:47:50,780 --> 00:47:52,900 String es el único que va en mayúsculas 819 00:47:52,900 --> 00:47:55,079 ¿Vale? Entenderemos por qué en un futuro 820 00:47:55,079 --> 00:47:57,019 Y lo que tiene string 821 00:47:57,019 --> 00:47:59,300 Es una concatenación 822 00:47:59,300 --> 00:48:00,179 De 823 00:48:00,179 --> 00:48:01,619 Chart 824 00:48:01,619 --> 00:48:05,039 Es un elemento, una cosa 825 00:48:05,039 --> 00:48:07,139 un objeto que lo que hace 826 00:48:07,139 --> 00:48:09,059 es concatenar dentro 827 00:48:09,059 --> 00:48:10,699 un char detrás de otro char 828 00:48:10,699 --> 00:48:11,480 detrás de otro char 829 00:48:11,480 --> 00:48:14,739 como por ejemplo hola 830 00:48:14,739 --> 00:48:17,179 hola es el carácter h 831 00:48:17,179 --> 00:48:19,039 seguido del carácter a o 832 00:48:19,039 --> 00:48:20,820 seguido del carácter l etc 833 00:48:20,820 --> 00:48:23,239 si os 834 00:48:23,239 --> 00:48:24,860 fijáis bien 835 00:48:24,860 --> 00:48:27,360 cuando trabajo 836 00:48:27,360 --> 00:48:28,940 con string uso 837 00:48:28,940 --> 00:48:30,300 las comillas 838 00:48:30,300 --> 00:48:33,099 las dobles, las que están en mayúscula 839 00:48:33,099 --> 00:48:33,500 dos 840 00:48:33,500 --> 00:48:36,380 sin embargo 841 00:48:36,380 --> 00:48:38,219 cuando he hablado de char 842 00:48:38,219 --> 00:48:40,099 he hecho un ejemplo de char 843 00:48:40,099 --> 00:48:42,539 por algún lado, hay un ejemplito por aquí 844 00:48:42,539 --> 00:48:44,739 no he usado 845 00:48:44,739 --> 00:48:46,440 la comilla doble 846 00:48:46,440 --> 00:48:48,400 he usado 847 00:48:48,400 --> 00:48:50,239 una sola comilla, una apóstol 848 00:48:50,239 --> 00:48:51,599 que es 849 00:48:51,599 --> 00:48:54,099 al lado de cero 850 00:48:54,099 --> 00:48:56,989 si 851 00:48:56,989 --> 00:48:59,730 si yo escribo esto así 852 00:48:59,730 --> 00:49:01,269 este es un char 853 00:49:01,269 --> 00:49:03,530 si yo escribo doble comillas 854 00:49:03,530 --> 00:49:05,070 a doble comillas 855 00:49:05,070 --> 00:49:18,730 ese es un literal de, repito, este es un literal de, y si le pongo comillas a comillas, ese es un literal de, ¿entendéis? 856 00:49:21,940 --> 00:49:26,539 Vale, entonces, por ejemplo, esta cosa aquí, 857 00:49:26,539 --> 00:49:32,159 y, en el medio del camino de nuestra vida, en el trabajo de una selva oscura, que la debilitaría a las marritas, 858 00:49:32,239 --> 00:49:37,159 ay, a decir cuál era la cosa dura de esta selva, el barrio de los transportes, que no pensé en el nuevo puro, 859 00:49:37,159 --> 00:49:39,579 o cosas por el estilo, es el principio de 860 00:49:39,579 --> 00:49:41,440 muy bien 861 00:49:41,440 --> 00:49:43,440 muy bien, y todo esto 862 00:49:43,440 --> 00:49:45,420 es una literal de 863 00:49:45,420 --> 00:49:46,980 string 864 00:49:46,980 --> 00:49:49,179 ¿se entiende? 865 00:49:50,179 --> 00:49:51,300 da igual el tamaño 866 00:49:51,300 --> 00:49:53,599 no es que una palabra es un string 867 00:49:53,599 --> 00:49:55,679 no, de comillas a comillas 868 00:49:55,679 --> 00:49:57,500 todo lo que está ahí dentro es un literal 869 00:49:57,500 --> 00:49:57,980 de string 870 00:49:57,980 --> 00:50:03,280 ¿dudas? vale, declaración 871 00:50:03,280 --> 00:50:04,800 de variable de tipo string 872 00:50:04,800 --> 00:50:07,099 string, nombre es 873 00:50:07,099 --> 00:50:07,940 igual a Juan 874 00:50:07,940 --> 00:50:10,800 String ciudad es igual a Toledo 875 00:50:10,800 --> 00:50:13,199 String trampa es igual a tres 876 00:50:13,199 --> 00:50:15,780 Hay una trampa aquí 877 00:50:15,780 --> 00:50:21,619 Una trampa, todo correcto 878 00:50:21,619 --> 00:50:22,159 ¿Vale? 879 00:50:22,900 --> 00:50:25,360 Cuidado, comilla, tres, comilla 880 00:50:25,360 --> 00:50:26,659 Es un literal de 881 00:50:26,659 --> 00:50:28,400 String 882 00:50:28,400 --> 00:50:33,469 Si yo pongo string trampa es igual a tres 883 00:50:33,469 --> 00:50:36,699 ¿Es correcto o no? 884 00:50:36,699 --> 00:50:38,599 No, ¿por qué no? 885 00:50:38,599 --> 00:50:41,260 ¿Y 3 qué es? 886 00:50:42,800 --> 00:50:44,519 3 es un literal de int. 887 00:50:45,880 --> 00:50:47,699 Pero no me vale para ponerlo dentro de string. 888 00:50:48,579 --> 00:50:49,500 ¿Entienden la diferencia? 889 00:50:50,820 --> 00:50:51,320 Eso menos. 890 00:50:52,019 --> 00:50:53,119 Estamos con las variables. 891 00:50:54,059 --> 00:50:55,599 Muchas cosas, pero... 892 00:50:56,139 --> 00:51:00,559 Vale, entonces, para verlo gráficamente. 893 00:51:01,079 --> 00:51:01,280 ¿Eh? 894 00:51:01,280 --> 00:51:02,440 Misma cosa otra vez. 895 00:51:02,659 --> 00:51:04,420 Muchas cosas, pero son siempre las mismas. 896 00:51:06,019 --> 00:51:07,579 Int edad de guardia 16. 897 00:51:07,579 --> 00:51:13,219 tengo un trozo de memoria con dentro 16 sólo puede contener enteros y se llama edad 898 00:51:14,659 --> 00:51:27,019 20 días igual a 22, misma cosa, string nombre igual a stefano, stefano sin la e, sin ph, con una f sola 899 00:51:27,019 --> 00:51:36,239 con la o al final, que lo sepáis, que luego os va a parecer, string a la mesa igual a octubre, es una variable que se llama 900 00:51:36,239 --> 00:51:41,280 mes, que puede tener string dentro y tiene el valor octubre, literal octubre. 901 00:51:41,280 --> 00:51:44,480 ¿Se entiende? 902 00:51:59,679 --> 00:52:05,519 Entonces, int resultado es igual a 22. Creo una nueva variable que es resultado 903 00:52:05,519 --> 00:52:06,920 en 32. Ahora digo 904 00:52:06,920 --> 00:52:08,000 result... 905 00:52:08,000 --> 00:52:17,230 ¡Ay! ¡Ay! 906 00:52:17,389 --> 00:52:19,309 Ahora mejor. Entonces, 907 00:52:20,590 --> 00:52:21,590 si el resultado 908 00:52:21,590 --> 00:52:22,809 de 22 me crea esto, 909 00:52:22,929 --> 00:52:24,769 resultado es igual a 17, ¿qué hace? 910 00:52:31,130 --> 00:52:32,550 No crea una nueva variable, 911 00:52:32,929 --> 00:52:34,929 es la misma variable, pero el valor 912 00:52:34,929 --> 00:52:37,289 lo cambia en 17. 913 00:52:38,269 --> 00:52:38,489 Vale. 914 00:52:38,949 --> 00:52:41,230 Resultado es igual a 5 más 400. 915 00:52:41,230 --> 00:52:44,960 ¿Qué hace? ¿Y qué pone? 916 00:52:47,659 --> 00:52:48,940 Hace resultado, 917 00:52:48,940 --> 00:52:52,199 evalúa lo que está a la derecha del igual 918 00:52:52,199 --> 00:52:55,119 entonces hace la operación 400 más 5 919 00:52:55,119 --> 00:52:56,179 405 920 00:52:56,179 --> 00:52:58,039 y este valor final 921 00:52:58,039 --> 00:53:00,000 lo guarda dentro del resultado 922 00:53:00,000 --> 00:53:02,119 por lo tanto dentro del resultado tengo 923 00:53:02,119 --> 00:53:07,440 resultado es igual a 10 por 10 menos 200 924 00:53:07,440 --> 00:53:14,639 lo calcula y lo pone 925 00:53:14,639 --> 00:53:15,800 ¿y cuánto sale? 926 00:53:16,860 --> 00:53:17,920 menos 100 927 00:53:17,920 --> 00:53:19,860 es un índice menos 100 928 00:53:19,860 --> 00:53:21,719 ¿sí? 929 00:53:24,789 --> 00:53:25,349 menos 100 930 00:53:25,349 --> 00:53:26,809 ¿sí? 931 00:53:29,369 --> 00:53:37,269 Siguiente 932 00:53:37,269 --> 00:53:41,739 Entonces 933 00:53:41,739 --> 00:53:45,659 Variable int res es igual a cero 934 00:53:45,659 --> 00:53:46,699 Me crea esta variable 935 00:53:46,699 --> 00:53:49,400 Int op es igual a dos 936 00:53:49,400 --> 00:53:49,860 ¿Qué hace? 937 00:53:51,420 --> 00:53:52,719 Crea otra variable 938 00:53:52,719 --> 00:53:54,940 Que dentro le pone dos 939 00:53:54,940 --> 00:53:57,519 Res es igual a op más uno 940 00:53:57,519 --> 00:54:01,949 Cambia en res 941 00:54:01,949 --> 00:54:03,650 Y le pone ¿cuánto? 942 00:54:04,650 --> 00:54:08,219 Lo que hay dentro de op 943 00:54:08,219 --> 00:54:31,219 más 1. Dentro de OPT, ¿qué hay? 2. 2 más 1, 3. Lo repito, RES es 0. OPT es 2. Ahora me dice, dentro de RES, pone el resultado de esta operación. 944 00:54:31,219 --> 00:54:32,559 ¿Cuál es el resultado de la variación? 945 00:54:32,820 --> 00:54:33,980 OP vale 2. 946 00:54:35,500 --> 00:54:38,679 Esto vale 1, 2 más 1, 3. 947 00:54:39,099 --> 00:54:41,760 Este 3 lo guardas dentro de RES. 948 00:54:45,510 --> 00:54:49,090 Creo que aquí hay un pequeño paso hacia adelante del número de la variable. 949 00:54:49,789 --> 00:54:50,190 ¿Dudas? 950 00:54:51,250 --> 00:54:51,510 Vale. 951 00:54:52,909 --> 00:55:00,969 OP, esta, es igual a RES más RES por OP. 952 00:55:02,309 --> 00:55:03,730 ¿Cuánto pongo allí dentro? 953 00:55:04,070 --> 00:55:28,179 aquí alguien me ha dicho 12 954 00:55:28,179 --> 00:55:29,260 ¿quién está de acuerdo con 12? 955 00:55:30,840 --> 00:55:32,420 ¿quién no está de acuerdo con 12? 956 00:55:34,000 --> 00:55:35,739 ¿y cuánto es para vosotros? 957 00:55:35,739 --> 00:55:44,980 que hay de nuevo aquí que es un poquito raro 958 00:55:44,980 --> 00:56:02,860 pero que hay que hay diferente por respeto a todo lo que hemos hecho ahora aquí en esta cosa 959 00:56:02,860 --> 00:56:06,360 está haciendo la operación 960 00:56:06,360 --> 00:56:07,619 solo con los números de las variables 961 00:56:07,619 --> 00:56:10,300 yo creo que lo que pasa 962 00:56:10,300 --> 00:56:12,119 es que en la diapositiva anterior 963 00:56:12,119 --> 00:56:14,300 has neutralizado variables 964 00:56:14,300 --> 00:56:15,860 y luego cuando has modificado 965 00:56:15,860 --> 00:56:17,019 el valor de cada una 966 00:56:17,019 --> 00:56:20,119 realmente lo estás modificando 967 00:56:20,119 --> 00:56:21,699 y cambiándolo de nuevo 968 00:56:21,699 --> 00:56:23,280 pero aquí en la siguiente diapositiva 969 00:56:23,280 --> 00:56:26,260 estás utilizando el valor del último valor 970 00:56:26,260 --> 00:56:27,119 que se ha quedado en la variable 971 00:56:27,119 --> 00:56:29,719 aquí estoy utilizando 972 00:56:29,719 --> 00:56:32,199 variables también a la derecha 973 00:56:32,199 --> 00:56:32,800 del igual 974 00:56:32,800 --> 00:56:35,159 antes la usaba solo a la izquierda 975 00:56:35,159 --> 00:56:36,800 pero también 976 00:56:36,800 --> 00:56:39,699 en esta última hago una cosa rara 977 00:56:39,699 --> 00:56:40,280 que es 978 00:56:40,280 --> 00:56:43,119 usar 979 00:56:43,119 --> 00:56:45,300 la misma variable 980 00:56:45,300 --> 00:56:47,260 a la izquierda 981 00:56:47,260 --> 00:56:48,400 y a la derecha 982 00:56:48,400 --> 00:56:52,309 esto es subtil 983 00:56:52,309 --> 00:56:55,489 acordaos que cuando se hace una cosa así 984 00:56:55,489 --> 00:56:57,309 siempre antes 985 00:56:57,309 --> 00:56:58,869 se hace la operación 986 00:56:58,869 --> 00:57:01,369 y una vez que he evaluado la operación 987 00:57:01,369 --> 00:57:02,429 y tengo el resultado 988 00:57:02,429 --> 00:57:04,050 a este punto 989 00:57:04,050 --> 00:57:08,599 lo guardo, porque no es tan obvio 990 00:57:08,599 --> 00:57:10,400 porque si yo estoy usando op aquí 991 00:57:10,400 --> 00:57:12,519 y aquí op, no es que le estoy 992 00:57:12,519 --> 00:57:14,719 dando un valor y luego lo reuso aquí 993 00:57:14,719 --> 00:57:16,440 y si op vale eso 994 00:57:16,440 --> 00:57:17,900 no sé si me explico lo que quiero decir 995 00:57:17,900 --> 00:57:20,400 no es que esto es 12, porque el resultado de esto 996 00:57:20,400 --> 00:57:22,079 es 12, entonces cuando uso 12, 12 997 00:57:22,079 --> 00:57:23,760 entra en un bucle, no, vale 998 00:57:23,760 --> 00:57:26,519 antes me olvido del operador este aquí 999 00:57:26,519 --> 00:57:28,599 hago la operación a la derecha 1000 00:57:28,599 --> 00:57:30,440 hago la multiplicación que tengo que hacer 1001 00:57:30,440 --> 00:57:32,440 y luego esta es la operación, y como hago la 1002 00:57:32,440 --> 00:57:33,980 operación, pues sustituyendo 1003 00:57:33,980 --> 00:57:38,639 cuando escribo res, escribo lo que está dentro de res 1004 00:57:38,639 --> 00:57:41,440 3, 3 es 3 1005 00:57:41,440 --> 00:57:46,019 y op es 2, entonces esto es 3 más 3 1006 00:57:46,019 --> 00:57:49,500 entre paréntesis por 2, 6 por 2 1007 00:57:49,500 --> 00:57:53,980 12, y el valor que sacaré aquí 12, lo guardo 1008 00:57:53,980 --> 00:57:55,019 dentro de op 1009 00:57:55,019 --> 00:58:02,400 ¿Qué? Aquí, 12. 1010 00:58:03,400 --> 00:58:09,719 Entonces, si se pone ese mismo comando debajo más veces, va a seguir multiplicando el resultado anterior. 1011 00:58:10,719 --> 00:58:17,480 Si yo lanzo otra vez este mismo comando, me haría 3 más 3, 6, por 12. 1012 00:58:18,760 --> 00:58:22,920 Y 6 por 12 es un programa que, un cálculo que nadie puede hacer de mí. 1013 00:58:23,639 --> 00:58:23,940 ¿Vale? 1014 00:58:25,639 --> 00:58:28,480 Ok. Vamos a ver esto entonces. 1015 00:58:28,639 --> 00:58:34,920 entonces 1016 00:58:34,920 --> 00:58:38,500 creo una palabra que se llama hola 1017 00:58:38,500 --> 00:58:40,320 una palabra que se llama 1018 00:58:40,320 --> 00:58:42,139 palabra y que tiene dentro el lo 1019 00:58:42,139 --> 00:58:43,059 esto 1020 00:58:43,059 --> 00:58:44,980 ¿qué hace esto? 1021 00:58:48,920 --> 00:58:50,599 cambia lo que hay allí dentro 1022 00:58:50,599 --> 00:58:51,559 y le pone world 1023 00:58:51,559 --> 00:58:54,659 por lo tanto ahora allí dentro tengo solo world 1024 00:58:54,659 --> 00:58:58,780 vale, aquí 1025 00:58:58,780 --> 00:59:01,400 palabra es igual a el lo 1026 00:59:01,400 --> 00:59:02,639 más 1027 00:59:02,639 --> 00:59:03,679 world 1028 00:59:03,679 --> 00:59:09,590 ¿qué es el más? 1029 00:59:09,590 --> 00:59:15,050 Nosotros estamos acostumbrados a que sea una suma. 1030 00:59:16,190 --> 00:59:18,829 Pero, ¿gato más cocodrilo cuánto hace? 1031 00:59:20,030 --> 00:59:21,010 Ni idea. 1032 00:59:21,690 --> 00:59:26,230 Esto porque el operador más es sobrecargado. 1033 00:59:26,969 --> 00:59:34,630 En Java tiene dos valores distintos dependiendo de si lo uso con palabras o lo uso con números. 1034 00:59:35,010 --> 00:59:39,210 Si lo uso con números, es el operador aritmético que todos conocéis. 1035 00:59:39,210 --> 00:59:44,949 Si lo uso entre palabras, o palabras con números, o palabras con cualquier otra cosa, 1036 00:59:45,449 --> 00:59:50,329 pues entonces, en vez de ser una suma aritmética, es una concatenación. 1037 00:59:51,250 --> 00:59:55,030 Píllame lo que está a la izquierda y pégale detrás lo que está a la derecha. 1038 00:59:55,929 --> 01:00:00,769 Entonces, esto hace que salga el logotipo. 1039 01:00:07,789 --> 01:00:09,550 Sería sin espacio, ¿vale? 1040 01:00:09,550 --> 01:00:12,789 esto sería en los bordes sin espacio 1041 01:00:12,789 --> 01:00:14,750 o pongo un espacio aquí 1042 01:00:14,750 --> 01:00:15,989 o si no son pegados 1043 01:00:15,989 --> 01:00:18,889 no hay ningún espacio aquí, esto es un typo 1044 01:00:18,889 --> 01:00:21,030 error, por lo tanto lo vais apuntando 1045 01:00:21,030 --> 01:00:21,429 ahí 1046 01:00:21,429 --> 01:00:24,269 y si hago esto 1047 01:00:24,269 --> 01:00:30,199 que sale ahí dentro 1048 01:00:30,199 --> 01:00:32,909 col 1049 01:00:32,909 --> 01:00:36,769 con pegado a 1050 01:00:36,769 --> 01:00:37,809 entonces hola 1051 01:00:37,809 --> 01:00:40,150 espacio a, espacio t 1052 01:00:40,150 --> 01:00:41,690 con pegado detrás a odos 1053 01:00:41,690 --> 01:00:45,610 hola a todos, ¿entiendes? 1054 01:00:46,750 --> 01:00:49,010 Sí, es la hora. 1055 01:00:50,349 --> 01:00:52,469 Venga, debo seguir.