1 00:00:00,000 --> 00:00:03,640 Vale, pues entonces ya habíamos dicho 2 00:00:03,640 --> 00:00:05,540 Variables de tipo entero 3 00:00:05,540 --> 00:00:07,120 Las primeras con las que estábamos 4 00:00:07,120 --> 00:00:09,039 Estas cuatro 5 00:00:09,039 --> 00:00:11,839 Estas cuatro opciones 6 00:00:11,839 --> 00:00:13,759 De nuevo 7 00:00:13,759 --> 00:00:15,560 Recordamos la diferencia entre ellas 8 00:00:15,560 --> 00:00:18,000 El espacio que usan para almacenar 9 00:00:18,000 --> 00:00:19,800 Que con la voz de fondo 10 00:00:19,800 --> 00:00:20,480 Me distraigo 11 00:00:20,480 --> 00:00:23,519 ¿Vale? Estas cuatro opciones 12 00:00:23,519 --> 00:00:25,820 Que de nuevo ya sabemos la diferencia 13 00:00:25,820 --> 00:00:27,760 Entre ellas, el tamaño que usan para almacenar 14 00:00:27,760 --> 00:00:28,719 El número, ¿vale? 15 00:00:28,719 --> 00:00:32,219 Entonces, asignación, sentencia de asignación 16 00:00:32,219 --> 00:00:34,359 Ya sabemos que es nombre de variable 17 00:00:34,359 --> 00:00:36,619 Operador de asignación 18 00:00:36,619 --> 00:00:38,539 Valor que le damos a la variable 19 00:00:38,539 --> 00:00:39,259 ¿Vale? 20 00:00:39,899 --> 00:00:42,560 Entonces esto ya sabemos que lo podemos hacer en cualquier momento 21 00:00:42,560 --> 00:00:45,869 Si hacemos 22 00:00:45,869 --> 00:00:46,869 Uy, ¿dónde me he ido? 23 00:00:51,350 --> 00:00:54,630 Si hacemos esto, esta variable se queda sobrescrita 24 00:00:54,630 --> 00:00:57,329 Tenía nueve cuando la inicializamos 25 00:00:57,329 --> 00:00:58,750 Porque recordad que se puede 26 00:00:58,750 --> 00:01:03,229 Asignar un valor a la vez que la declaramos 27 00:01:03,229 --> 00:01:06,069 Tenía nueve, pero se queda sobrescrita 28 00:01:06,069 --> 00:01:07,909 ¿Vale? Y así vamos asignando valores 29 00:01:07,909 --> 00:01:09,829 A las variables 30 00:01:09,829 --> 00:01:11,609 ¿Vale? Entonces 31 00:01:11,609 --> 00:01:14,049 Nosotros ahora estamos asignando 32 00:01:14,049 --> 00:01:15,670 Valores a variables 33 00:01:15,670 --> 00:01:17,930 Directamente en el código 34 00:01:17,930 --> 00:01:19,310 Directamente en el código 35 00:01:19,310 --> 00:01:22,269 Claro, no es la situación habitual 36 00:01:22,269 --> 00:01:23,709 Porque normalmente un programa 37 00:01:23,709 --> 00:01:25,790 Trabaja con qué? Con lo que se llaman 38 00:01:25,790 --> 00:01:26,750 Datos de entrada 39 00:01:26,750 --> 00:01:29,989 Y los datos de entrada se dan en el momento 40 00:01:29,989 --> 00:01:31,290 En el que el programa se ejecuta 41 00:01:31,290 --> 00:01:39,609 El programa se ejecuta y en el momento de la ejecución lo natural es que pida unos datos para rellenar las variables. 42 00:01:39,989 --> 00:01:46,189 Entonces en una ejecución pedirá unos datos y para una ejecución recibirá esos datos y trabajará con ellos. 43 00:01:46,810 --> 00:01:53,069 Para la siguiente ejecución, tres días después, vuelve a pedir los datos, recibe los datos y trabaja con ellos. 44 00:01:53,069 --> 00:02:00,150 Entonces lo normal es que las variables lógicamente se rellenen con datos de entrada que se piden en el momento de la ejecución. 45 00:02:00,150 --> 00:02:03,290 porque si no el programa no tendría mayor interés 46 00:02:03,290 --> 00:02:06,609 el programa sirve para trabajar con datos 47 00:02:06,609 --> 00:02:09,669 que el usuario que ejecuta ese programa le dé 48 00:02:09,669 --> 00:02:13,030 programa para calcular el factorial de un número 49 00:02:13,030 --> 00:02:16,210 pues el programa para calcular el factorial de un número 50 00:02:16,210 --> 00:02:19,150 tiene interés si yo le puedo dar 51 00:02:19,150 --> 00:02:21,930 un número diferente en cada ejecución, lógicamente 52 00:02:21,930 --> 00:02:23,650 si no, no tendría ningún interés ese programa 53 00:02:23,650 --> 00:02:28,189 entonces en ese programa para calcular el factorial de un número 54 00:02:28,189 --> 00:02:29,770 pues yo declararé una variable 55 00:02:29,770 --> 00:02:32,349 para ese numerito con el que tengo que trabajar 56 00:02:32,349 --> 00:02:36,569 y esa variable no le asignaré el valor por código, lógicamente 57 00:02:36,569 --> 00:02:40,750 sino que tendré que poner aquí alguna sentencia 58 00:02:40,750 --> 00:02:45,830 que se corresponda con leer valor del teclado 59 00:02:45,830 --> 00:02:50,430 y será una sentencia de asignación igualmente 60 00:02:50,430 --> 00:02:54,729 entonces lo que quiero decir es que cuando asignamos valor a una variable 61 00:02:54,729 --> 00:02:57,830 el valor que ponemos a la derecha 62 00:02:57,830 --> 00:03:25,930 y siempre a la derecha, recordad que ahí no hay alternativa, nombre de variable a la izquierda, operador de asignación, nombre de variable, perdón, valor a la derecha, pues el valor que demos aquí, se lo podemos poner a capón como hemos hecho aquí, pero bueno, eso nos interesará alguna vez porque estemos haciendo algo concreto, pero en la mayoría de los casos, los valores que damos a variables, los tenemos que asignar de otro sitio, y entonces aquí, ¿qué tocará poner?, 63 00:03:25,930 --> 00:03:28,770 Tocará poner una sentencia que lee del teclado, nada más. 64 00:03:29,389 --> 00:03:32,409 Y esta sentencia que lee del teclado es la que tomará un valor, 65 00:03:32,949 --> 00:03:34,729 tomará el valor, y ese valor, 66 00:03:35,110 --> 00:03:37,909 ese valor que se ha tomado leyendo el teclado va aquí. 67 00:03:39,110 --> 00:03:39,310 ¿Vale? 68 00:03:39,370 --> 00:03:43,310 Luego las sentencias de lectura de teclado, de consola, 69 00:03:44,090 --> 00:03:46,789 las tenéis que ver como si fueran sentencias de asignación 70 00:03:46,789 --> 00:03:48,969 porque lo son, son sentencias de asignación. 71 00:03:49,629 --> 00:03:50,409 Asigno un valor. 72 00:03:50,650 --> 00:03:51,030 ¿Qué valor? 73 00:03:51,409 --> 00:03:54,810 El que está leyendo esto del teclado, el que está leyendo, 74 00:03:54,810 --> 00:03:57,289 Ese valor que está leyendo 75 00:03:57,289 --> 00:03:58,449 Se asigna a esta variable 76 00:03:58,449 --> 00:04:01,069 Pero ahora mismo, como estamos solamente viendo 77 00:04:01,069 --> 00:04:03,110 Las diferencias entre matices 78 00:04:03,110 --> 00:04:05,569 De diferentes tipos y de asignaciones 79 00:04:05,569 --> 00:04:07,389 Pues todavía no ponemos la sentencia 80 00:04:07,389 --> 00:04:08,310 De lectura del teclado 81 00:04:08,310 --> 00:04:11,250 Cuando ya queramos hacer 82 00:04:11,250 --> 00:04:13,090 Algún ejemplo de programa que ya hace 83 00:04:13,090 --> 00:04:15,270 Algo interesante, pues para que ese programa 84 00:04:15,270 --> 00:04:16,410 Haga algo interesante 85 00:04:16,410 --> 00:04:18,569 Tenemos que meter esa sentencia 86 00:04:18,569 --> 00:04:20,569 Para poder leer el dato, si no el programa 87 00:04:20,569 --> 00:04:22,110 No nos sirve para nada 88 00:04:22,110 --> 00:04:24,990 Bueno, pues seguimos con 89 00:04:24,990 --> 00:04:27,290 Pequeñas cuestiones 90 00:04:27,290 --> 00:04:28,889 Y asuntos de variables enteras 91 00:04:28,889 --> 00:04:30,569 Vale, la variable int 92 00:04:30,569 --> 00:04:31,829 Pues no tiene mayor historia 93 00:04:31,829 --> 00:04:34,829 Aquí, pequeñas cositas 94 00:04:34,829 --> 00:04:36,649 Que esto sí que entiendo que a lo mejor a uno 95 00:04:36,649 --> 00:04:38,670 Se le puede ir olvidando con el tiempo 96 00:04:38,670 --> 00:04:39,930 Pero no es tan crítico 97 00:04:39,930 --> 00:04:43,430 Porque como normalmente uno usa siempre variables int 98 00:04:43,430 --> 00:04:44,750 Pues no suele ser el problema 99 00:04:44,750 --> 00:04:47,310 Vale, ¿cuál es la diferencia entre la variable int 100 00:04:47,310 --> 00:04:48,870 Y la variable long? 101 00:04:49,509 --> 00:04:50,670 ¿La recordáis, verdad? 102 00:04:52,110 --> 00:04:54,129 guarda mucho más, mucho más 103 00:04:54,129 --> 00:04:55,910 tamaño de memoria. 104 00:04:56,509 --> 00:04:58,269 Exacto, vale. Entonces 105 00:04:58,269 --> 00:05:00,149 yo aquí en número 3 puedo poner un 106 00:05:00,149 --> 00:05:02,230 número muy largote, ¿vale? 107 00:05:02,689 --> 00:05:03,970 Puedo poner un número muy largote. 108 00:05:04,930 --> 00:05:05,430 Pero claro, 109 00:05:06,350 --> 00:05:07,990 yo he puesto un número muy 110 00:05:07,990 --> 00:05:10,050 largote. ¿Veis este 111 00:05:10,050 --> 00:05:12,189 número? Si hiciéramos el cálculo 112 00:05:12,189 --> 00:05:13,889 de lo que cabe en ir, que lo haríamos 113 00:05:13,889 --> 00:05:15,509 elevando 2 a la 31, 114 00:05:17,129 --> 00:05:17,850 pues 115 00:05:17,850 --> 00:05:19,029 este número es mayor. 116 00:05:20,009 --> 00:05:21,329 Pero sin embargo es menor, 117 00:05:21,329 --> 00:05:23,089 bueno, lo he hecho un poco a voleo 118 00:05:23,089 --> 00:05:26,230 mi intención era que fuera menor 119 00:05:26,230 --> 00:05:27,990 a 2 elevado a 64 120 00:05:27,990 --> 00:05:29,910 con lo cual según la teoría 121 00:05:29,910 --> 00:05:30,829 que yo os he dicho 122 00:05:30,829 --> 00:05:34,529 este número debería caber en una variable long 123 00:05:34,529 --> 00:05:35,970 y sin embargo 124 00:05:35,970 --> 00:05:38,110 el compilador está fallando 125 00:05:38,110 --> 00:05:40,569 entonces el entorno de desarrollo 126 00:05:40,569 --> 00:05:42,129 nos facilita la tarea 127 00:05:42,129 --> 00:05:43,769 de ver errores de compilación 128 00:05:43,769 --> 00:05:46,310 porque como os dije el martes 129 00:05:46,310 --> 00:05:48,110 el entorno de desarrollo tal cual 130 00:05:48,110 --> 00:05:50,290 voy escribiendo, él ya va compilando solo 131 00:05:50,290 --> 00:05:52,730 Es como si estuviera llamando al javacé todo el rato 132 00:05:52,730 --> 00:05:54,110 Entonces 133 00:05:54,110 --> 00:05:56,170 Al llamar al javacé todo el rato 134 00:05:56,170 --> 00:05:58,370 Él va viendo si hay algún error 135 00:05:58,370 --> 00:06:00,689 De compilación en lo que yo escribo 136 00:06:00,689 --> 00:06:02,290 Recordad 137 00:06:02,290 --> 00:06:04,009 Errores de compilación son errores 138 00:06:04,009 --> 00:06:05,449 De sintaxis 139 00:06:05,449 --> 00:06:07,430 O de alguna incoherencia 140 00:06:07,430 --> 00:06:09,889 Aquí no hay un error de sintaxis 141 00:06:09,889 --> 00:06:11,269 Long existe 142 00:06:11,269 --> 00:06:14,129 Esto es un identificador de variable válido 143 00:06:14,129 --> 00:06:16,170 Y esto es un numerito con caracteres válido 144 00:06:16,170 --> 00:06:17,550 Este no es error de sintaxis 145 00:06:17,550 --> 00:06:19,230 Pero es un error de coherencia 146 00:06:19,230 --> 00:06:22,069 ¿Vale? Entonces, los errores de compilación 147 00:06:22,069 --> 00:06:24,250 El entorno de desarrollo 148 00:06:24,250 --> 00:06:24,790 Eclipse 149 00:06:24,790 --> 00:06:27,829 Como él ya va haciendo Java hace todo el rato 150 00:06:27,829 --> 00:06:30,170 Si encuentra que hay en alguna línea 151 00:06:30,170 --> 00:06:30,829 Me la 152 00:06:30,829 --> 00:06:33,149 Subraya en rojo 153 00:06:33,149 --> 00:06:35,269 Me la subraya en rojo y me dice 154 00:06:35,269 --> 00:06:37,569 Cuidado que aquí hay un error de compilación 155 00:06:37,569 --> 00:06:38,269 ¿Vale? 156 00:06:39,269 --> 00:06:40,769 Aquí, primer aviso 157 00:06:40,769 --> 00:06:43,329 Porque es una situación 158 00:06:43,329 --> 00:06:45,170 Con la que hay que contar siempre 159 00:06:45,170 --> 00:06:47,509 El eclipse está claro 160 00:06:47,509 --> 00:06:48,730 Que si te marca en rojo 161 00:06:48,730 --> 00:06:52,050 hay un error de compilación, sí o sí, pero 162 00:06:52,050 --> 00:06:56,029 ahora mismo el programa es muy sencillo, entonces lo más seguro 163 00:06:56,029 --> 00:06:59,050 es que haya acertado, pero muchas veces 164 00:06:59,050 --> 00:07:01,949 te marca un error de compilación en una línea que no está 165 00:07:01,949 --> 00:07:05,129 pero lo que ocurre es que esta línea al ponerla 166 00:07:05,129 --> 00:07:08,050 tú aquí, pues automáticamente el programa se ha 167 00:07:08,050 --> 00:07:11,009 hecho inconsistente respecto a algo que habías puesto 168 00:07:11,009 --> 00:07:14,110 arriba, entonces primer aviso que voy diciendo 169 00:07:14,110 --> 00:07:17,189 y que iréis comprobando, el entorno de desarrollo no sabe 170 00:07:17,189 --> 00:07:19,370 nada, no tiene ni idea, tiene unas cuantas 171 00:07:19,370 --> 00:07:21,129 reglas estúpidas que sigue 172 00:07:21,129 --> 00:07:23,389 y alguna ayuda nos da 173 00:07:23,389 --> 00:07:25,050 entonces como nosotros somos 174 00:07:25,050 --> 00:07:26,709 los que conocemos y sabemos 175 00:07:26,709 --> 00:07:29,050 decidimos interpretar 176 00:07:29,050 --> 00:07:31,250 esa ayuda que él nos ha dado, la interpretamos 177 00:07:31,250 --> 00:07:32,410 con nuestro conocimiento 178 00:07:32,410 --> 00:07:34,470 y decimos, ah sí, sí, es verdad 179 00:07:34,470 --> 00:07:36,990 aquí hay algo raro, no por lo que él me dice 180 00:07:36,990 --> 00:07:38,970 porque me estoy dando una tontería, pero es verdad que hay algo raro 181 00:07:38,970 --> 00:07:40,769 entonces ayuda nos da, por supuesto 182 00:07:40,769 --> 00:07:42,790 desde luego en este 183 00:07:42,790 --> 00:07:44,649 primer orden de compilación, porque si no lo hubiera 184 00:07:44,649 --> 00:07:46,389 aquí no habría una línea rosa 185 00:07:46,389 --> 00:07:49,290 Pero que ese error de compilación sea en esta línea 186 00:07:49,290 --> 00:07:50,649 No tiene por qué 187 00:07:50,649 --> 00:07:51,449 Puede ser en otra 188 00:07:51,449 --> 00:07:52,829 ¿Vale? 189 00:07:53,949 --> 00:07:54,790 Por ejemplo 190 00:07:54,790 --> 00:08:03,569 Aquí esta ya no me da error de compilación 191 00:08:03,569 --> 00:08:03,829 Porque 192 00:08:03,829 --> 00:08:06,769 Pero imaginaos que quito esto 193 00:08:06,769 --> 00:08:07,930 ¿Vale? 194 00:08:09,709 --> 00:08:10,629 Entonces por ejemplo 195 00:08:10,629 --> 00:08:11,670 Este es un ejemplo un poco tonto 196 00:08:11,670 --> 00:08:15,269 Aquí me saca error de compilación en el entorno de desarrollo 197 00:08:15,269 --> 00:08:17,069 Yo hago esta sentencia de asignación 198 00:08:17,069 --> 00:08:18,629 ¿Vale? 199 00:08:18,629 --> 00:08:22,569 ¿Por qué creéis que me saca ese error de compilación? 200 00:08:22,670 --> 00:08:23,649 Me dice, este pago no compila 201 00:08:23,649 --> 00:08:25,949 Porque no has declarado qué tipo de variable es 202 00:08:25,949 --> 00:08:27,990 Claro, porque cualquier variable 203 00:08:27,990 --> 00:08:29,189 Antes de usarla en Java 204 00:08:29,189 --> 00:08:31,709 Sabemos que tiene que estar declarada 205 00:08:31,709 --> 00:08:34,090 Entonces, aunque es un ejemplo 206 00:08:34,090 --> 00:08:35,549 Un poco así cogido por los pelos 207 00:08:35,549 --> 00:08:37,950 ¿Eso significa que el error de compilación 208 00:08:37,950 --> 00:08:39,730 Estrictamente esté en esta línea 209 00:08:39,730 --> 00:08:42,289 Y que la modificación la tenga que hacer yo en esta línea? 210 00:08:42,809 --> 00:08:43,769 No, a lo mejor 211 00:08:43,769 --> 00:08:45,049 Mi error de compilación está 212 00:08:45,049 --> 00:08:47,330 Porque yo esta variable número 3 213 00:08:47,330 --> 00:08:48,950 si la he declarado 214 00:08:48,950 --> 00:08:51,389 pero la he declarado así 215 00:08:51,389 --> 00:08:53,250 ¿vale? 216 00:08:53,889 --> 00:08:55,669 porque me he equivocado, yo quería poner 217 00:08:55,669 --> 00:08:57,289 int y he puesto char, me he equivocado 218 00:08:57,289 --> 00:08:59,490 y él me saca aquí una red de compilación 219 00:08:59,490 --> 00:09:01,529 y me dice, uy, cuidado 220 00:09:01,529 --> 00:09:03,730 ahora vemos como te saca la información 221 00:09:03,730 --> 00:09:05,570 me dice, esto 222 00:09:05,570 --> 00:09:06,529 lo siento, no compila 223 00:09:06,529 --> 00:09:09,389 entonces aquí es fácil, porque la línea está justo arriba 224 00:09:09,389 --> 00:09:11,250 uno lo ve, pero uno se obceca 225 00:09:11,250 --> 00:09:13,789 se obsesiona y dice, tengo que cambiar algo en esta línea 226 00:09:13,789 --> 00:09:15,529 y cambias cualquier 227 00:09:15,529 --> 00:09:16,970 cosa, cualquier tontería 228 00:09:16,970 --> 00:09:19,389 para que te la compile, por ejemplo 229 00:09:19,389 --> 00:09:21,549 uno podría decir, vale, vale 230 00:09:21,549 --> 00:09:23,149 como tengo que cambiar algo en esta línea 231 00:09:23,149 --> 00:09:25,009 porque esta línea da un error, tengo que cambiar algo 232 00:09:25,009 --> 00:09:27,429 venga, voy a cambiar esto 233 00:09:27,429 --> 00:09:31,149 vale, claro, y ya empieza 234 00:09:31,149 --> 00:09:33,289 con el, ya empieza, vale, pongo in 235 00:09:33,289 --> 00:09:35,190 la declaro, ya empieza con otro problema 236 00:09:35,190 --> 00:09:36,610 no, es que ya está declarada arriba 237 00:09:36,610 --> 00:09:39,490 entonces, este error 238 00:09:39,490 --> 00:09:41,470 de aquí, podría ser en este caso 239 00:09:41,470 --> 00:09:43,649 no porque esta línea esté mal, esta línea no está mal 240 00:09:43,649 --> 00:09:45,350 sino porque nos hemos equivocado 241 00:09:45,350 --> 00:09:47,049 aquí arriba en su momento, ¿vale? 242 00:09:47,830 --> 00:09:50,769 Entonces, aunque este es un ejemplo sencillo, 243 00:09:50,809 --> 00:09:52,409 porque tampoco tenemos herramientas 244 00:09:52,409 --> 00:09:54,049 para poner ejemplos más complicados, 245 00:09:54,149 --> 00:09:55,409 lo que quiero deciros es que 246 00:09:55,409 --> 00:09:57,389 el entorno de desarrollo, 247 00:09:57,590 --> 00:09:58,710 la ayuda que te va a dar, 248 00:09:58,870 --> 00:10:00,429 es una ayuda muy estúpida. 249 00:10:00,730 --> 00:10:03,549 Entonces, uno tiene que usarla, 250 00:10:03,730 --> 00:10:05,690 tomarla, interpretarla como punto de partida 251 00:10:05,690 --> 00:10:07,409 para ahora ya decidir 252 00:10:07,409 --> 00:10:08,950 qué falla en su programa. 253 00:10:10,190 --> 00:10:11,169 Bueno, pues entonces, 254 00:10:12,330 --> 00:10:15,029 nosotros estábamos declarando ahora 255 00:10:15,029 --> 00:10:17,190 una variable long y nos había pasado eso 256 00:10:17,190 --> 00:10:19,090 nos había pasado que nos 257 00:10:19,090 --> 00:10:20,649 daba un error de compilación 258 00:10:20,649 --> 00:10:23,250 cuando yo había puesto 259 00:10:23,250 --> 00:10:25,289 ahí 260 00:10:25,289 --> 00:10:26,690 ¿vale? 261 00:10:27,629 --> 00:10:28,769 me daba un error de compilación 262 00:10:28,769 --> 00:10:29,450 entonces allá iba 263 00:10:29,450 --> 00:10:33,190 no es que aquí haya un problema 264 00:10:33,190 --> 00:10:35,090 repito, el escribir 265 00:10:35,090 --> 00:10:37,169 esto ha generado 266 00:10:37,169 --> 00:10:39,370 un problema en mi programa 267 00:10:39,370 --> 00:10:40,970 lo ha hecho inconsistente 268 00:10:40,970 --> 00:10:42,330 sintácticamente 269 00:10:42,330 --> 00:10:44,409 lo ha hecho que no se pueda compilar 270 00:10:44,409 --> 00:10:46,529 ¿Vale? No se puede compilar este programa 271 00:10:46,529 --> 00:10:48,129 Vale, entonces 272 00:10:48,129 --> 00:10:50,190 Cuando 273 00:10:50,190 --> 00:10:52,029 Nosotros compilamos con Java C 274 00:10:52,029 --> 00:10:53,429 Que lo hicimos el otro día 275 00:10:53,429 --> 00:10:56,269 Cuando compilamos con Java C y hay un error 276 00:10:56,269 --> 00:10:57,649 A los que os salió un error 277 00:10:57,649 --> 00:11:00,309 Pues abajo veíais que os salía una línea 278 00:11:00,309 --> 00:11:01,850 Error, sin das, bla, bla, bla 279 00:11:01,850 --> 00:11:04,250 Y luego ponía un mensajito abajo en inglés 280 00:11:04,250 --> 00:11:05,929 ¿Vale? Todo eso es lo que 281 00:11:05,929 --> 00:11:07,370 Está en la documentación de Oracle 282 00:11:07,370 --> 00:11:10,090 Bueno, pues ese mismo mensajito en inglés 283 00:11:10,090 --> 00:11:11,470 Que es la 284 00:11:11,470 --> 00:11:14,190 Que es la ayuda de partida que tenemos 285 00:11:14,190 --> 00:11:16,169 para saber por dónde van los tiros, si es que no sabemos 286 00:11:16,169 --> 00:11:18,250 por qué, porque a lo mejor uno 287 00:11:18,250 --> 00:11:20,230 en cuanto ve error de compilación se da cuenta y dice 288 00:11:20,230 --> 00:11:21,870 ah, es por esto, y lo cambia 289 00:11:21,870 --> 00:11:24,210 pero si no es error de compilación y no tenemos ni idea 290 00:11:24,210 --> 00:11:26,250 de por qué, pues tratamos 291 00:11:26,250 --> 00:11:28,230 de buscar esa ayuda que me 292 00:11:28,230 --> 00:11:30,289 da el javacé cuando yo compilo y me dice bla bla 293 00:11:30,289 --> 00:11:31,929 bla, esa ayuda 294 00:11:31,929 --> 00:11:33,950 de por qué él ha 295 00:11:33,950 --> 00:11:35,450 interpretado que eso está mal 296 00:11:35,450 --> 00:11:37,809 os la da si aquí en la 297 00:11:37,809 --> 00:11:38,710 crucecita 298 00:11:38,710 --> 00:11:41,110 roja esta 299 00:11:41,110 --> 00:11:44,070 dejáis la mano puesta, ¿vale? 300 00:11:44,190 --> 00:11:45,509 sin pinchar 301 00:11:45,509 --> 00:11:48,450 entonces si ahí en la crucecita esa 302 00:11:48,450 --> 00:11:50,830 dejáis la mano puesta sin pinchar en ella 303 00:11:50,830 --> 00:11:52,570 os dice 304 00:11:52,570 --> 00:11:54,629 lo que dice el javase cuando uno 305 00:11:54,629 --> 00:11:55,690 compila en la consola 306 00:11:55,690 --> 00:11:58,409 y alguna información es 307 00:11:58,409 --> 00:12:00,330 a veces tiene sentido, a veces no tiene 308 00:12:00,330 --> 00:12:02,450 absolutamente ninguno, depende 309 00:12:02,450 --> 00:12:03,450 porque una línea 310 00:12:03,450 --> 00:12:06,529 él ve las líneas como cosas 311 00:12:06,529 --> 00:12:08,370 separadas unas de otras y no 312 00:12:08,370 --> 00:12:10,250 las líneas tienen que ver unas con otras 313 00:12:10,250 --> 00:12:11,070 es nuestro código 314 00:12:11,070 --> 00:12:14,289 Entonces los errores a veces no son por esa línea 315 00:12:14,289 --> 00:12:15,389 Repito, como he dicho antes 316 00:12:15,389 --> 00:12:17,049 Sino porque esa línea estando bien 317 00:12:17,049 --> 00:12:18,789 Es incompatible con la de arriba 318 00:12:18,789 --> 00:12:20,710 Y de eso él no se va a dar cuenta 319 00:12:20,710 --> 00:12:22,610 De eso es de lo que él no se da cuenta 320 00:12:22,610 --> 00:12:24,090 Él mira la línea tal cual 321 00:12:24,090 --> 00:12:26,450 Y no mira si es compatible con la de arriba o la de abajo 322 00:12:26,450 --> 00:12:29,169 Bueno, vamos a ver en este caso concreto 323 00:12:29,169 --> 00:12:31,870 Que nos está diciendo 324 00:12:31,870 --> 00:12:33,409 Por qué el jabacé ha fallado 325 00:12:33,409 --> 00:12:34,990 Nos dice 326 00:12:34,990 --> 00:12:36,590 Porque el número pum pum pum 327 00:12:36,590 --> 00:12:39,710 Que es de tipo entero 328 00:12:39,710 --> 00:12:41,110 Está fuera de rango 329 00:12:41,110 --> 00:12:43,690 Vale, pues 330 00:12:43,690 --> 00:12:45,590 Esto nos suena raro, fuera de rango 331 00:12:45,590 --> 00:12:47,929 De tipo entero, si yo lo he declarado en variable long 332 00:12:47,929 --> 00:12:49,309 Pero bueno 333 00:12:49,309 --> 00:12:52,029 Esta pista no está demasiado desacertada 334 00:12:52,029 --> 00:12:53,649 Al menos, no está demasiado desacertada 335 00:12:53,649 --> 00:12:56,230 Vale, pues entonces 336 00:12:56,230 --> 00:12:57,990 ¿Qué es lo que ha pasado? 337 00:13:00,360 --> 00:13:01,419 Que para Java 338 00:13:01,419 --> 00:13:02,919 Y esto sí, acordémonos 339 00:13:02,919 --> 00:13:05,279 Cuando escribimos un numerito sin más 340 00:13:05,279 --> 00:13:07,159 Un número cualquiera 341 00:13:07,159 --> 00:13:09,379 Para operar, por ejemplo 342 00:13:09,379 --> 00:13:11,279 Yo puedo estar haciendo aquí una suma 343 00:13:11,279 --> 00:13:15,590 vale, aquí estoy sumando 344 00:13:15,590 --> 00:13:17,309 este con menos 34 345 00:13:17,309 --> 00:13:19,830 menos 33, bueno, cuando escribimos un número 346 00:13:19,830 --> 00:13:22,129 sea positivo o negativo 347 00:13:22,129 --> 00:13:23,909 sin decimales 348 00:13:23,909 --> 00:13:25,649 sin coma y sin decimales, cuando escribimos 349 00:13:25,649 --> 00:13:27,230 un número entero así directamente 350 00:13:27,230 --> 00:13:29,610 Java tiene que almacenarlo de alguna 351 00:13:29,610 --> 00:13:31,570 manera, en alguna variable 352 00:13:31,570 --> 00:13:33,710 interna suya, para luego en esa variable 353 00:13:33,710 --> 00:13:35,330 moverla y asignarla aquí 354 00:13:35,330 --> 00:13:37,649 eso a nosotros no nos importa, a nosotros 355 00:13:37,649 --> 00:13:39,710 físicamente lo que sabemos es que existe 356 00:13:39,710 --> 00:13:41,330 una variable número 3 ahí 357 00:13:41,330 --> 00:13:43,230 existe una variable 358 00:13:43,230 --> 00:13:46,710 y que este numerito se va a mover a esa variable, ¿vale? 359 00:13:47,210 --> 00:13:49,289 Pero Java hace cosas para que eso pase, 360 00:13:49,429 --> 00:13:50,629 para que ese movimiento ocurra. 361 00:13:51,210 --> 00:13:52,570 Bueno, pues, ¿qué hace con ese, 362 00:13:52,769 --> 00:13:54,610 con cualquier numerito que uno escriba? 363 00:13:55,149 --> 00:13:56,789 Con este, con el menos 33, 364 00:13:57,289 --> 00:13:59,710 con este en particular que estábamos ahí. 365 00:14:00,909 --> 00:14:02,309 ¿Este ya se va? No, este. 366 00:14:02,509 --> 00:14:04,289 Vale, ¿qué hace con ese numerito? 367 00:14:04,909 --> 00:14:06,389 Pues, se habilita un espacio, 368 00:14:06,809 --> 00:14:09,629 pero espacio de 32 bits, un espacio entero. 369 00:14:10,070 --> 00:14:12,070 Se habilita un espacio para guardar ese numerito 370 00:14:12,070 --> 00:14:14,029 que yo he escrito, y ahora ya 371 00:14:14,029 --> 00:14:16,149 lo coge y lo asigna a la variable 372 00:14:16,149 --> 00:14:18,190 long. Por eso me estaba 373 00:14:18,190 --> 00:14:20,149 diciendo, oye, este numerito 374 00:14:20,149 --> 00:14:21,970 es demasiado grande para caber en un int. 375 00:14:22,429 --> 00:14:24,029 Pero no se refiere para caber en este 376 00:14:24,029 --> 00:14:25,750 int, porque esto no es un int, esto es un long. 377 00:14:26,190 --> 00:14:28,149 Se refiere para caber en el 378 00:14:28,149 --> 00:14:30,129 int temporal que él se ha 379 00:14:30,129 --> 00:14:31,929 creado para guardar ese número. 380 00:14:33,830 --> 00:14:34,230 Entonces, 381 00:14:34,710 --> 00:14:36,090 diríais, pues qué estupidez, yo no 382 00:14:36,090 --> 00:14:37,990 puedo escribir un numerito, no puedo asignar 383 00:14:37,990 --> 00:14:39,690 un valor a long, es imposible, 384 00:14:40,110 --> 00:14:41,529 porque en cuanto escriba un número 385 00:14:41,529 --> 00:14:43,990 él como lo tiene que guardar en un espacio 386 00:14:43,990 --> 00:14:46,110 intermedio para luego asignarlo 387 00:14:46,110 --> 00:14:48,029 ahí, no le va a caber nunca 388 00:14:48,029 --> 00:14:50,110 si puedo, pero entonces se lo tengo 389 00:14:50,110 --> 00:14:51,669 que decir, y se lo digo 390 00:14:51,669 --> 00:14:52,909 poniéndole una L 391 00:14:52,909 --> 00:14:53,970 ¿vale? 392 00:14:54,529 --> 00:14:58,029 solo la interpreta 393 00:14:58,029 --> 00:14:59,490 como entonces, si yo le pongo una L 394 00:14:59,490 --> 00:15:02,230 lo que le estoy diciendo es, este numerito 395 00:15:02,230 --> 00:15:04,389 guárdamelo en 64 396 00:15:04,389 --> 00:15:06,049 bits, y luego ya 397 00:15:06,049 --> 00:15:08,049 se lo asignas, con lo cual ya 398 00:15:08,049 --> 00:15:09,370 le cabe, y dice, ah, estupendo 399 00:15:09,370 --> 00:15:11,350 como te lo voy a guardar 400 00:15:11,350 --> 00:15:13,029 en 64 bits, ya me cabe 401 00:15:13,029 --> 00:15:15,549 ¿vale? pero si no le ponemos 402 00:15:15,549 --> 00:15:17,370 la L, entonces cuando trabajéis con 403 00:15:17,370 --> 00:15:19,289 números grandes, que tengáis 404 00:15:19,289 --> 00:15:20,889 que escribirlos directamente 405 00:15:20,889 --> 00:15:23,009 ¿esto es una particularidad del Eclipse? 406 00:15:23,669 --> 00:15:25,029 no, no, no, todo esto que hablo es de Java 407 00:15:25,029 --> 00:15:26,549 todo esto es Java, todo 408 00:15:26,549 --> 00:15:29,429 claro, sí, entonces, todo lo que escribimos 409 00:15:29,429 --> 00:15:31,309 en el editor de texto, es código 410 00:15:31,309 --> 00:15:33,230 Java, no tiene que ver con el Eclipse, da igual que fuera 411 00:15:33,230 --> 00:15:34,409 un blog de notas, que fuera 412 00:15:34,409 --> 00:15:36,669 las particularidades del Eclipse son 413 00:15:36,669 --> 00:15:39,350 los botoncitos, las ayudas 414 00:15:39,350 --> 00:15:40,570 Si no le pones la L no te compila 415 00:15:40,570 --> 00:15:42,549 No, no, no, si tú pasas esto sin la L 416 00:15:42,549 --> 00:15:44,809 A Java C no te compila y te sale el error 417 00:15:44,809 --> 00:15:47,450 Que te dice ahí 418 00:15:47,450 --> 00:15:48,230 ¿Vale? 419 00:15:49,230 --> 00:15:51,769 Entonces todo lo que escribamos en el editor de texto 420 00:15:51,769 --> 00:15:52,830 Da igual 421 00:15:52,830 --> 00:15:55,470 Que lo tengas en Eclipse, en Intel y en un bloc de notas 422 00:15:55,470 --> 00:15:56,190 Para compilarlo 423 00:15:56,190 --> 00:15:59,049 Como es justo lo que pasa por una variable 424 00:15:59,049 --> 00:16:00,090 Intermedia 425 00:16:00,090 --> 00:16:03,049 Sí, pero eso lo hace la máquina virtual cuando está ejecutando 426 00:16:03,049 --> 00:16:05,129 Claro, cuando está en la ejecución 427 00:16:05,129 --> 00:16:06,870 ¿Vale? Entonces el problema 428 00:16:06,870 --> 00:16:08,929 Entonces el compilador 429 00:16:08,929 --> 00:16:10,629 como él, el compilador 430 00:16:10,629 --> 00:16:13,230 lo que dice es, este numerito 431 00:16:13,230 --> 00:16:14,750 yo sé que la máquina virtual 432 00:16:14,750 --> 00:16:16,529 cuando ejecute esto 433 00:16:16,529 --> 00:16:19,450 va a guardarlo primero en 32 bits 434 00:16:19,450 --> 00:16:21,230 para luego asignárselo a la variable 435 00:16:21,230 --> 00:16:23,250 que yo le diga, entonces sus reglas 436 00:16:23,250 --> 00:16:24,850 el compilador es una persona 437 00:16:24,850 --> 00:16:26,929 que tiene reglas, y las va 438 00:16:26,929 --> 00:16:29,350 una por una mirando, esto cabe, esto no 439 00:16:29,350 --> 00:16:31,149 esto no sé qué, y te avisa, y ya está 440 00:16:31,149 --> 00:16:32,450 y ese es Java C 441 00:16:32,450 --> 00:16:35,289 y me da igual llamar a Java C desde Eclipse 442 00:16:35,289 --> 00:16:36,769 desde cualquier otro entorno de desarrollo 443 00:16:36,769 --> 00:16:38,350 ¿vale? 444 00:16:38,929 --> 00:16:49,210 Entonces, si alguna vez uno tiene que meter un número muy grande, pues tiene que poner la L después, porque si no, no, ¿vale? 445 00:16:50,409 --> 00:17:01,720 Bueno, y llegaría un momento, si yo sigo poniendo aquí unos, que ya me tendría que poner en rojo, porque aquí, ya está. 446 00:17:01,720 --> 00:17:04,000 Este número 447 00:17:04,000 --> 00:17:07,349 Este, por ejemplo 448 00:17:07,349 --> 00:17:09,829 Este número ya, ni en log 449 00:17:09,829 --> 00:17:12,109 Este número, pues no podemos 450 00:17:12,109 --> 00:17:13,970 Usarlo en programación, en ninguna variable 451 00:17:13,970 --> 00:17:16,210 No, si tú necesitas 452 00:17:16,210 --> 00:17:18,190 Usar un número tan grande, pues entonces 453 00:17:18,190 --> 00:17:20,450 Te tendrás que administrar 454 00:17:20,450 --> 00:17:21,490 Tus propias, o 455 00:17:21,490 --> 00:17:24,269 Dividirlo en dos partes y ponerlo en dos variables 456 00:17:24,269 --> 00:17:25,470 Lo que sea, ¿vale? 457 00:17:26,230 --> 00:17:27,990 Pero claro, o sea, estamos hablando 458 00:17:27,990 --> 00:17:30,069 En qué programa 459 00:17:30,069 --> 00:17:32,230 Habitual, en qué aplicación 460 00:17:32,230 --> 00:17:35,390 Tendría que ser una aplicación 461 00:17:35,390 --> 00:17:36,910 Específica, científica 462 00:17:36,910 --> 00:17:38,829 Vete a saber que tendrá sus propios lenguajes 463 00:17:38,829 --> 00:17:39,809 ¿Vale? 464 00:17:40,390 --> 00:17:40,950 Pero aquí 465 00:17:40,950 --> 00:17:44,670 Las variables log llegan hasta donde llegan 466 00:17:44,670 --> 00:17:48,460 ¿Y hasta donde llegan? 467 00:17:48,799 --> 00:17:51,059 Pues por curiosidad solo vamos a ponerlo 468 00:17:51,059 --> 00:17:52,799 Por ejemplo 469 00:17:52,799 --> 00:17:54,500 Vamos a mostrar, recordad 470 00:17:54,500 --> 00:17:56,980 Que esta era la 471 00:17:56,980 --> 00:17:59,319 La sentencia 472 00:17:59,319 --> 00:18:01,319 De mostrar por consola 473 00:18:01,319 --> 00:18:03,119 Entonces la usamos 474 00:18:03,119 --> 00:18:07,119 desde ya, aunque todavía esto de los puntos se nos hace raro 475 00:18:07,119 --> 00:18:10,299 porque no entendemos qué significan estas tres palabras tan raras 476 00:18:10,299 --> 00:18:14,839 bueno, tenemos que usarla desde ya, entonces ya lo entenderemos un poco más adelante 477 00:18:14,839 --> 00:18:19,099 ahora mismo, basta con que sepamos que esto muestra por consola 478 00:18:19,099 --> 00:18:21,400 lo que yo le pase ahí, vale 479 00:18:21,400 --> 00:18:28,500 bueno, hasta ahora hemos mostrado por consola 480 00:18:28,500 --> 00:18:32,799 la única vez que la hemos usado como ejemplo, hemos mostrado por consola 481 00:18:32,799 --> 00:18:33,940 cadenas, ¿verdad? 482 00:18:35,119 --> 00:18:36,619 cadenas entrecomilladas, ¿no? 483 00:18:39,339 --> 00:18:40,819 entonces, si yo pongo una cadena 484 00:18:40,819 --> 00:18:42,799 entrecomillada, esto me lo muestra por 485 00:18:42,799 --> 00:18:44,339 consola, vale 486 00:18:44,339 --> 00:18:46,920 entonces, si ejecutamos 487 00:18:46,920 --> 00:18:48,940 este programa, este programa 488 00:18:48,940 --> 00:18:50,839 habrá hecho esto de aquí arriba, que no 489 00:18:50,839 --> 00:18:52,819 es nada, declarar una variable, darle el 8 490 00:18:52,819 --> 00:18:54,779 declarar esta, darle el 9 491 00:18:54,779 --> 00:18:56,660 esta no darle nada, y ahora número 3 492 00:18:56,660 --> 00:18:58,599 darle este, habrá hecho todo eso, aunque 493 00:18:58,599 --> 00:19:00,720 nosotros no tenemos conciencia 494 00:19:00,720 --> 00:19:02,099 de ello, pues no lo vemos, pero lo habrá hecho 495 00:19:02,099 --> 00:19:03,799 luego mostrará el 1, ¿verdad? 496 00:19:04,680 --> 00:19:10,579 Pues venga, si hacemos eso, efectivamente el programa lo ha hecho. 497 00:19:11,839 --> 00:19:12,720 ¿Cómo vas a ejecutar? 498 00:19:12,759 --> 00:19:17,619 Vale, entonces, para ejecutar, vosotros como sois, bueno, yo hablo en general, 499 00:19:18,119 --> 00:19:24,119 algunos sois más jovencitos, otros menos, algunos habéis pasado la vida con el móvil, otros no. 500 00:19:24,519 --> 00:19:28,180 Entonces, yo hablo en general, perdonadme, que os trata a todos como si fueran niños pequeños 501 00:19:28,180 --> 00:19:29,839 que están con el móvil todo el día, pero bueno. 502 00:19:29,839 --> 00:19:34,700 Bueno, entonces como vosotros 503 00:19:34,700 --> 00:19:37,000 Generalizando, disculpadme, sois de la generación 504 00:19:37,000 --> 00:19:38,700 De o doy algo 505 00:19:38,700 --> 00:19:40,700 Y ya está, pues tendéis 506 00:19:40,700 --> 00:19:42,839 Con naturales, tendéis 507 00:19:42,839 --> 00:19:44,980 Por las buenas, ah, que hay un botón de run 508 00:19:44,980 --> 00:19:46,019 Pues lo uso 509 00:19:46,019 --> 00:19:49,019 Vale, eso está bien 510 00:19:49,019 --> 00:19:50,839 Si solo tengo abierto 511 00:19:50,839 --> 00:19:53,140 Un código 512 00:19:53,140 --> 00:19:54,920 Ejecutable, si solo tengo abierto uno 513 00:19:54,920 --> 00:19:57,079 Pero si tengo abierto muchos 514 00:19:57,079 --> 00:19:58,859 Pues no, por ejemplo, si dais 515 00:19:58,859 --> 00:20:01,220 en la flechita desplegable 516 00:20:01,220 --> 00:20:03,119 que está a la derecha del botón 517 00:20:03,119 --> 00:20:04,720 sale 518 00:20:04,720 --> 00:20:06,920 en mi caso salen estos 519 00:20:06,920 --> 00:20:08,859 que son los últimos que yo he ido ejecutando 520 00:20:08,859 --> 00:20:11,000 entonces, si yo 521 00:20:11,000 --> 00:20:11,960 le doy a este botón 522 00:20:11,960 --> 00:20:14,019 me marca 523 00:20:14,019 --> 00:20:17,259 me ejecuta el que esté el primero de la lista 524 00:20:17,259 --> 00:20:19,299 que se corresponde 525 00:20:19,299 --> 00:20:20,480 con el último ejecutado 526 00:20:20,480 --> 00:20:22,940 pero si yo tengo una aplicación que tengo 527 00:20:22,940 --> 00:20:24,920 varios main, o sea, varios 528 00:20:24,920 --> 00:20:26,880 ejecutables y quiero 529 00:20:26,880 --> 00:20:28,920 y por ejemplo, yo ahora voy a abrir 530 00:20:28,920 --> 00:20:30,880 en mi editor de texto, voy a abrir 531 00:20:30,880 --> 00:20:31,720 pues es que 532 00:20:31,720 --> 00:20:34,700 estaba en otro entorno de desarrollo, pero bueno, en otro 533 00:20:34,700 --> 00:20:36,579 workspace, entonces no lo puedo abrir desde ahí 534 00:20:36,579 --> 00:20:38,680 imaginaos que 535 00:20:38,680 --> 00:20:41,039 este mismo código Java 536 00:20:41,039 --> 00:20:42,460 que es otra clase Java más 537 00:20:42,460 --> 00:20:44,140 la tengo aquí metida también 538 00:20:44,140 --> 00:20:46,500 la tengo aquí metida, entonces yo la abro 539 00:20:46,500 --> 00:20:47,880 y la pongo en el editor de texto 540 00:20:47,880 --> 00:20:49,559 la abro porque la cambio 541 00:20:49,559 --> 00:20:53,000 y ahora ya, pum, le dais a este botón 542 00:20:53,000 --> 00:20:55,019 y decís, pero si he hecho un cambio 543 00:20:55,019 --> 00:20:56,599 y no me funciona, claro 544 00:20:56,599 --> 00:20:58,720 recuerda, este botón te está ejecutando 545 00:20:58,720 --> 00:21:00,720 la última que has ejecutado 546 00:21:00,720 --> 00:21:02,440 no la que tienes aquí abierta 547 00:21:02,440 --> 00:21:03,700 no esa, ¿vale? 548 00:21:04,099 --> 00:21:06,319 no te ejecuta el código que tienes aquí abierto 549 00:21:06,319 --> 00:21:08,720 yo puedo tener aquí abiertos un montón de clases 550 00:21:08,720 --> 00:21:10,299 distintas, todas ellas con 551 00:21:10,299 --> 00:21:12,500 su main para ejecutar, puedo tener 552 00:21:12,500 --> 00:21:14,640 muchas, y el botoncito no me 553 00:21:14,640 --> 00:21:15,980 ejecuta la que tenga abierta 554 00:21:15,980 --> 00:21:18,400 entonces a veces uno hace cambios en la que tiene abierta 555 00:21:18,400 --> 00:21:19,440 le da al botón de ejecutar 556 00:21:19,440 --> 00:21:22,599 y hace otra cosa, y os volvéis 557 00:21:22,599 --> 00:21:24,900 locos, no, el botón ejecuta 558 00:21:24,900 --> 00:21:29,220 La que está en la primera de la lista, que es la última que ejecutaste, ¿vale? 559 00:21:29,319 --> 00:21:34,039 Entonces, bueno, pues, si uno lo tiene claro, que está ejecutando la última que ejecutó, 560 00:21:34,140 --> 00:21:35,539 pues, le da al botón run y ya está. 561 00:21:36,960 --> 00:21:41,180 La forma más segura, ante la duda, pues, siempre podéis dar, 562 00:21:41,339 --> 00:21:46,319 si estáis en la clase que vais a ejecutar, la que tiene aquí vuestro main famoso, 563 00:21:46,319 --> 00:21:53,019 pues, botón derecho, runas, Java aplicación, ¿está? 564 00:21:53,019 --> 00:21:55,380 pues en la ventana 565 00:21:55,380 --> 00:21:57,759 en el editor de texto donde está el código 566 00:21:57,759 --> 00:21:59,980 que queréis ejecutar, para asegurarse 567 00:21:59,980 --> 00:22:01,259 sí o sí que es ese 568 00:22:01,259 --> 00:22:04,039 el que va a ejecutar, botón derecho 569 00:22:04,039 --> 00:22:06,039 en el desplegable el runas 570 00:22:06,039 --> 00:22:07,819 y java aplicación 571 00:22:07,819 --> 00:22:09,019 que sale ahí, ¿vale? 572 00:22:09,240 --> 00:22:12,240 Entonces con ese ejecutáis ese sí o sí 573 00:22:12,240 --> 00:22:13,779 no hay tutía, ¿vale? 574 00:22:14,200 --> 00:22:15,220 Este desplegable 575 00:22:15,220 --> 00:22:18,059 lo podéis abrir tanto en el editor de texto como aquí 576 00:22:18,059 --> 00:22:20,500 en la ventana de proyectos 577 00:22:20,500 --> 00:22:22,539 aquí en esa misma clase que queréis ejecutar 578 00:22:22,539 --> 00:22:23,960 Pincháis y lo mismo, botón derecho 579 00:22:23,960 --> 00:22:25,319 Se os abre lo mismo, ¿vale? 580 00:22:30,519 --> 00:22:32,200 Vale, y esa parte tuya, ¿qué pone? 581 00:22:35,059 --> 00:22:36,059 Vale, y 582 00:22:36,059 --> 00:22:38,579 ¿El nombre de tu fichero? 583 00:22:38,680 --> 00:22:39,119 ¿Cómo se llama? 584 00:22:41,680 --> 00:22:43,019 ¿El nombre es el mismo seguro? 585 00:22:44,140 --> 00:22:46,440 ¿Y tienes lo de package arriba o lo has quitado? 586 00:22:48,079 --> 00:22:49,539 ¿Y está metido en un package? 587 00:22:55,990 --> 00:22:57,930 A ver, lee la información de compilación 588 00:22:57,930 --> 00:22:59,869 Lee la información de compilación 589 00:22:59,869 --> 00:23:01,849 cuando pones la manita ahí a la izquierda 590 00:23:01,849 --> 00:23:02,390 ¿qué te dice? 591 00:23:03,670 --> 00:23:05,410 cuando tienes un error de compilación 592 00:23:05,410 --> 00:23:09,670 acabamos de decir que 593 00:23:09,670 --> 00:23:11,630 tú pones aquí la mano y te dice algo 594 00:23:11,630 --> 00:23:13,329 pues ¿qué te dice a ti? 595 00:23:14,950 --> 00:23:15,990 ¿cómo no te va a decir nada? 596 00:23:24,680 --> 00:23:26,180 ah, pero no es que lo subrayen 597 00:23:26,180 --> 00:23:27,660 pues ya se ha abierto el 598 00:23:27,660 --> 00:23:30,660 otra herramienta 599 00:23:30,660 --> 00:23:31,500 no has abierto una 600 00:23:31,500 --> 00:23:32,299 en el coverage 601 00:23:32,299 --> 00:23:35,480 tú cuando has hecho el runas 602 00:23:35,480 --> 00:23:37,180 en realidad has hecho de arriba 603 00:23:37,180 --> 00:23:40,740 claro, pero antes de haber 604 00:23:40,740 --> 00:23:41,920 en algún momento le has dado a ese 605 00:23:41,920 --> 00:23:44,819 y esto te abre otra herramienta 606 00:23:44,819 --> 00:23:45,319 que es para hacer 607 00:23:45,319 --> 00:23:48,039 entonces esto 608 00:23:48,039 --> 00:23:49,579 a ver si 609 00:23:49,579 --> 00:23:52,700 esto 610 00:23:52,700 --> 00:23:53,259 a ver 611 00:23:53,259 --> 00:23:55,920 pero 612 00:23:55,920 --> 00:23:57,680 para que te hagas 613 00:23:57,680 --> 00:23:58,680 Gracias. 614 00:24:29,950 --> 00:24:52,509 Vale, seguimos 615 00:24:52,509 --> 00:24:54,190 Bueno, pues estábamos 616 00:24:54,190 --> 00:24:56,190 El System.out este que estamos usando 617 00:24:56,190 --> 00:24:57,869 Para mostrar por consola 618 00:24:57,869 --> 00:25:00,329 también nos sirve 619 00:25:00,329 --> 00:25:08,670 a ver, esto 620 00:25:08,670 --> 00:25:11,630 tiene que estar si hemos organizado 621 00:25:11,630 --> 00:25:13,710 nuestras clases en paquetitos 622 00:25:13,710 --> 00:25:15,809 de estos, os acordáis que ayer os dije 623 00:25:15,809 --> 00:25:17,769 las clases van dentro de SRC 624 00:25:17,769 --> 00:25:19,190 pero pueden ir a Capone 625 00:25:19,190 --> 00:25:20,910 yo puedo hacer aquí un new 626 00:25:20,910 --> 00:25:23,569 cuando digo clase, digo ahora mismo clase y programa 627 00:25:23,569 --> 00:25:24,650 asumid que estoy diciendo lo mismo 628 00:25:24,650 --> 00:25:26,990 pueden ir a Capone directamente new class 629 00:25:26,990 --> 00:25:28,730 podrían, o ahora para 630 00:25:28,730 --> 00:25:30,950 de cara a organizarnos, vamos a 631 00:25:30,950 --> 00:25:32,750 hacer una subcarpeta 632 00:25:32,750 --> 00:25:34,789 que para Java es paquete, una subcarpeta 633 00:25:34,789 --> 00:25:36,869 y la metemos en subcarpetas, entonces 634 00:25:36,869 --> 00:25:39,130 si tú tienes clases en esas subcarpetas 635 00:25:39,130 --> 00:25:40,730 esto es obligatorio 636 00:25:40,730 --> 00:25:42,789 y este nombre tiene que ser 637 00:25:42,789 --> 00:25:44,809 el nombre de la subcarpeta, de hecho es que te lo 638 00:25:44,809 --> 00:25:45,750 van a poner solo 639 00:25:45,750 --> 00:25:48,910 te lo van a poner solo, ahora mismo es que 640 00:25:48,910 --> 00:25:49,609 no sabemos 641 00:25:49,609 --> 00:25:53,029 no podemos todavía explicar los detalles 642 00:25:53,029 --> 00:25:54,769 de lo que significa, pero 643 00:25:54,769 --> 00:25:56,849 para que no os sueneis diciendo cosas raras 644 00:25:56,849 --> 00:25:58,730 Una aplicación de Java 645 00:25:58,730 --> 00:26:00,849 Solamente a modo de que entendáis 646 00:26:00,849 --> 00:26:01,750 Un poquito por encima 647 00:26:01,750 --> 00:26:03,190 Una aplicación de Java 648 00:26:03,190 --> 00:26:06,250 Son un montón de ficheros de estos 649 00:26:06,250 --> 00:26:08,150 Que son lo que en Java 650 00:26:08,150 --> 00:26:09,750 Y en cualquier lenguaje de programación 651 00:26:09,750 --> 00:26:11,029 Se llaman clases 652 00:26:11,029 --> 00:26:13,309 Esto que hemos hecho es una clase 653 00:26:13,309 --> 00:26:15,730 De hecho empieza con la palabra class 654 00:26:15,730 --> 00:26:18,569 Una aplicación no es solo 655 00:26:18,569 --> 00:26:20,150 Uno de estos 656 00:26:20,150 --> 00:26:21,230 Son muchos 657 00:26:21,230 --> 00:26:23,190 Que entre sí coexisten 658 00:26:23,190 --> 00:26:25,470 Entre sí trabajan y cooperan 659 00:26:25,470 --> 00:26:26,230 Como ya veremos 660 00:26:26,230 --> 00:26:28,450 entonces como una aplicación son muchos 661 00:26:28,450 --> 00:26:30,329 una aplicación normal y corriente a lo mejor 662 00:26:30,329 --> 00:26:31,869 ¿qué tiene? ¿750? 663 00:26:32,650 --> 00:26:34,029 pues sí, 750 664 00:26:34,029 --> 00:26:36,430 ficheros de estos, si los tengo 665 00:26:36,430 --> 00:26:38,369 todos juntos en la misma 666 00:26:38,369 --> 00:26:40,569 carpeta, para la máquina virtual 667 00:26:40,569 --> 00:26:42,890 de Java a la hora de localizarlos 668 00:26:42,890 --> 00:26:44,430 cuando unos se llamen a otros es más 669 00:26:44,430 --> 00:26:46,750 complicado, ya entenderemos por qué es más complicado 670 00:26:46,750 --> 00:26:48,609 entonces para la máquina virtual de Java 671 00:26:48,609 --> 00:26:50,410 es más fácil cuando 672 00:26:50,410 --> 00:26:52,430 una clase llame a otra encontrar 673 00:26:52,430 --> 00:26:54,769 a la hora de ejecutar si está organizada 674 00:26:54,769 --> 00:26:56,289 en carpetas y subcarpetas. 675 00:26:56,890 --> 00:26:58,089 Bueno, pues los paquetes, 676 00:26:58,170 --> 00:26:59,569 lo que yo estoy llamando paquetes, 677 00:26:59,690 --> 00:27:00,970 que se llama así paquetes, 678 00:27:01,410 --> 00:27:03,589 son esas subcarpetas, nada más. 679 00:27:04,450 --> 00:27:07,470 Entonces, ahora mismo vamos a usarlas 680 00:27:07,470 --> 00:27:09,109 desde ya esas subcarpetas 681 00:27:09,109 --> 00:27:11,329 porque desde Eclipse es muy sencillo. 682 00:27:11,430 --> 00:27:13,289 Se trata de en SRC, 683 00:27:13,369 --> 00:27:14,670 que es donde están nuestras clases, 684 00:27:15,190 --> 00:27:17,589 hacer new package y ya tengo una subcarpeta. 685 00:27:17,930 --> 00:27:20,109 Y ya ahí meto las clases que yo quiera. 686 00:27:20,109 --> 00:27:22,029 ¿Vale? Entonces 687 00:27:22,029 --> 00:27:24,970 Cuando trabajamos con esas subcarpetas 688 00:27:24,970 --> 00:27:26,289 Lo que ocurre es que entonces 689 00:27:26,289 --> 00:27:28,730 Es imprescindible que esta línea esté arriba 690 00:27:28,730 --> 00:27:30,450 Para indicar, ojo 691 00:27:30,450 --> 00:27:32,609 Que esta clase está en esta subcarpeta 692 00:27:32,609 --> 00:27:34,470 Es una información, y está en la máquina virtual, etc. 693 00:27:34,849 --> 00:27:35,130 ¿Vale? 694 00:27:36,250 --> 00:27:37,849 Pero como la pone el solo ahora mismo 695 00:27:37,849 --> 00:27:39,750 Pues podemos olvidarnos un poco 696 00:27:39,750 --> 00:27:43,289 Claro, porque 697 00:27:43,289 --> 00:27:45,650 Porque esto es public, porque esto es static 698 00:27:45,650 --> 00:27:47,410 Porque esto es void, porque esto es main 699 00:27:47,410 --> 00:27:49,849 Y porque esto es esto, pues ahí no podemos entenderlo 700 00:27:49,849 --> 00:27:51,910 nos falta información, lo único que 701 00:27:51,910 --> 00:27:53,049 lo que pasa es que 702 00:27:53,049 --> 00:27:55,869 si queremos hacer un programa en Java que la máquina 703 00:27:55,869 --> 00:27:58,130 virtual ejecute, tiene que estar metido 704 00:27:58,130 --> 00:27:59,849 en unas llaves 705 00:27:59,849 --> 00:28:01,430 que tengan eso ahí escrito 706 00:28:01,430 --> 00:28:03,650 no hay tutía, tienen que estar metido ahí 707 00:28:03,650 --> 00:28:05,690 no hay ninguna otra alternativa ni posibilidad 708 00:28:05,690 --> 00:28:08,009 ¿vale? y otra cosa 709 00:28:08,009 --> 00:28:10,049 por si a alguien le sale algún error, alguna cosa rara 710 00:28:10,049 --> 00:28:11,849 recordad que ayer ya 711 00:28:11,849 --> 00:28:13,710 cuando hicimos una clase con New Class 712 00:28:13,710 --> 00:28:16,009 él te ponía automáticamente 713 00:28:16,009 --> 00:28:17,869 esto, te ponía 714 00:28:17,869 --> 00:28:19,890 esta línea también, pero ponía 715 00:28:19,890 --> 00:28:20,970 el public delante. 716 00:28:22,410 --> 00:28:23,910 ¿Acordáis? La ponía yo. 717 00:28:24,029 --> 00:28:26,150 Dije, ahora mismo me da igual que lo dejéis o que lo quitéis. 718 00:28:26,190 --> 00:28:27,029 No afecta para nada. 719 00:28:27,690 --> 00:28:29,890 Y luego también, si marcábamos la pestañita, ponía esto. 720 00:28:30,789 --> 00:28:31,809 Entonces, os digo ahora, 721 00:28:31,930 --> 00:28:33,970 por si a alguien le sale un error de compilación y se vuelve 722 00:28:33,970 --> 00:28:35,849 loco. Entre poner el public 723 00:28:35,849 --> 00:28:37,789 y no, aunque ya entenderemos exactamente 724 00:28:37,789 --> 00:28:39,910 qué es el public, a efectos 725 00:28:39,910 --> 00:28:41,769 prácticos ahora mismo hay una diferencia 726 00:28:41,769 --> 00:28:43,150 que puede que os afecte. 727 00:28:43,750 --> 00:28:46,009 Que es, si uno pone el public, 728 00:28:46,829 --> 00:28:47,849 lo que ponga aquí 729 00:28:47,849 --> 00:28:51,069 Tiene que ser exactamente igual 730 00:28:51,069 --> 00:28:52,490 Que el nombre del fichero 731 00:28:52,490 --> 00:28:54,890 Exactamente igual que el nombre del fichero 732 00:28:54,890 --> 00:28:56,569 Entonces si yo pongo public 733 00:28:56,569 --> 00:28:58,650 Y ahora decido cambiar el nombre 734 00:28:58,650 --> 00:29:01,069 De esta clase mía, de este programita mía 735 00:29:01,069 --> 00:29:03,029 Porque me entiendo mejor si se llama 736 00:29:03,029 --> 00:29:03,670 De otra manera 737 00:29:03,670 --> 00:29:06,029 Y decido cambiar y llamarlo uno 738 00:29:06,029 --> 00:29:08,849 Se ha fastidiado, error de compilación 739 00:29:08,849 --> 00:29:10,829 ¿Por qué? Porque esto no es igual 740 00:29:10,829 --> 00:29:12,069 Que el nombre del fichero 741 00:29:12,069 --> 00:29:14,509 Pero eso es así 742 00:29:14,509 --> 00:29:15,569 Porque hay un public 743 00:29:15,569 --> 00:29:18,430 si no hay un public 744 00:29:18,430 --> 00:29:20,750 lo puedo llamar como me dé la gana 745 00:29:20,750 --> 00:29:22,829 ¿vale? entonces ahora mismo 746 00:29:22,829 --> 00:29:24,869 ¿por qué eso es así? pues todavía no lo entendemos 747 00:29:24,869 --> 00:29:26,210 porque necesitamos mucha más información 748 00:29:26,210 --> 00:29:29,170 pero os lo digo por si os encontráis con ese error de compilación 749 00:29:29,170 --> 00:29:29,990 entonces 750 00:29:29,990 --> 00:29:32,450 siempre es más fácil ahora mismo 751 00:29:32,450 --> 00:29:33,950 que nos da igual public que no 752 00:29:33,950 --> 00:29:36,289 porque no trabajamos con diferentes aplicaciones 753 00:29:36,289 --> 00:29:37,910 quitar el public 754 00:29:37,910 --> 00:29:40,289 y ya os aseguráis que nunca tendréis ese error 755 00:29:40,289 --> 00:29:42,490 pero vamos que si dejáis el public 756 00:29:42,490 --> 00:29:44,130 no pasa nada siempre y cuando 757 00:29:44,130 --> 00:29:46,410 Esto se llama igual que el fichero 758 00:29:46,410 --> 00:29:47,710 ¿Vale? 759 00:29:49,230 --> 00:29:50,809 Bueno, pues entonces 760 00:29:50,809 --> 00:29:53,089 Estábamos con el System.out este de aquí 761 00:29:53,089 --> 00:29:57,220 Vale, pues el System.out 762 00:29:57,220 --> 00:29:59,400 Hasta ahora lo hemos visto solo como sentencia 763 00:29:59,400 --> 00:30:01,339 Para mostrar una cadena 764 00:30:01,339 --> 00:30:02,720 De texto por consola 765 00:30:02,720 --> 00:30:04,779 Entrecomillada 766 00:30:04,779 --> 00:30:06,900 Porque las cadenas de texto en Java 767 00:30:06,900 --> 00:30:08,599 Van entre comillas dobles 768 00:30:08,599 --> 00:30:10,700 Nunca entre comillas simples 769 00:30:10,700 --> 00:30:11,940 ¿Vale? Hay otros lenguajes 770 00:30:11,940 --> 00:30:14,500 En las que las cadenas de texto 771 00:30:14,500 --> 00:30:16,200 Pueden ir entre comillas simples o dobles 772 00:30:16,200 --> 00:30:17,680 Da igual, como Python, como otros 773 00:30:17,680 --> 00:30:21,099 En Java las cadenas de texto siempre entre comillas dobles 774 00:30:21,099 --> 00:30:21,460 ¿Vale? 775 00:30:21,920 --> 00:30:24,200 Lo pongo aquí como recordatorio 776 00:30:24,200 --> 00:30:36,619 Vale 777 00:30:36,619 --> 00:30:40,339 De hecho si lo cambiárais y pusierais una comilla simple 778 00:30:40,339 --> 00:30:44,480 Pues automáticamente el compilador despierta 779 00:30:44,480 --> 00:30:45,619 Y dice 780 00:30:45,619 --> 00:30:47,920 Uy, esto no es válido 781 00:30:47,920 --> 00:30:49,480 Lo subraya en rojo 782 00:30:49,480 --> 00:30:51,680 Porque las cadenas de texto en Java 783 00:30:51,680 --> 00:30:52,960 Siempre entre comillas dobles 784 00:30:52,960 --> 00:30:55,380 Vale, bueno pues 785 00:30:55,380 --> 00:30:57,579 vamos a usar 786 00:30:57,579 --> 00:30:59,079 para algo más 787 00:30:59,079 --> 00:31:01,480 el System.out.println 788 00:31:01,480 --> 00:31:03,799 que para mostrar cadenas de texto 789 00:31:03,799 --> 00:31:05,700 sin más. ¿Para qué más 790 00:31:05,700 --> 00:31:07,680 lo podemos usar? Pues para 791 00:31:07,680 --> 00:31:09,480 mostrar el contenido de variables 792 00:31:09,480 --> 00:31:10,259 de mi programa. 793 00:31:11,960 --> 00:31:13,799 Entonces eso nos interesa desde ya 794 00:31:13,799 --> 00:31:15,680 si estamos trabajando con variables para ver 795 00:31:15,680 --> 00:31:17,619 un poquito cómo funcionan, qué tipo de valores 796 00:31:17,619 --> 00:31:19,799 pueden recibir. Hombre, me interesaría 797 00:31:19,799 --> 00:31:20,900 mostrar por consola 798 00:31:20,900 --> 00:31:23,980 sus valores. Bueno, pues entonces 799 00:31:23,980 --> 00:31:30,309 Podemos mostrar por consola 800 00:31:30,309 --> 00:31:33,710 El contenido de variables 801 00:31:33,710 --> 00:31:41,089 Por ejemplo, en este programita mío 802 00:31:41,089 --> 00:31:42,210 Que estamos probando cosas 803 00:31:42,210 --> 00:31:44,190 Mi variable número uno 804 00:31:44,190 --> 00:31:47,589 Que me apetece ahora mostrarla por consola 805 00:31:47,589 --> 00:31:51,230 Pues se la paso al system.println 806 00:31:51,230 --> 00:31:53,049 Con su nombrecito 807 00:31:53,049 --> 00:31:54,529 Número uno 808 00:31:54,529 --> 00:31:56,150 ¿Vale? 809 00:31:59,349 --> 00:32:00,950 Le paso el nombre de la variable 810 00:32:00,950 --> 00:32:03,490 Pero ojo 811 00:32:03,490 --> 00:32:07,630 Aquí nunca jamás pondría comillas dobles 812 00:32:07,630 --> 00:32:12,720 Claro, porque esto no es la cadena número uno 813 00:32:12,720 --> 00:32:13,720 La que yo quiero mostrar 814 00:32:13,720 --> 00:32:16,000 Quiero mostrar, exacto 815 00:32:16,000 --> 00:32:19,019 Quiero mostrar el contenido de una variable 816 00:32:19,019 --> 00:32:26,420 Entonces, obviamente 817 00:32:26,420 --> 00:32:28,400 Este System.out.println 818 00:32:28,400 --> 00:32:30,099 Y este otro 819 00:32:30,099 --> 00:32:32,440 Son completamente distintos 820 00:32:32,440 --> 00:32:34,059 Y muestran cosas distintas 821 00:32:34,059 --> 00:32:37,440 El de arriba 822 00:32:37,440 --> 00:32:40,859 Como ve algo que no está entre comillas 823 00:32:40,859 --> 00:32:43,099 cuando ve algo que no está entrecomillado 824 00:32:43,099 --> 00:32:45,380 asume que es el nombre de una variable 825 00:32:45,380 --> 00:32:47,599 dice, vale, pues entonces 826 00:32:47,599 --> 00:32:49,440 me voy a buscar esa variable 827 00:32:49,440 --> 00:32:51,359 cojo su contenido 828 00:32:51,359 --> 00:32:52,380 y lo muestro 829 00:32:52,380 --> 00:32:55,500 pero la de abajo, como está 830 00:32:55,500 --> 00:32:57,359 entre comillas, ya 831 00:32:57,359 --> 00:32:59,519 ni piensa en variables, ni piensa 832 00:32:59,519 --> 00:33:01,319 en nada, dice, esto es un texto, pues 833 00:33:01,319 --> 00:33:02,579 calco el texto tal cual 834 00:33:02,579 --> 00:33:05,319 ¿verdad? entonces si ejecutamos esto 835 00:33:05,319 --> 00:33:07,420 pues el system out de arriba 836 00:33:07,420 --> 00:33:09,059 ha mostrado el 9, lógicamente 837 00:33:09,059 --> 00:33:11,259 porque ha mostrado el contenido de la variable 838 00:33:11,259 --> 00:33:13,640 y el de abajo ha mostrado el texto. 839 00:33:16,660 --> 00:33:18,160 Luego son dos cosas que no tienen nada que ver. 840 00:33:21,180 --> 00:33:24,859 Luego, siempre puedo hacer referencia a una variable 841 00:33:24,859 --> 00:33:27,779 cuando lo necesito a través de su nombre. 842 00:33:29,500 --> 00:33:32,500 De ahí la utilidad de darle un nombre a una variable. 843 00:33:33,279 --> 00:33:35,519 Claro, porque yo le he dado a la variable a número uno. 844 00:33:36,099 --> 00:33:37,140 Le he asignado un valor. 845 00:33:38,119 --> 00:33:40,400 ¿Y esa variable para qué la suelo querer yo? 846 00:33:40,400 --> 00:33:42,640 Pues la suelo querer para operar, para mostrarla, 847 00:33:42,640 --> 00:33:44,680 para hacer cosas, entonces cuando tenga que 848 00:33:44,680 --> 00:33:46,500 operar con ella, mostrarla, hacer cosas 849 00:33:46,500 --> 00:33:48,220 ¿por qué me referiré? por su nombre 850 00:33:48,220 --> 00:33:50,500 como en toda la vida de Dios 851 00:33:50,500 --> 00:33:52,059 ¿tú te refieres a algo por su nombre? 852 00:33:52,880 --> 00:33:54,640 pues en un código te refieres a una 853 00:33:54,640 --> 00:33:56,640 variable por su nombre, por el que le has querido dar 854 00:33:56,640 --> 00:33:58,400 aquí nos hemos referido 855 00:33:58,400 --> 00:34:00,559 por su nombre para mostrarla por consola 856 00:34:00,559 --> 00:34:02,559 pero podríamos habernos 857 00:34:02,559 --> 00:34:04,559 querido referir a ella por su 858 00:34:04,559 --> 00:34:06,240 nombre para asignárselo a otra 859 00:34:06,240 --> 00:34:08,480 por ejemplo, yo 860 00:34:08,480 --> 00:34:10,239 tengo aquí otra variable más 861 00:34:10,239 --> 00:34:11,780 ya 862 00:34:11,780 --> 00:34:13,960 que la llamo num 863 00:34:13,960 --> 00:34:16,699 y le vamos a asignar 864 00:34:16,699 --> 00:34:18,659 a esta 865 00:34:18,659 --> 00:34:20,500 variable un valor 866 00:34:20,500 --> 00:34:22,900 podría asignarle un numerito 867 00:34:22,900 --> 00:34:24,780 que hemos visto hasta ahora, pero no 868 00:34:24,780 --> 00:34:27,000 yo quiero asignarle el valor 869 00:34:27,000 --> 00:34:28,380 que tiene mi otra variable 870 00:34:28,380 --> 00:34:31,239 vale, pues como me refiero a esa variable 871 00:34:31,239 --> 00:34:32,960 por su nombre, como me refiero a todo 872 00:34:32,960 --> 00:34:34,860 en la vida, pues entonces 873 00:34:34,860 --> 00:34:36,360 pongo esto 874 00:34:36,360 --> 00:34:37,780 vale 875 00:34:37,780 --> 00:34:40,380 entonces siempre que necesite usar 876 00:34:40,380 --> 00:34:42,800 el valor de una variable 877 00:34:42,800 --> 00:34:44,460 el valor de una variable 878 00:34:44,460 --> 00:34:46,039 nos referimos allá por su nombre 879 00:34:46,039 --> 00:34:48,840 aquí hemos usado 880 00:34:48,840 --> 00:34:50,440 el valor de esa variable 881 00:34:50,440 --> 00:34:52,079 para mostrarlo por consola 882 00:34:52,079 --> 00:34:54,840 aquí hemos usado 883 00:34:54,840 --> 00:34:56,539 el valor de esta variable 884 00:34:56,539 --> 00:34:58,000 para asignárselo a NUM 885 00:34:58,000 --> 00:35:00,760 entonces una variable 886 00:35:00,760 --> 00:35:02,519 en esta 887 00:35:02,519 --> 00:35:04,400 composición mental lógica 888 00:35:04,400 --> 00:35:07,159 en la que uno ya va organizando sus neuronas 889 00:35:07,159 --> 00:35:08,739 una variable pensad que 890 00:35:08,739 --> 00:35:13,300 Tiene dos conceptos dentro, su nombre y su valor. 891 00:35:13,940 --> 00:35:17,960 Lo que interesa es el valor, porque con el valor operamos y el valor cambia. 892 00:35:18,179 --> 00:35:20,280 El valor a veces era 7, a veces 12, a veces 15. 893 00:35:21,199 --> 00:35:23,280 Y otro concepto es su nombre. 894 00:35:23,440 --> 00:35:25,119 Su nombre es siempre el mismo, el nombre no cambia. 895 00:35:26,119 --> 00:35:30,780 Y el nombre lo usamos cuando necesitemos utilizar su valor. 896 00:35:32,420 --> 00:35:37,360 Aquí hemos necesitado usar el valor de esta variable para mostrarla. 897 00:35:37,679 --> 00:35:38,539 Usamos su nombre. 898 00:35:38,739 --> 00:35:40,519 El nombre no cambia, siempre es el mismo. 899 00:35:41,239 --> 00:35:45,579 Aquí hemos necesitado usar el valor de esta variable 900 00:35:45,579 --> 00:35:47,079 para asignárselo a otra. 901 00:35:48,039 --> 00:35:49,980 Pues usamos su nombre, su nombre no cambia. 902 00:35:50,760 --> 00:35:52,960 Entonces, de una variable lo que se utiliza es el valor, 903 00:35:53,360 --> 00:35:55,500 porque es lo único que tiene, su valor dentro. 904 00:35:55,920 --> 00:35:56,800 Es lo que se utiliza. 905 00:35:57,559 --> 00:36:00,599 Y cuando queramos utilizarlo, ¿qué tenemos que hacer? 906 00:36:00,699 --> 00:36:02,920 Pues llamarla por su nombre, ¿vale? 907 00:36:07,989 --> 00:36:10,710 Y lo que es más, por ejemplo, 908 00:36:10,710 --> 00:36:14,630 imaginaos que ahora quiero yo 909 00:36:14,630 --> 00:36:16,949 la variable número 1 910 00:36:16,949 --> 00:36:18,389 no sé qué valor tiene 911 00:36:18,389 --> 00:36:19,929 porque me la ha pasado alguien 912 00:36:19,929 --> 00:36:21,730 nosotros en los códigos que estamos haciendo 913 00:36:21,730 --> 00:36:23,329 como son un único código nuestro 914 00:36:23,329 --> 00:36:25,590 pues sé qué valor tiene porque me voy para arriba 915 00:36:25,590 --> 00:36:26,510 y lo miro 916 00:36:26,510 --> 00:36:28,769 pero claro, en condiciones normales 917 00:36:28,769 --> 00:36:31,449 pues una variable uno puede no saber qué valor tiene 918 00:36:31,449 --> 00:36:33,150 porque se la ha pasado otro programa 919 00:36:33,150 --> 00:36:34,130 ya veremos cómo, etc. 920 00:36:34,510 --> 00:36:36,090 o porque las pasa por consola, no sabes 921 00:36:36,090 --> 00:36:39,150 pero sabes que esta variable 922 00:36:39,150 --> 00:36:41,309 que ha recibido un valor en algún sitio, 923 00:36:41,489 --> 00:36:43,670 en nuestro caso aquí, pero puede haber sido en otro sitio, 924 00:36:44,610 --> 00:36:46,489 sabes que lo que quieres es a esa variable 925 00:36:46,489 --> 00:36:50,369 el valor que tuviera sumarle 3, por ejemplo, 926 00:36:50,550 --> 00:36:51,630 porque te interesa eso. 927 00:36:52,429 --> 00:36:55,369 Vale, pues entonces tú quieres a la variable 928 00:36:55,369 --> 00:36:56,750 que se llama número 1, 929 00:36:57,550 --> 00:36:59,769 quieres asignarle un valor que es 930 00:36:59,769 --> 00:37:05,070 3 veces más del valor que tenía antes. 931 00:37:05,909 --> 00:37:07,150 Vale, y ahora ya paramos. 932 00:37:07,769 --> 00:37:09,110 Bueno, pues eso ¿en qué se traduce? 933 00:37:09,150 --> 00:37:27,690 Se traduce. ¿Qué estoy haciendo? Asignación. Porque es darle valor a variable. Entonces, primero identifica uno que lo que está haciendo es una asignación. Vale, estoy dándole a número uno algo. Muy bien, asignación. Hasta ahí está claro. A número uno le estoy dando algo. Luego sé que es asignación. 934 00:37:27,690 --> 00:37:28,809 ahora 935 00:37:28,809 --> 00:37:32,130 pensamos, como es asignación 936 00:37:32,130 --> 00:37:34,530 tiene que ser así, entonces nosotros del lenguaje 937 00:37:34,530 --> 00:37:36,530 natural, que el lenguaje natural a veces 938 00:37:36,530 --> 00:37:38,329 es engorroso, pues el lenguaje natural es 939 00:37:38,329 --> 00:37:40,409 suma tres a número uno 940 00:37:40,409 --> 00:37:42,429 suma tres a número uno es nuestro lenguaje 941 00:37:42,429 --> 00:37:43,550 todos nos entendemos muy bien 942 00:37:43,550 --> 00:37:46,429 pero en la máquina virtual hay que expresárselo 943 00:37:46,429 --> 00:37:48,469 en su idioma, que es el código Java 944 00:37:48,469 --> 00:37:50,369 entonces ya lo traducimos 945 00:37:50,369 --> 00:37:52,150 a lenguaje de programación 946 00:37:52,150 --> 00:37:54,329 vale, ¿qué significa sumar tres 947 00:37:54,329 --> 00:37:55,969 a la variable número uno? 948 00:37:55,969 --> 00:37:58,090 pues ahora ya lo traduzco y digo 949 00:37:58,090 --> 00:38:00,030 significa a número 1 950 00:38:00,030 --> 00:38:01,769 asignarle algo, eso para empezar 951 00:38:01,769 --> 00:38:04,610 asignarle algo, vale, ya he avanzado 952 00:38:04,610 --> 00:38:06,769 mucho, que es, ojo, identificado 953 00:38:06,769 --> 00:38:08,309 que lo que tengo que hacer es una sentencia 954 00:38:08,309 --> 00:38:10,630 de asignación, estupendo 955 00:38:10,630 --> 00:38:11,909 sentencia de asignación 956 00:38:11,909 --> 00:38:14,050 eso lo voy a tener que hacer sí o sí 957 00:38:14,050 --> 00:38:16,530 porque he identificado sentencia de asignación 958 00:38:16,530 --> 00:38:18,289 número 1, vale, vamos a la siguiente 959 00:38:18,289 --> 00:38:20,309 parte, vale, y que 960 00:38:20,309 --> 00:38:20,949 le asigno 961 00:38:20,949 --> 00:38:24,190 volvemos al enunciado inicial, súmale 3 962 00:38:24,190 --> 00:38:25,929 a número 1, vale, pues entonces 963 00:38:25,929 --> 00:38:27,190 ¿qué le asigno? le asigno 964 00:38:27,190 --> 00:38:29,769 el valor que tiene número 1 965 00:38:29,769 --> 00:38:31,769 ese valor, a ese valor 966 00:38:31,769 --> 00:38:33,309 le sumo 3 967 00:38:33,309 --> 00:38:35,869 ¿cómo accedemos al valor que tiene 968 00:38:35,869 --> 00:38:37,469 una variable? con su nombre 969 00:38:37,469 --> 00:38:39,550 lo acabamos de decir, pues entonces 970 00:38:39,550 --> 00:38:41,170 este valor ya está 971 00:38:41,170 --> 00:38:43,210 hago esto 972 00:38:43,210 --> 00:38:45,269 entonces ya he traducido 973 00:38:45,269 --> 00:38:47,469 lo de suma 3 a la variable 974 00:38:47,469 --> 00:38:49,510 número 1 que está hecho en lenguaje de humanos 975 00:38:49,510 --> 00:38:51,429 lo he traducido a una asignación 976 00:38:51,429 --> 00:38:53,489 que es, a la variable número 1 977 00:38:53,489 --> 00:38:55,150 hay que asignarle algo, muy bien 978 00:38:55,150 --> 00:38:57,690 asignación, no hay tutía, la asignación solo es así 979 00:38:57,690 --> 00:38:58,530 no hay alternativa 980 00:38:58,530 --> 00:39:01,670 segunda parte, ¿qué valor le doy? 981 00:39:02,489 --> 00:39:03,369 el valor 982 00:39:03,369 --> 00:39:05,010 de la variable número 1 983 00:39:05,010 --> 00:39:07,050 ah, ya sé cómo acceder a eso, con su nombre 984 00:39:07,050 --> 00:39:08,630 pero ese valor no solo 985 00:39:08,630 --> 00:39:11,110 le tengo que sumar un 3, vale 986 00:39:11,110 --> 00:39:13,409 pues las operaciones de suma, resta, multiplicación 987 00:39:13,409 --> 00:39:14,969 y divisiones podemos hacerlas 988 00:39:14,969 --> 00:39:17,570 en Java siempre que queramos con estos operadores 989 00:39:17,570 --> 00:39:19,110 ya revisaremos 990 00:39:19,110 --> 00:39:21,630 más operadores, pero desde ya 991 00:39:21,630 --> 00:39:23,409 nos suena raro que hagamos 992 00:39:23,409 --> 00:39:24,469 Es una suma o una resta, ¿no? 993 00:39:24,469 --> 00:39:24,929 De valores. 994 00:39:26,150 --> 00:39:27,409 Bueno, pues entonces, 995 00:39:28,250 --> 00:39:33,070 ¿qué he querido decir con esta sentencia a construir? 996 00:39:34,170 --> 00:39:37,210 Que una variable puede recibir un valor 997 00:39:37,210 --> 00:39:38,670 que le involucra a sí misma. 998 00:39:38,769 --> 00:39:39,349 No pasa nada. 999 00:39:39,469 --> 00:39:40,710 Esto es una sentencia nada rara. 1000 00:39:41,389 --> 00:39:42,210 ¿Y qué va a ocurrir? 1001 00:39:42,210 --> 00:39:44,210 Que el valor de número uno antiguo 1002 00:39:45,389 --> 00:39:47,570 queda sobrescrito por uno nuevo. 1003 00:39:48,409 --> 00:39:50,949 Aquí coge el que tenía de antes. 1004 00:39:50,949 --> 00:39:53,429 porque lo que hace la máquina virtual 1005 00:39:53,429 --> 00:39:55,190 es primero evaluar esta expresión 1006 00:39:55,190 --> 00:39:57,670 lo primero que hace es evaluar la expresión que hay aquí 1007 00:39:57,670 --> 00:39:59,510 para evaluar la expresión 1008 00:39:59,510 --> 00:40:01,170 cuando hay numeritos, es el número 1009 00:40:01,170 --> 00:40:03,650 no hay duda, y cuando hay variables 1010 00:40:03,650 --> 00:40:05,510 ¿qué tiene que hacer? ya lo sabemos 1011 00:40:05,510 --> 00:40:06,730 se va al contenido 1012 00:40:06,730 --> 00:40:09,289 aquí hay un numerito, no hay duda, el 3 1013 00:40:09,289 --> 00:40:11,369 aquí que hay una variable 1014 00:40:11,369 --> 00:40:13,409 me voy al contenido, que tenía 1015 00:40:13,409 --> 00:40:14,949 9, vale 1016 00:40:14,949 --> 00:40:17,650 9 más 3, 12 1017 00:40:17,650 --> 00:40:19,269 ya tengo el valor 1018 00:40:19,269 --> 00:40:22,090 La máquina virtual una vez que tiene el valor 1019 00:40:22,090 --> 00:40:23,489 Ahora ya mira esta parte 1020 00:40:23,489 --> 00:40:24,610 Esto ya es lo último que mira 1021 00:40:24,610 --> 00:40:26,929 Una vez que ha construido el valor 1022 00:40:26,929 --> 00:40:29,030 Ahora ya lo mete en esta caja 1023 00:40:29,030 --> 00:40:32,130 El efecto secundario al meterlo en esta caja 1024 00:40:32,130 --> 00:40:33,670 Es que pisa lo que tuviera antes 1025 00:40:33,670 --> 00:40:35,489 Pues ya está, es que las asignaciones son así 1026 00:40:35,489 --> 00:40:37,349 Lo que tú asignas pisa lo que tuviera antes 1027 00:40:37,349 --> 00:40:39,610 Puma nada, se supone que es lo que quieres hacer 1028 00:40:39,610 --> 00:40:40,329 ¿Vale? 1029 00:40:42,130 --> 00:40:44,050 Vale, pues ahora sí que vamos a 1030 00:40:44,050 --> 00:40:44,769 Parar aquí 1031 00:40:44,769 --> 00:40:45,769 Un minuto