1 00:00:01,520 --> 00:00:04,639 Vale, pues estábamos con declaración y asignación de variables. 2 00:00:05,580 --> 00:00:11,279 ¿Alguna duda o pregunta de lo de ayer que ya todos os habéis estudiado, mirado y lo tenéis ya todo grabado en la cabeza? 3 00:00:14,509 --> 00:00:25,989 Vale, los char tenían el matiz desde que dijimos que indistintamente podíamos hacer asignaciones a char con el número entero o con el carácter. 4 00:00:25,989 --> 00:00:28,890 y si cuando hacemos una asignación a char 5 00:00:28,890 --> 00:00:30,670 Java ve un número entero 6 00:00:30,670 --> 00:00:33,109 lo interpreta como el carácter 7 00:00:33,109 --> 00:00:34,270 de la tabla ASCII, ¿verdad? 8 00:00:34,810 --> 00:00:36,630 y eso tiene luego implicaciones 9 00:00:36,630 --> 00:00:38,149 a la hora de usarlo tiene implicaciones 10 00:00:38,149 --> 00:00:40,329 vimos pues algunas de ellas 11 00:00:40,329 --> 00:00:42,850 algunos ejemplitos y según uno vaya 12 00:00:42,850 --> 00:00:44,229 usando variables char 13 00:00:44,229 --> 00:00:46,770 pues a lo mejor a veces le sale algo 14 00:00:46,770 --> 00:00:49,250 que no entiende, pero si rápidamente 15 00:00:49,250 --> 00:00:50,490 se da cuenta, ah cuidado 16 00:00:50,490 --> 00:00:53,350 que es que es el número entero 17 00:00:53,350 --> 00:00:54,609 y el número entero interpretado como char 18 00:00:54,609 --> 00:01:00,369 Teniendo clara esa idea, podréis entender casi cualquiera de las diferentes casuísticas que podáis ir trabajando con char. 19 00:01:01,049 --> 00:01:03,070 De las cuales aquí hemos ejemplificado alguna. 20 00:01:03,990 --> 00:01:05,189 Una que dijimos fue esta. 21 00:01:05,629 --> 00:01:12,549 Si yo hago con un operador algebraico suma, resta, la operación entre dos char, me deja hacerla. 22 00:01:13,230 --> 00:01:16,269 Uno diría, pero ¿cómo se pueden sumar char? Los char no se pueden sumar. 23 00:01:16,269 --> 00:01:19,569 claro, precisamente por este matiz 24 00:01:19,569 --> 00:01:21,329 de que los char java 25 00:01:21,329 --> 00:01:23,230 los trata como numeritos enteros 26 00:01:23,230 --> 00:01:25,230 pues sí que deja sumarlos 27 00:01:25,230 --> 00:01:27,590 pero ¿cuál es el problema? 28 00:01:28,129 --> 00:01:30,030 que si ponemos un operador aritmético 29 00:01:30,030 --> 00:01:31,489 él entonces lo interpreta como 30 00:01:31,489 --> 00:01:33,469 número entero y ya automáticamente 31 00:01:33,469 --> 00:01:35,650 hace la suma del número entero 32 00:01:35,650 --> 00:01:38,030 número entero y el system.out.println 33 00:01:38,030 --> 00:01:39,930 saca la interpretación 34 00:01:39,930 --> 00:01:41,010 entera de eso 35 00:01:41,010 --> 00:01:42,349 la interpretación entera 36 00:01:42,349 --> 00:01:44,269 porque hemos usado un operador aritmético 37 00:01:44,269 --> 00:01:47,010 que queremos la interpretación 38 00:01:47,010 --> 00:01:48,790 char, no la interpretación entera 39 00:01:48,790 --> 00:01:50,030 pues el casting 40 00:01:50,030 --> 00:01:52,810 he puesto esta situación porque es la que 41 00:01:52,810 --> 00:01:54,430 a veces a lo mejor se nos da más 42 00:01:54,430 --> 00:01:55,849 y nos puede dar más 43 00:01:55,849 --> 00:01:59,010 dudas de por qué sale eso 44 00:01:59,010 --> 00:02:00,629 y nada más, poco más 45 00:02:00,629 --> 00:02:01,969 que esto puede haber 46 00:02:01,969 --> 00:02:03,590 meter un casting ahí no tiene riesgo 47 00:02:03,590 --> 00:02:06,590 no, no, no, porque tú sabes exactamente 48 00:02:06,590 --> 00:02:08,789 lo que quieres, que C1 tenía 49 00:02:08,789 --> 00:02:10,449 27, C2 tenía 32 50 00:02:10,449 --> 00:02:12,750 y tú quieres el carácter que está en la tabla ASCII 51 00:02:12,750 --> 00:02:14,229 colocado en 27 más 32 52 00:02:14,229 --> 00:02:16,270 entonces como tú sabes que eso es lo que quieres 53 00:02:16,270 --> 00:02:18,469 y el casting sabes que lo que te hace 54 00:02:18,469 --> 00:02:20,610 precisamente es transformar a chat 55 00:02:20,610 --> 00:02:22,509 según la que hablas 56 00:02:22,509 --> 00:02:23,270 tienes un numerito 57 00:02:23,270 --> 00:02:26,030 claro, tiene peligro 58 00:02:26,030 --> 00:02:28,349 siempre que tú no sepas exactamente 59 00:02:28,349 --> 00:02:29,469 qué es lo que va a hacer 60 00:02:29,469 --> 00:02:31,710 entonces aquí sabes qué es lo que va a hacer 61 00:02:31,710 --> 00:02:33,370 y sabes que lo que va a hacer es lo que tú quieres 62 00:02:33,370 --> 00:02:35,030 en el caso de arriba 63 00:02:35,030 --> 00:02:37,849 en el caso de que estábamos viendo números enteros 64 00:02:37,849 --> 00:02:39,830 sabemos el casting que te hace 65 00:02:39,830 --> 00:02:41,849 que si es casting de long high end 66 00:02:41,849 --> 00:02:43,969 sabes que te corta los 32 67 00:02:43,969 --> 00:02:46,009 significativos, sabes lo que hace 68 00:02:46,009 --> 00:02:48,330 que no te importa porque el número es pequeño 69 00:02:48,330 --> 00:02:49,990 lo haces, que si te importa 70 00:02:49,990 --> 00:02:51,750 porque pierdes datos, no lo haces 71 00:02:51,750 --> 00:02:54,110 entonces lo importante del casting es que tú sepas 72 00:02:54,110 --> 00:02:54,990 qué te va a hacer 73 00:02:54,990 --> 00:02:58,129 si lo que te va a hacer casa con lo que tú quieres 74 00:02:58,129 --> 00:02:59,770 lo haces, ¿vale? 75 00:02:59,810 --> 00:03:01,210 pero si no sabes lo que te va a hacer, no 76 00:03:01,210 --> 00:03:03,729 entonces a lo mejor tenemos, ahora mismo solo estamos 77 00:03:03,729 --> 00:03:05,330 viendo tipos primitivos 78 00:03:05,330 --> 00:03:07,569 pero cuando ya veamos tipos objeto 79 00:03:07,569 --> 00:03:10,009 pues tenemos un tipo de dato que es alumno 80 00:03:10,009 --> 00:03:11,490 y otro tipo de dato que es profesor 81 00:03:11,490 --> 00:03:14,569 que son tipos de datos también, pero no serían primitivos 82 00:03:14,569 --> 00:03:16,050 entonces yo tengo que asignar 83 00:03:16,050 --> 00:03:18,289 un alumno a un profesor, el compilador me dice 84 00:03:18,289 --> 00:03:19,889 no, plante un casting 85 00:03:19,889 --> 00:03:21,969 y hasta el compilador se calla, pero no tenemos ni idea 86 00:03:21,969 --> 00:03:24,370 de ese casting, como va a hacer por dentro la conversión 87 00:03:24,370 --> 00:03:26,330 no lo sabemos, entonces nunca haremos un casting 88 00:03:26,330 --> 00:03:28,189 que no sabemos como va a funcionar 89 00:03:28,189 --> 00:03:30,370 por dentro, esto si lo sabemos 90 00:03:30,370 --> 00:03:32,210 estos ejemplos que hemos visto 91 00:03:32,210 --> 00:03:34,169 vale, entonces 92 00:03:34,169 --> 00:03:36,090 los usamos cuando lo que va a hacer 93 00:03:36,090 --> 00:03:37,110 nos cuadra 94 00:03:37,110 --> 00:03:39,650 bueno 95 00:03:39,650 --> 00:03:49,610 esta clase de aquí la abrimos para hacer char y boolean 96 00:03:49,610 --> 00:03:52,830 vamos a avanzar rápidamente 97 00:03:52,830 --> 00:03:55,849 porque luego según vayamos viendo ejemplos y ejercicios 98 00:03:55,849 --> 00:04:00,030 pueden ir saliendo pequeños matices y detalles de los tipos de datos 99 00:04:00,030 --> 00:04:02,150 que igual no tiene sentido ahora a lo mejor 100 00:04:02,150 --> 00:04:06,870 hacer tanta, tanta, tanta clase teórica de esto 101 00:04:06,870 --> 00:04:10,550 porque luego van a salir esos pequeños detalles en los ejercicios 102 00:04:10,550 --> 00:04:12,550 Entonces vamos a ver un poquito lo mínimo para entenderlo. 103 00:04:13,689 --> 00:04:17,790 Bueno, pues venga, siguiente tipo de dato que nos interesa, el único que nos falta, ¿verdad? 104 00:04:19,050 --> 00:04:20,370 El tipo Boolean. 105 00:04:22,759 --> 00:04:29,740 Entonces, el tipo Boolean sobre todo lo usamos para una variable, 106 00:04:30,360 --> 00:04:36,139 una variable que la información que va a contener es una información que nos cuesta más entenderla, 107 00:04:36,139 --> 00:04:42,000 pero también es información, que es si algo es verdad o algo es mentira. 108 00:04:42,300 --> 00:04:43,519 Eso también es información. 109 00:04:44,120 --> 00:04:46,019 Los números son información, lo tenemos claro. 110 00:04:46,120 --> 00:04:49,560 Estamos acostumbrados a que la información sean números y letras, texto, contenido. 111 00:04:50,199 --> 00:04:51,459 Eso es información, lo tenemos claro. 112 00:04:51,600 --> 00:04:53,759 Y se guarda en variables numéricas y chat. 113 00:04:55,120 --> 00:04:59,420 Pero también hay una información que es, esto pasa, esto no pasa. 114 00:04:59,879 --> 00:05:02,620 Entonces, esa información yo la guardaría en variables Boolean. 115 00:05:02,620 --> 00:05:14,379 Por ejemplo, puede ser que yo tenga una aplicación que está trabajando con facturas, con lo que sea, y hay una información que me interesa, que es si una factura está pagada o no. 116 00:05:14,899 --> 00:05:19,079 Eso en sí ya es una información, estar pagada o no estar pagada, eso es una información. 117 00:05:20,399 --> 00:05:28,819 Lo podríamos codificar a través de una variable entera, que la pongo a cero si no está pagada y a uno si lo está, podríamos hacer muchos diseños, claro. 118 00:05:28,819 --> 00:05:30,579 pero si tenemos la variable boolean 119 00:05:30,579 --> 00:05:32,779 a lo mejor podemos hacer un diseño que es más claro a la vista 120 00:05:32,779 --> 00:05:34,439 que es el siguiente 121 00:05:34,439 --> 00:05:36,139 que es, me declaro yo 122 00:05:36,139 --> 00:05:38,540 una variable de este tipo primitivo 123 00:05:38,540 --> 00:05:39,699 boolean 124 00:05:39,699 --> 00:05:42,699 a la que le doy un nombre lo más explicativo 125 00:05:42,699 --> 00:05:44,540 posible, como siempre, los nombres 126 00:05:44,540 --> 00:05:46,839 cuanto más explicativos mejor, pagado 127 00:05:46,839 --> 00:05:48,560 y esta variable boolean 128 00:05:48,560 --> 00:05:50,480 pues ya recibirá 129 00:05:50,480 --> 00:05:52,600 un valor, recibirá el valor true 130 00:05:52,600 --> 00:05:54,420 cuando yo quiera 131 00:05:54,420 --> 00:05:56,420 indicar que eso está pagado 132 00:05:56,420 --> 00:05:58,600 y recibirá el valor false cuando quiera indicar 133 00:05:58,600 --> 00:06:02,500 que no, vale, entonces estas variables se prestan 134 00:06:02,500 --> 00:06:06,540 sobre todo a eso, a hacer programas más claros, más legibles 135 00:06:06,540 --> 00:06:10,680 porque si yo veo aquí un boolean pagado, automáticamente ya me viene a la cabeza 136 00:06:10,680 --> 00:06:14,759 que es una información interesante de esta aplicación si algo está pagado 137 00:06:14,759 --> 00:06:18,560 o no, sin embargo si lo veo en un 138 00:06:18,560 --> 00:06:22,279 int, me puede dar más confusión 139 00:06:22,279 --> 00:06:24,720 porque si lo veo en un int digo, oye 140 00:06:24,720 --> 00:06:28,339 A lo mejor lo que va a contener esta variable 141 00:06:28,339 --> 00:06:29,680 Es la cantidad que se ha pagado 142 00:06:29,680 --> 00:06:32,500 Si se han pagado 27.000, si se han pagado 35.000 143 00:06:32,500 --> 00:06:34,319 Me crea más confusión 144 00:06:34,319 --> 00:06:35,839 Y a lo mejor no, la hemos puesto ahí 145 00:06:35,839 --> 00:06:37,939 Porque nuestro diseño es 146 00:06:37,939 --> 00:06:40,259 Cero si está pagado, uno si no 147 00:06:40,259 --> 00:06:42,500 Entonces el programa es un poco más confuso 148 00:06:42,500 --> 00:06:44,560 Gracias a que tenemos las variables boolean 149 00:06:44,560 --> 00:06:45,800 Aunque no sean necesarias 150 00:06:45,800 --> 00:06:47,459 Pues a la vista es más claro 151 00:06:47,459 --> 00:06:49,819 Ah vale, solo hay una posibilidad 152 00:06:49,819 --> 00:06:51,759 Y es que esta variable codifique sí o no 153 00:06:51,759 --> 00:06:52,519 Solo hay una 154 00:06:52,519 --> 00:06:55,199 pues ya sé que una información interesante de mi programa 155 00:06:55,199 --> 00:06:57,220 es si esto pasa o si esto no pasa 156 00:06:57,220 --> 00:07:00,379 y todo lo que sea hacer una aplicación clara 157 00:07:00,379 --> 00:07:03,019 legible a efectos de código 158 00:07:03,019 --> 00:07:05,600 va a implicar hacer una aplicación mantenible 159 00:07:05,600 --> 00:07:08,220 y una aplicación mantenible es una aplicación 160 00:07:08,220 --> 00:07:10,660 pues que se va a vender, que va a funcionar 161 00:07:10,660 --> 00:07:12,199 una aplicación no mantenible no 162 00:07:12,199 --> 00:07:14,879 porque en cuanto haya, se detecte cualquier error 163 00:07:14,879 --> 00:07:16,600 se detecte cualquier chorrada 164 00:07:16,600 --> 00:07:18,980 arreglar esa aplicación es una locura 165 00:07:18,980 --> 00:07:22,040 entonces, bueno pues entonces esta variable boolean 166 00:07:22,040 --> 00:07:27,699 Ay, lo que no subí ayer es el proyecto este al aula virtual 167 00:07:27,699 --> 00:07:32,060 Sirven para eso 168 00:07:32,060 --> 00:07:35,000 Para guardar información 169 00:07:35,000 --> 00:07:39,100 Sobre si algo ocurre o no 170 00:07:39,100 --> 00:07:46,730 Bueno, y la asignación 171 00:07:46,730 --> 00:07:49,069 Pues solo le puedo asignar uno de los dos posibles valores 172 00:07:49,069 --> 00:07:50,350 Solo tiene dos 173 00:07:50,350 --> 00:07:51,850 Que algo pase o no pase 174 00:07:51,850 --> 00:07:54,629 Pues el valor, los dos valores posibles son el true 175 00:07:54,629 --> 00:07:55,709 Que se escribe tal cual 176 00:07:55,709 --> 00:07:57,709 es una palabra reservada de Java 177 00:07:57,709 --> 00:07:59,050 que la escribimos así, tal cual 178 00:07:59,050 --> 00:08:00,709 o esto 179 00:08:00,709 --> 00:08:03,529 son los únicos dos valores que le puedo asignar 180 00:08:03,529 --> 00:08:05,889 no le puedo asignar más cosas 181 00:08:05,889 --> 00:08:06,589 que esto 182 00:08:06,589 --> 00:08:10,329 ¿vale? que algo ocurra o que algo no ocurra 183 00:08:10,329 --> 00:08:15,019 por supuesto 184 00:08:15,019 --> 00:08:17,079 la puedo inicializar al principio 185 00:08:17,079 --> 00:08:24,269 entonces claro 186 00:08:24,269 --> 00:08:26,290 estas asignaciones en una aplicación 187 00:08:26,290 --> 00:08:28,790 ya que tenga pues todo un recorrido 188 00:08:28,790 --> 00:08:30,329 pues el sentido tendrá 189 00:08:30,329 --> 00:08:31,610 yo pondré esta variable 190 00:08:31,610 --> 00:08:34,309 si he evaluado previamente una condición 191 00:08:34,309 --> 00:08:36,389 y he visto que en la base de datos 192 00:08:36,389 --> 00:08:37,990 hay una cantidad 193 00:08:37,990 --> 00:08:39,629 pues entonces pongo pagado a true 194 00:08:39,629 --> 00:08:42,230 bueno, usaremos 195 00:08:42,230 --> 00:08:43,470 las variables booleanas 196 00:08:43,470 --> 00:08:45,370 dentro de programas 197 00:08:45,370 --> 00:08:48,289 que necesiten condiciones para funcionar 198 00:08:48,289 --> 00:08:50,250 y a su vez 199 00:08:50,250 --> 00:08:52,610 las variables booleanas nos funcionan 200 00:08:52,610 --> 00:08:53,750 nos sirven 201 00:08:53,750 --> 00:08:55,870 como condiciones 202 00:08:55,870 --> 00:08:58,029 para luego una sentencia de 203 00:08:58,029 --> 00:09:00,230 selección, recordad que 204 00:09:00,230 --> 00:09:04,769 En la programación estructurada tenía las sentencias de selección, 205 00:09:05,730 --> 00:09:07,769 las que llamaba de decisión, que son las que te dicen, 206 00:09:07,870 --> 00:09:11,149 si esto ocurre, haz una cosa, y si esto no ocurre, haz otra. 207 00:09:11,929 --> 00:09:13,990 Pues las variables booleanas precisamente son eso, 208 00:09:14,210 --> 00:09:19,070 son ese algo que ocurre o no, son condiciones, ¿vale? 209 00:09:19,190 --> 00:09:20,250 Entonces vamos a ponerlo aquí. 210 00:09:20,570 --> 00:09:24,370 Las variables booleanas expresan condiciones, 211 00:09:24,509 --> 00:09:27,610 porque las condiciones solo tienen dos alternativas, 212 00:09:27,610 --> 00:09:29,470 una condición o se cumple 213 00:09:29,470 --> 00:09:31,149 o no se cumple, por definición 214 00:09:31,149 --> 00:09:32,029 eso es una condición 215 00:09:32,029 --> 00:09:35,529 una condición es un hecho 216 00:09:35,529 --> 00:09:37,190 que puede cumplirse 217 00:09:37,190 --> 00:09:39,409 o puede no cumplirse, eso lo tiene dos alternativas 218 00:09:39,409 --> 00:09:40,730 no puede cumplirse a medias 219 00:09:40,730 --> 00:09:42,049 no puede cumplirse a medias 220 00:09:42,049 --> 00:09:45,929 al menos en términos 221 00:09:45,929 --> 00:09:47,070 de programación 222 00:09:47,070 --> 00:09:49,470 si uno se metiera en lógica borrosa 223 00:09:49,470 --> 00:09:51,409 que son otros patrones de programación 224 00:09:51,409 --> 00:09:53,250 las condiciones se pueden cumplir a medias 225 00:09:53,250 --> 00:09:56,429 pero aquí no estamos en la lógica borrosa 226 00:09:56,429 --> 00:10:01,309 sino en el álgebra de Boole, las condiciones, los hechos, o se cumplen o no se cumplen. 227 00:10:01,389 --> 00:10:03,929 Estamos trabajando en ceros y unos, aquí no hay intermedios. 228 00:10:04,009 --> 00:10:06,570 Pues una variable booleana o se cumple o no se cumple. 229 00:10:07,129 --> 00:10:14,629 Entonces las variables booleanas en realidad representan condiciones 230 00:10:14,629 --> 00:10:23,299 y el concepto de condición es importante, porque una condición es lo que usaremos 231 00:10:23,299 --> 00:10:26,000 en nuestra sentencia selectiva para si se cumple o no se cumple. 232 00:10:26,000 --> 00:10:27,779 Si no se cumple por un lado o por otro ya lo veremos. 233 00:10:27,779 --> 00:10:46,399 es decir, hechos que se cumplen o no se cumplen, ¿vale? 234 00:10:46,440 --> 00:10:47,179 De repente han condiciones. 235 00:10:51,980 --> 00:10:57,759 Vale, pues entonces, asignaciones a variables booleanas, 236 00:10:57,759 --> 00:11:00,639 hombre, asignar true o false está claro, yo puedo asignar true o false, 237 00:11:00,700 --> 00:11:01,980 son los dos posibles valores que puede tener. 238 00:11:02,740 --> 00:11:07,480 Pero igual que a las variables numéricas, yo le podía asignar directamente, 239 00:11:07,480 --> 00:11:28,000 Yo a una variable numérica le podía asignar directamente el numerito, 138, el numerito, como a la variable booleana le asigno true, o también le puedo asignar una expresión como esta o una expresión como esta, cuyo resultado de evaluarla me dé un numerito, ¿verdad? 240 00:11:28,000 --> 00:11:37,519 Lo importante es que yo lo que ponga en la asignación sea algo que a resultas de su evaluación me dé algo compatible con la variable. 241 00:11:38,179 --> 00:11:40,820 Esto me da algo compatible con la variable, me da un número entero. 242 00:11:40,980 --> 00:11:44,720 Esto también, porque número 1 es variable entera, número 2 es variable entero. 243 00:11:46,000 --> 00:11:49,480 Una operación algebraica con eso me da un número entero. 244 00:11:49,480 --> 00:11:54,100 Entonces ya hemos visto aquí que lo que nosotros ponemos a la derecha 245 00:11:54,100 --> 00:11:56,779 No tiene por qué ser un valor tal cual 246 00:11:56,779 --> 00:11:58,159 Sino también una expresión 247 00:11:58,159 --> 00:12:01,019 Una expresión correctamente escrita 248 00:12:01,019 --> 00:12:04,820 Y esto de correctamente escrita tendremos que revisarlo 249 00:12:04,820 --> 00:12:08,240 Para ver cuáles son las reglas de construcción de expresiones 250 00:12:08,240 --> 00:12:10,000 Pues una expresión correctamente escrita 251 00:12:10,000 --> 00:12:14,559 De tal forma que la evaluación de esa expresión nos dé un valor 252 00:12:14,559 --> 00:12:16,279 Compatible 253 00:12:16,279 --> 00:12:17,720 Bueno, pues con las booleanas igual 254 00:12:17,720 --> 00:12:24,399 Yo no tengo por qué asignar, no es obligatorio que la asignación de las booleanas sea PAF o true o false, los únicos dos posibles que tiene. 255 00:12:24,960 --> 00:12:37,600 No, a una variable booleana le puedo asignar una expresión cuyo resultado de la evaluación sea un valor compatible, es decir, un valor verdad o mentira. 256 00:12:37,600 --> 00:13:07,409 Por ejemplo, vamos a poner algunos ejemplos. Voy a indicarlo aquí. A una variable booleana se le pueden asignar expresiones también, igual que a los números, siempre y cuando esas expresiones solo tengan dos posibles resultados. 257 00:13:07,409 --> 00:13:09,830 si o no 258 00:13:09,830 --> 00:13:23,320 vale 259 00:13:23,320 --> 00:13:25,539 siempre, cuando solo tengan dos posibles 260 00:13:25,539 --> 00:13:27,879 porque son los únicos dos posibles que se le puede asignar a true 261 00:13:27,879 --> 00:13:29,659 igual que aquí 262 00:13:29,659 --> 00:13:31,799 esta expresión puede tener 263 00:13:31,799 --> 00:13:34,120 miles de resultados 264 00:13:34,120 --> 00:13:35,740 posibles, claro 265 00:13:35,740 --> 00:13:37,759 en función de los valores que tenga número número dos 266 00:13:37,759 --> 00:13:39,600 miles de resultados, claro, pero es que 267 00:13:39,600 --> 00:13:41,200 a la variable número dos por ser entera 268 00:13:41,200 --> 00:13:43,340 se le pueden dar miles de resultados 269 00:13:43,340 --> 00:13:45,799 claro, pero es que a este 270 00:13:45,799 --> 00:13:47,539 solo se le puede asignar 271 00:13:47,539 --> 00:13:49,580 true o false, con lo cual lo que yo ponga 272 00:13:49,580 --> 00:13:50,720 ahí tiene que ser una expresión 273 00:13:50,720 --> 00:13:53,720 cuyo resultado final solo pueda ser 274 00:13:53,720 --> 00:13:55,059 se cumple o no se cumple 275 00:13:55,059 --> 00:13:57,559 y que expresiones 276 00:13:57,559 --> 00:13:59,759 solo me pueden dar como resultado 277 00:13:59,759 --> 00:14:00,480 se cumple o no 278 00:14:00,480 --> 00:14:03,179 pues ahora enseguida lo vamos 279 00:14:03,179 --> 00:14:05,320 con ejemplos, vais a decir, claro 280 00:14:05,320 --> 00:14:07,580 las expresiones que llamamos 281 00:14:07,580 --> 00:14:09,500 relacionales, a las cuales 282 00:14:09,500 --> 00:14:11,379 volveremos para aprender a construirlas, por ejemplo 283 00:14:11,379 --> 00:14:14,820 número uno 284 00:14:14,820 --> 00:14:17,340 mayor que 285 00:14:17,340 --> 00:14:18,440 Número 2 286 00:14:18,440 --> 00:14:22,429 ¿Vale? Esto 287 00:14:22,429 --> 00:14:26,330 Ah, claro, es que número 1 está sin declarar 288 00:14:26,330 --> 00:14:27,570 Porque estaba en otra clase 289 00:14:27,570 --> 00:14:30,210 Voy a declarar aquí dos variables enteras 290 00:14:30,210 --> 00:14:31,610 Cuales quiera, por ejemplo 291 00:14:31,610 --> 00:14:36,570 Y número 1, le voy a asignar ya un valor 292 00:14:36,570 --> 00:14:37,990 Le voy a inicializar 293 00:14:37,990 --> 00:14:39,250 87 294 00:14:39,250 --> 00:14:42,929 Y número 2, 65 295 00:14:42,929 --> 00:14:44,990 Vale, tengo dos variables enteras 296 00:14:44,990 --> 00:14:46,230 Y además inicializadas 297 00:14:46,230 --> 00:14:48,029 Con una primera asignación 298 00:14:48,029 --> 00:14:58,570 Bueno, pues esta expresión es una expresión construida con un operador de los que llamamos relacionales 299 00:14:58,570 --> 00:14:59,990 Este no es un operador algebraico 300 00:14:59,990 --> 00:15:05,750 Los operadores algebraicos son suma, resta, multiplicación, división, los que hacen operaciones algebraicas 301 00:15:05,750 --> 00:15:11,690 Estos son relacionales, los que relacionan menor que, mayor que, igual que 302 00:15:11,690 --> 00:15:13,610 repito por enésima vez 303 00:15:13,610 --> 00:15:15,750 todos estos operadores y cómo usarlos 304 00:15:15,750 --> 00:15:17,769 para construir expresiones válidas 305 00:15:17,769 --> 00:15:19,850 en Java, lo tenemos que repasar 306 00:15:19,850 --> 00:15:20,710 todo en plan chorizo 307 00:15:20,710 --> 00:15:21,750 pero 308 00:15:21,750 --> 00:15:25,590 podemos adelantar algunas cositas para entender 309 00:15:25,590 --> 00:15:27,409 el concepto de variable 310 00:15:27,409 --> 00:15:30,149 esto es una expresión 311 00:15:30,149 --> 00:15:31,429 perfectamente construida 312 00:15:31,429 --> 00:15:34,090 número uno mayor que número dos 313 00:15:34,090 --> 00:15:35,389 no es una expresión aritmética 314 00:15:35,389 --> 00:15:36,809 no es una suma, no es una resta 315 00:15:36,809 --> 00:15:39,649 pero es una expresión relacional 316 00:15:39,649 --> 00:15:42,370 está construida con un operador relacional 317 00:15:42,370 --> 00:15:43,950 y compara dos valores 318 00:15:43,950 --> 00:15:46,049 que se pueden comparar 319 00:15:46,049 --> 00:15:47,750 relacionalmente, porque son números 320 00:15:47,750 --> 00:15:50,149 los puedo comparar por mayor que y menor que 321 00:15:50,149 --> 00:15:51,850 bueno, pues esta expresión 322 00:15:51,850 --> 00:15:53,429 es una expresión 323 00:15:53,429 --> 00:15:56,070 que si yo la evalúo solo tiene dos posibilidades 324 00:15:56,070 --> 00:15:58,350 o se cumple o no se cumple 325 00:15:58,350 --> 00:16:00,429 no hay tutía, o se cumple o no se cumple 326 00:16:00,429 --> 00:16:01,970 no hay más, bueno pues 327 00:16:01,970 --> 00:16:03,610 esa expresión es perfectamente válida 328 00:16:03,610 --> 00:16:05,629 para asignársela a pagado 329 00:16:05,629 --> 00:16:07,950 entonces cuando coincida 330 00:16:07,950 --> 00:16:10,370 que la variable número 1 es mayor que número 2 331 00:16:10,370 --> 00:16:11,629 pagado tendrá true 332 00:16:11,629 --> 00:16:12,470 está claro 333 00:16:12,470 --> 00:16:16,169 si resulta que número 1, llegados a este punto 334 00:16:16,169 --> 00:16:17,490 es menor o igual 335 00:16:17,490 --> 00:16:19,990 que número 2, pues pagado tendrá false 336 00:16:19,990 --> 00:16:22,190 ¿vale? pero lo que importa es 337 00:16:22,190 --> 00:16:22,509 dime 338 00:16:22,509 --> 00:16:27,909 si, las tengo aquí declaradas como numéricas 339 00:16:27,909 --> 00:16:29,289 y aparte les he dado un valor 340 00:16:29,289 --> 00:16:30,129 pues por darle algo 341 00:16:30,129 --> 00:16:46,019 vale, entonces esta expresión 342 00:16:46,019 --> 00:16:48,340 es perfectamente válida porque solamente 343 00:16:48,340 --> 00:16:49,740 tiene como resultado final 344 00:16:49,740 --> 00:16:51,059 ocurre o no ocurre 345 00:16:51,059 --> 00:16:57,679 Claro, esta no sería, si yo pongo aquí pagado igual a número 1 más 6 346 00:16:57,679 --> 00:17:01,440 El compilador me dice, ¿cómo que pagado igual a número 1 más 6? 347 00:17:02,259 --> 00:17:06,559 Número 1 más 6 es una operación aritmética cuyo resultado es un número 348 00:17:06,559 --> 00:17:10,140 Y un número no es compatible con cumplirse o no cumplirse 349 00:17:10,140 --> 00:17:19,480 Entonces, esta asignación no es válida, ¿vale? 350 00:17:19,480 --> 00:17:35,240 Esta no sería válida porque el resultado no es un valor booleano, no es true o false, sino es un número. 351 00:17:45,410 --> 00:17:48,150 Entonces, esta no nos vale. 352 00:18:01,759 --> 00:18:09,460 ¿Vale? Entonces, luego ya veremos cómo construir expresiones booleanas o relacionales todo lo complejas que uno quiera. 353 00:18:10,200 --> 00:18:13,160 Porque muchas veces en una aplicación tenemos que expresar una condición. 354 00:18:13,160 --> 00:18:17,059 que el alumno sea mayor que edad y haya pagado tantas matrículas 355 00:18:17,059 --> 00:18:20,599 como la suma de las que se haya matriculado los tres juegos anteriores 356 00:18:20,599 --> 00:18:25,519 en las aplicaciones muchas veces hay condiciones muy elaboradas 357 00:18:25,519 --> 00:18:27,740 pues hay que saber construir esas condiciones 358 00:18:27,740 --> 00:18:33,019 y para saber construirlas tendremos que conocer las reglas y los operadores 359 00:18:33,019 --> 00:18:37,059 de los que disponemos para construir expresiones booleanas y relacionales 360 00:18:37,680 --> 00:18:40,859 que pueden ser mutochas, esta es muy sencilla 361 00:18:40,859 --> 00:18:42,079 pero pueden ser muy tochas 362 00:18:42,079 --> 00:18:48,859 bueno, pues esto en cuanto a 363 00:18:48,859 --> 00:18:50,720 primer vistazo por encima 364 00:18:50,720 --> 00:18:52,380 de la declaración de variables 365 00:18:52,380 --> 00:18:55,819 de tipos primitivos 366 00:18:55,819 --> 00:18:59,339 de la asignación de variables 367 00:18:59,339 --> 00:19:00,640 a tipos primitivos 368 00:19:00,640 --> 00:19:01,359 y de algunos 369 00:19:01,359 --> 00:19:05,039 pequeños matices de funcionamiento 370 00:19:05,039 --> 00:19:07,299 vale, y para 371 00:19:07,299 --> 00:19:09,720 rizar ya el rizo 372 00:19:09,720 --> 00:19:15,740 vamos a aprovechar y ver 373 00:19:15,740 --> 00:19:20,900 ahora ya que conocemos las variables booleanas 374 00:19:20,900 --> 00:19:22,319 que representan condiciones 375 00:19:22,319 --> 00:19:25,200 y que conocemos lo que son las asignaciones 376 00:19:25,200 --> 00:19:26,359 que es dar valor a una variable 377 00:19:26,359 --> 00:19:28,640 pues vamos a ver 378 00:19:28,640 --> 00:19:34,019 una posibilidad que tenemos en Java 379 00:19:34,019 --> 00:19:34,599 una posibilidad 380 00:19:34,599 --> 00:19:38,619 que es la de hacer asignaciones 381 00:19:38,619 --> 00:19:40,960 asignaciones condicionadas 382 00:19:40,960 --> 00:19:45,759 ¿Vale? 383 00:19:45,779 --> 00:19:47,900 Que a veces nos facilita mucho la tarea 384 00:19:47,900 --> 00:19:50,400 Vale, entonces una asignación 385 00:19:50,400 --> 00:19:51,380 Ya sabemos lo que es 386 00:19:51,380 --> 00:19:54,319 A una variable 387 00:19:54,319 --> 00:19:56,000 Nombre de variable 388 00:19:56,000 --> 00:19:58,200 A la izquierda del operador siempre el nombre de variable 389 00:19:58,200 --> 00:20:00,180 A la izquierda nunca puede ir nada 390 00:20:00,180 --> 00:20:02,119 En una asignación que no sea el nombre de la variable 391 00:20:02,119 --> 00:20:03,059 Nunca 392 00:20:03,059 --> 00:20:05,539 ¿Vale? Lo digo porque cuidado 393 00:20:05,539 --> 00:20:06,480 Porque muchas veces 394 00:20:06,480 --> 00:20:08,500 Hacéis esto 395 00:20:08,500 --> 00:20:12,380 O cosas parecidas al principio 396 00:20:12,380 --> 00:20:13,980 ¿Vale? 397 00:20:14,259 --> 00:20:20,640 a la izquierda nombre de la variable 398 00:20:20,640 --> 00:20:21,599 que recibe el valor 399 00:20:21,599 --> 00:20:24,599 operador igual y a la derecha 400 00:20:24,599 --> 00:20:26,119 valor que yo asigno 401 00:20:26,119 --> 00:20:28,680 resultado una expresión o valor ahí calcado 402 00:20:28,680 --> 00:20:30,599 bueno, pues las asignaciones son esto 403 00:20:30,599 --> 00:20:32,740 normalmente, vale, pero puede ocurrir 404 00:20:32,740 --> 00:20:33,859 que yo quiera asignar 405 00:20:33,859 --> 00:20:36,480 o bien un valor o bien otro 406 00:20:36,480 --> 00:20:38,359 en función de una condición 407 00:20:38,359 --> 00:20:40,220 si una condición se cumple 408 00:20:40,220 --> 00:20:42,759 asigno un valor y si no se cumple 409 00:20:42,759 --> 00:20:43,420 asigno otro 410 00:20:43,420 --> 00:20:46,119 vale, bueno, es una situación 411 00:20:46,119 --> 00:20:47,339 que se da muchísimo 412 00:20:47,339 --> 00:20:50,140 la podemos hacer con la sentencia 413 00:20:50,140 --> 00:20:51,619 selectiva, porque de hecho 414 00:20:51,619 --> 00:20:54,500 la sentencia selectiva 415 00:20:54,500 --> 00:20:56,380 es si algo ocurre, hago una cosa y si algo ocurre 416 00:20:56,380 --> 00:20:58,079 hago otra, pero la sentencia selectiva 417 00:20:58,079 --> 00:20:59,900 es como más general, si algo ocurre 418 00:20:59,900 --> 00:21:01,799 hago una cosa, que puede ser todo lo tocha que sea 419 00:21:01,799 --> 00:21:04,039 y si no ocurre hago otra, aquí estoy hablando 420 00:21:04,039 --> 00:21:05,539 de un caso muy particular, que es 421 00:21:05,539 --> 00:21:07,359 solamente a la hora de asignar 422 00:21:07,359 --> 00:21:10,039 cuando yo voy a asignar un valor a una variable 423 00:21:10,039 --> 00:21:13,420 Si ocurre una condición 424 00:21:13,420 --> 00:21:14,460 Le quiero asignar el 4 425 00:21:14,460 --> 00:21:16,740 Y si ocurre otra condición 426 00:21:16,740 --> 00:21:19,279 Le quiero asignar el 6 427 00:21:19,279 --> 00:21:19,900 Por ejemplo 428 00:21:19,900 --> 00:21:21,559 ¿Vale? 429 00:21:22,420 --> 00:21:24,180 Vamos a ponerlo aquí 430 00:21:24,180 --> 00:21:28,960 Queremos asignar 4 431 00:21:28,960 --> 00:21:31,400 A número 1 432 00:21:31,400 --> 00:21:32,660 Si pagado 433 00:21:32,660 --> 00:21:33,440 Está true 434 00:21:33,440 --> 00:21:38,640 O 6 435 00:21:38,640 --> 00:21:40,740 Bueno, vamos a poner 0 y 1 436 00:21:40,740 --> 00:21:42,039 Que a lo mejor podría tener sentido 437 00:21:42,039 --> 00:21:44,759 cero si pagado, la variable la pongo ya a cero 438 00:21:44,759 --> 00:21:46,519 porque luego esa se usa para sumador 439 00:21:46,519 --> 00:21:48,420 como contador de las facturas por pagar 440 00:21:48,420 --> 00:21:50,000 podría tener más sentido así 441 00:21:50,000 --> 00:21:53,710 o uno 442 00:21:53,710 --> 00:21:55,210 si no pagado 443 00:21:55,210 --> 00:21:58,230 si no está pagado 444 00:21:58,230 --> 00:22:00,210 vale, pues yo que sé 445 00:22:00,210 --> 00:22:02,109 se nos da esta situación, que este número uno 446 00:22:02,109 --> 00:22:04,109 es una especie de indicador de contador 447 00:22:04,109 --> 00:22:06,369 que lleva cuenta de las pagadas 448 00:22:06,369 --> 00:22:08,230 o no, lo pongo a cero 449 00:22:08,230 --> 00:22:10,210 si no está pagado, o sea, si está 450 00:22:10,210 --> 00:22:11,549 pagado ya no queda nada por pagar 451 00:22:11,549 --> 00:22:13,390 y la quiero poner a uno 452 00:22:13,390 --> 00:22:16,549 si no lo está, por ejemplo 453 00:22:16,549 --> 00:22:19,009 bueno, es una situación muy habitual 454 00:22:19,009 --> 00:22:22,970 una asignación que yo tengo dos posibles valores 455 00:22:22,970 --> 00:22:24,369 dos posibilidades concretas 456 00:22:24,369 --> 00:22:26,049 o esta o esta otra 457 00:22:26,049 --> 00:22:28,269 ¿cuál quiero? ¿asignarle 0? 458 00:22:29,109 --> 00:22:30,490 no lo sé, depende de pagado 459 00:22:30,490 --> 00:22:32,670 ¿asignarle 1? no lo sé, depende de pagado 460 00:22:32,670 --> 00:22:34,369 ¿qué le asigno? ¿0 o 1? 461 00:22:35,269 --> 00:22:36,789 bueno, pues lo expreso de esta manera 462 00:22:36,789 --> 00:22:39,170 pongo la condición 463 00:22:39,170 --> 00:22:42,529 en función de la cual quiero hacer una cosa u otra 464 00:22:42,529 --> 00:22:45,490 la pongo entre paréntesis al principio de todo 465 00:22:45,490 --> 00:22:49,769 vale, y la sigo con una interrogación 466 00:22:49,769 --> 00:22:55,140 esto significa, voy a hacer una asignación a número 467 00:22:55,140 --> 00:23:00,039 vamos a evaluar la condición que está aquí dentro 468 00:23:00,039 --> 00:23:03,240 lo que está aquí dentro tiene que ser algo booleano, que tenga un valor booleano 469 00:23:03,240 --> 00:23:07,099 algo que pueda ser true o false, pagado lo es, pagado es una variable booleana 470 00:23:07,099 --> 00:23:11,700 está aquí, entonces esto me vale como condición 471 00:23:11,700 --> 00:23:13,619 lo que tiene que haber ahí dentro 472 00:23:13,619 --> 00:23:15,759 tiene que ser algo que o sea verdad o sea mentira 473 00:23:15,759 --> 00:23:17,119 pongo 474 00:23:17,119 --> 00:23:19,619 la interrogación para indicar esta es la condición 475 00:23:19,619 --> 00:23:21,079 que me estoy preguntando y ahora 476 00:23:21,079 --> 00:23:23,519 separado por dos puntos pongo 477 00:23:23,519 --> 00:23:24,720 las dos posibilidades 478 00:23:24,720 --> 00:23:28,349 vale 479 00:23:28,349 --> 00:23:31,650 antes de los dos puntos pongo el valor 480 00:23:31,650 --> 00:23:32,569 que asignaría 481 00:23:32,569 --> 00:23:34,490 si esto es true 482 00:23:34,490 --> 00:23:37,529 y después de los dos puntos pongo 483 00:23:37,529 --> 00:23:39,230 el valor que asignaría si eso es false 484 00:23:39,230 --> 00:23:44,230 luego esto es una asignación 485 00:23:44,230 --> 00:23:47,569 condicionada a que esta condición se dé o no se dé 486 00:23:47,569 --> 00:23:51,109 y es una situación muy habitual 487 00:23:51,109 --> 00:23:53,609 entonces en lugar de usar una sentencia selectiva 488 00:23:53,609 --> 00:23:56,609 para ello usamos directamente esto 489 00:23:56,609 --> 00:24:01,230 que ahora mismo ya estamos con capacidad de entenderlo 490 00:24:01,230 --> 00:24:02,950 aunque no hayamos visto sentencias selectivas 491 00:24:02,950 --> 00:24:05,130 pero sabemos entender lo que es una condición 492 00:24:05,130 --> 00:24:08,490 que una condición se puede guardar en una variable booleana 493 00:24:08,490 --> 00:24:10,150 perfectamente, una variable boolean 494 00:24:10,150 --> 00:24:14,109 yo pongo aquí esa condición 495 00:24:14,109 --> 00:24:17,789 y separados por dos puntos 496 00:24:17,789 --> 00:24:18,849 los dos posibles valores 497 00:24:18,849 --> 00:24:22,369 vale 498 00:24:22,369 --> 00:24:26,980 entonces aquí puedo poner cualquier cosa 499 00:24:26,980 --> 00:24:29,400 que sea ese concepto de condición 500 00:24:29,400 --> 00:24:30,880 la variable boolean 501 00:24:30,880 --> 00:24:32,880 lo he pagado, pero incluso podría poner 502 00:24:32,880 --> 00:24:35,039 una expresión también, cuyo resultado 503 00:24:35,039 --> 00:24:36,680 final me diera true o false 504 00:24:36,680 --> 00:24:38,500 podría también ponerla, es decir 505 00:24:38,500 --> 00:24:40,839 podría poner esto también, sería lo mismo 506 00:24:40,839 --> 00:24:41,460 en este caso 507 00:24:41,460 --> 00:24:46,180 podríamos poner aquí esto 508 00:24:46,180 --> 00:24:54,049 vale 509 00:24:54,049 --> 00:24:57,109 O sea, no es que tenga mucha lógica con el sentido del programa 510 00:24:57,109 --> 00:24:59,269 Pero a ver, yo puedo poner aquí cualquier cosa 511 00:24:59,269 --> 00:25:00,589 Que me dé true o false 512 00:25:00,589 --> 00:25:02,009 Cualquier cosa que me dé true o false 513 00:25:02,009 --> 00:25:04,670 Pagado me da true o false, porque es una condición 514 00:25:04,670 --> 00:25:06,450 Es una boolean, o es true o es false 515 00:25:06,450 --> 00:25:07,930 Depende del valor que tenga, no es el que tiene 516 00:25:07,930 --> 00:25:10,009 Pero es una variable boolean, o me da true o false 517 00:25:10,009 --> 00:25:13,089 Y esto también, esto también es algo boolean 518 00:25:13,089 --> 00:25:15,109 Esto también es una condición, es algo boolean 519 00:25:15,109 --> 00:25:16,250 Que o me da true o me da false 520 00:25:16,250 --> 00:25:18,730 Entonces lo que yo pongo entre los paréntesis 521 00:25:18,730 --> 00:25:20,690 Tiene que ser siempre algo 522 00:25:20,690 --> 00:25:22,269 Que me dé true o me dé false 523 00:25:22,269 --> 00:25:23,630 ¿Vale? 524 00:25:24,049 --> 00:25:27,329 Y en función de eso, si me da true, la asignación será esta primera. 525 00:25:28,269 --> 00:25:30,569 Y si me da false, pues será esta otra. 526 00:25:49,890 --> 00:25:50,329 Vale. 527 00:25:53,470 --> 00:25:55,410 Claro, claro, clarísimo. 528 00:25:56,430 --> 00:25:57,190 Para todo el mundo. 529 00:25:59,329 --> 00:26:01,809 ¿Lo has dicho lo he entendido yo o lo he entendido hasta yo? 530 00:26:03,210 --> 00:26:03,650 Vale. 531 00:26:04,450 --> 00:26:05,430 Pues fenomenal. 532 00:26:06,250 --> 00:26:07,390 Asumo que el resto del mundo también. 533 00:26:07,390 --> 00:26:12,390 vale, bueno pues 534 00:26:12,390 --> 00:26:14,490 hasta aquí asignaciones a variables 535 00:26:14,490 --> 00:26:17,029 eso no significa que no puedan surgir luego situaciones 536 00:26:17,029 --> 00:26:18,769 que uno diga 537 00:26:18,769 --> 00:26:20,029 anda, ¿y por qué me pasa esto? 538 00:26:20,730 --> 00:26:22,589 claro, puede haber casuísticas muy complejas 539 00:26:22,589 --> 00:26:24,750 pero tenemos toda la información necesaria en realidad 540 00:26:24,750 --> 00:26:26,309 para meternos y decir 541 00:26:26,309 --> 00:26:27,849 ah, vale, por esto 542 00:26:27,849 --> 00:26:30,970 y si nos falta alguna 543 00:26:30,970 --> 00:26:31,970 pues ya nos surgirá 544 00:26:31,970 --> 00:26:34,829 vale, vamos a añadir 545 00:26:34,829 --> 00:26:35,910 una cosa 546 00:26:35,910 --> 00:26:38,809 para ya poder empezar a hacer programas sencillísimos 547 00:26:38,809 --> 00:26:40,569 y ya poder escribir algo y no estar ahí todo el rato 548 00:26:40,569 --> 00:26:42,549 aburridos escuchando, pero claro 549 00:26:42,549 --> 00:26:44,849 para poder hacer un programa que tenga mínimamente sentido 550 00:26:44,849 --> 00:26:46,529 tenemos que poder 551 00:26:46,529 --> 00:26:47,690 darle datos desde fuera 552 00:26:47,690 --> 00:26:50,490 porque esto de darle los datos por programa así 553 00:26:50,490 --> 00:26:52,890 directamente, pues esto es una chapuza 554 00:26:52,890 --> 00:26:54,930 ¿no? porque entonces mi programa 555 00:26:54,930 --> 00:26:56,670 si yo le doy 556 00:26:56,670 --> 00:26:58,569 los datos directamente así, mi programa 557 00:26:58,569 --> 00:27:00,430 va a operar con los mismos datos siempre 558 00:27:00,430 --> 00:27:02,609 todo el rato con los mismos, poniendo 38 menos 27 559 00:27:02,609 --> 00:27:04,470 que yo quiero que opere con otros 560 00:27:04,470 --> 00:27:06,349 Tendría que irme al código fuente 561 00:27:06,349 --> 00:27:09,250 Editar el código fuente, compilarlo y ejecutarlo 562 00:27:09,250 --> 00:27:10,230 Eso no tiene ningún sentido 563 00:27:10,230 --> 00:27:11,829 Yo quiero hacer un programa 564 00:27:11,829 --> 00:27:14,289 Que los datos que tiene aquí 565 00:27:14,289 --> 00:27:17,349 Los reciba en el momento de ejecutarse 566 00:27:17,349 --> 00:27:18,490 Los reciba desde fuera 567 00:27:18,490 --> 00:27:21,490 Si no, este programa solo va a ser útil 568 00:27:21,490 --> 00:27:23,269 Para esos datos, no tendría mayor sentido 569 00:27:23,269 --> 00:27:24,529 ¿Vale? 570 00:27:24,670 --> 00:27:26,930 Entonces los programas tienen que poder coger los datos 571 00:27:26,930 --> 00:27:28,789 Desde fuera en el momento de ejecutarse 572 00:27:28,789 --> 00:27:30,250 Para que tengan utilidad 573 00:27:30,250 --> 00:27:32,809 Ese fuera, ¿cuál será? 574 00:27:32,809 --> 00:27:35,069 ese fuera es el resto del mundo 575 00:27:35,069 --> 00:27:37,089 una base de datos, un fichero 576 00:27:37,089 --> 00:27:38,970 una conexión de red 577 00:27:38,970 --> 00:27:40,269 pueden ser mil cosas 578 00:27:40,269 --> 00:27:43,049 o puede ser un tío que está aquí delante escribiéndoselo 579 00:27:43,049 --> 00:27:45,150 que es lo que vamos 580 00:27:45,150 --> 00:27:46,009 nosotros a hacer 581 00:27:46,009 --> 00:27:47,730 a lo largo de todo el curso 582 00:27:47,730 --> 00:27:50,609 programas en los que 583 00:27:50,609 --> 00:27:53,309 nosotros le metemos los datos en el momento de la ejecución 584 00:27:53,309 --> 00:27:55,269 bien por aquí o bien pinchando en una ventana 585 00:27:55,269 --> 00:27:57,269 me da lo mismo, se los estoy metiendo en el momento de la ejecución 586 00:27:57,269 --> 00:27:58,190 ¿vale? 587 00:27:58,549 --> 00:28:00,309 para que los recojan de otros sitios 588 00:28:00,309 --> 00:28:03,190 está el módulo de segundo 589 00:28:03,190 --> 00:28:04,769 de acceso a datos porque no es trivial 590 00:28:04,769 --> 00:28:06,150 el volcado de datos 591 00:28:06,150 --> 00:28:08,230 de una fuente externa no es trivial 592 00:28:08,230 --> 00:28:10,769 para que el programa luego 593 00:28:10,769 --> 00:28:13,130 no se convierta en una especie de bolsa 594 00:28:13,130 --> 00:28:14,809 en la que es intratable 595 00:28:14,809 --> 00:28:16,069 inmanejable esos datos 596 00:28:16,069 --> 00:28:18,009 hay que hacerlo de cierta manera 597 00:28:18,009 --> 00:28:19,589 y para eso hay todo un módulo en segundo 598 00:28:19,589 --> 00:28:21,569 nosotros ahora mismo 599 00:28:21,569 --> 00:28:24,430 los datos los vamos a pasar por un tío 600 00:28:24,430 --> 00:28:25,509 que está aquí sentado delante 601 00:28:25,509 --> 00:28:27,390 y los va tecleando 602 00:28:27,390 --> 00:28:30,230 bueno pues venga vamos a hacerlo en otra 603 00:28:30,230 --> 00:28:31,450 clase 604 00:28:31,450 --> 00:28:34,190 como ejemplo de 605 00:28:34,190 --> 00:28:35,609 lectura de datos 606 00:28:35,609 --> 00:28:38,930 y así ya aprendemos 607 00:28:38,930 --> 00:28:40,509 a leer datos y ya podemos hacer 608 00:28:40,509 --> 00:28:42,849 programas que hagan cosas 609 00:28:42,849 --> 00:28:45,029 simples porque no podemos 610 00:28:45,029 --> 00:28:46,789 hacer lecturas, o sea no podemos 611 00:28:46,789 --> 00:28:48,369 hacer decisiones, ni bucles, ni nada 612 00:28:48,369 --> 00:28:49,809 pero bueno 613 00:28:49,809 --> 00:28:53,009 venga, pues este 614 00:28:53,009 --> 00:28:54,710 es ejemplo 615 00:28:54,710 --> 00:28:57,109 lectura de datos 616 00:28:57,109 --> 00:29:01,349 le ponemos 617 00:29:01,349 --> 00:29:01,970 el main 618 00:29:01,970 --> 00:29:04,789 Y aquí tenemos la clase 619 00:29:04,789 --> 00:29:10,799 Vale, pues a ver 620 00:29:10,799 --> 00:29:11,839 Aquí 621 00:29:11,839 --> 00:29:15,099 Esto ya lo aclarasteis, ¿no? 622 00:29:15,140 --> 00:29:15,700 Con fold 623 00:29:15,700 --> 00:29:19,460 Vale, pues aquí viene uno de los primeros actos de fe 624 00:29:19,460 --> 00:29:23,500 Ya habéis hecho un acto de fe 625 00:29:23,500 --> 00:29:25,299 Cuando yo os he dicho 626 00:29:25,299 --> 00:29:26,500 Este class 627 00:29:26,500 --> 00:29:29,519 Os tiene que 628 00:29:29,519 --> 00:29:31,519 Entrar doblado 629 00:29:31,519 --> 00:29:32,759 Y esto también 630 00:29:32,759 --> 00:29:34,640 Ahí habéis hecho un primer acto de fe 631 00:29:34,640 --> 00:29:37,019 en el que yo os he dicho, eso lo tenéis que poner calcado 632 00:29:37,019 --> 00:29:39,119 para empezar a hacer nuestros programas 633 00:29:39,119 --> 00:29:40,920 ya en su momento 634 00:29:40,920 --> 00:29:43,579 perdón 635 00:29:43,579 --> 00:29:49,000 bueno ya, o sea, se ponga eso o lo pongas tú 636 00:29:49,000 --> 00:29:51,460 da igual, lo que quiero decir es que 637 00:29:51,460 --> 00:29:53,380 lo estamos poniendo 638 00:29:53,380 --> 00:29:55,119 sin saber por qué lo estamos poniendo 639 00:29:55,119 --> 00:29:57,440 por eso me refiero que es un acto de fe que tenéis que hacer 640 00:29:57,440 --> 00:29:59,339 ahora, porque yo no puedo explicar ahora 641 00:29:59,339 --> 00:30:01,160 por qué se pone esto 642 00:30:01,160 --> 00:30:03,400 ¿vale? porque eso entra 643 00:30:03,400 --> 00:30:04,579 dentro de la operación orientada a objetos 644 00:30:04,579 --> 00:30:07,819 entonces, ahora mismo os estoy diciendo 645 00:30:07,819 --> 00:30:09,599 para que un programa en Java 646 00:30:09,599 --> 00:30:11,160 yo lo pueda compilar y ejecutar 647 00:30:11,160 --> 00:30:12,839 tiene que tener esto 648 00:30:12,839 --> 00:30:15,119 y a partir de aquí ya empezamos a programar 649 00:30:15,119 --> 00:30:16,619 pero esto lo tiene que tener 650 00:30:16,619 --> 00:30:19,819 es el primer acto de fe que estáis haciendo 651 00:30:19,819 --> 00:30:22,200 bueno, pues para leer de teclado 652 00:30:22,200 --> 00:30:23,779 ahora tenéis que hacer un segundo acto de fe 653 00:30:23,779 --> 00:30:25,220 y es 654 00:30:25,220 --> 00:30:27,119 escribir lo que yo os digo 655 00:30:27,119 --> 00:30:28,400 de lo que más o menos 656 00:30:28,400 --> 00:30:31,599 hombre, un poco os diré por donde van los tiros 657 00:30:31,599 --> 00:30:33,240 pero no podemos tampoco entenderlo en profundidad 658 00:30:33,240 --> 00:30:35,740 vale, pero algo acto de fe 659 00:30:35,740 --> 00:30:37,099 tenéis que hacer, bueno, vale 660 00:30:37,099 --> 00:30:39,339 pues queremos leer por teclado datos 661 00:30:39,339 --> 00:30:41,619 para poder hacer nuestros primeros programas 662 00:30:41,619 --> 00:30:43,920 vale, pues para leer 663 00:30:43,920 --> 00:30:44,940 por teclado datos 664 00:30:44,940 --> 00:30:46,740 tiene que aparecer aquí 665 00:30:46,740 --> 00:30:49,119 alguien que sea capaz de hacerlo 666 00:30:49,119 --> 00:30:51,779 hasta ahora que somos capaces 667 00:30:51,779 --> 00:30:53,000 de hacer aparecer nosotros 668 00:30:53,000 --> 00:30:55,539 variables, el único que somos capaces 669 00:30:55,539 --> 00:30:56,720 de hacer aparecer variables 670 00:30:56,720 --> 00:30:59,079 numéricas, char, boolean 671 00:30:59,079 --> 00:31:00,440 es lo que somos capaces de aparecer 672 00:31:00,440 --> 00:31:02,680 pero esas variables no nos valen 673 00:31:02,680 --> 00:31:06,400 Vale, pero es que hay otro tipo de variables 674 00:31:06,400 --> 00:31:08,900 Que no son las primitivas 675 00:31:08,900 --> 00:31:10,700 Sino que son las variables objeto 676 00:31:10,700 --> 00:31:13,440 Que esas sí que saben hacer muchas cosas 677 00:31:13,440 --> 00:31:15,359 Las variables primitivas 678 00:31:15,359 --> 00:31:16,420 No saben hacer nada 679 00:31:16,420 --> 00:31:17,200 Solo saben 680 00:31:17,200 --> 00:31:19,779 Aparecer por las buenas 681 00:31:19,779 --> 00:31:21,299 Cuando yo la declaro en memoria RAM 682 00:31:21,299 --> 00:31:22,539 Y guardar un valor dentro 683 00:31:22,539 --> 00:31:24,900 No saben más que eso 684 00:31:24,900 --> 00:31:26,980 Las variables primitivas 685 00:31:26,980 --> 00:31:28,160 No saben más que lo que hemos visto 686 00:31:28,160 --> 00:31:29,160 Guardar un valor dentro 687 00:31:29,160 --> 00:31:31,440 Por si yo luego tengo que acceder a él con el nombre 688 00:31:31,440 --> 00:31:34,920 pero hay otro tipo de variables que son las variables que llaman objeto 689 00:31:34,920 --> 00:31:38,000 son los dos tipos de variables que hay, primitivas y objeto 690 00:31:38,000 --> 00:31:40,460 pues otro tipo de variables que son las variables objeto 691 00:31:40,460 --> 00:31:43,000 que esas sí que saben hacer un montón de cosas 692 00:31:43,000 --> 00:31:46,799 y ya veremos en su momento por qué saben hacer, quién les ha dado ese poder 693 00:31:46,799 --> 00:31:50,240 qué somos nosotros, quiénes se lo damos, cómo lo programamos para que lo tengan, etc. 694 00:31:51,460 --> 00:31:54,039 bueno, pues entonces, para poder leer del teclado 695 00:31:54,039 --> 00:31:57,740 como leer del teclado es algo que hay que hacer muy costoso 696 00:31:57,740 --> 00:31:59,799 lo tiene que hacer una variable objeto 697 00:31:59,799 --> 00:32:01,720 que son las que saben hacer cosas 698 00:32:01,720 --> 00:32:04,279 ¿cómo hacemos aparecer una variable objeto? 699 00:32:04,859 --> 00:32:07,039 pues igual que hacemos aparecer una variable entera n 700 00:32:07,039 --> 00:32:08,980 que la hacemos aparecer, paf, así de la nada 701 00:32:08,980 --> 00:32:11,339 poniendo su nombre y el tipo de dato 702 00:32:11,339 --> 00:32:14,400 la variable objeto también la hacemos aparecer de la nada 703 00:32:14,400 --> 00:32:17,440 declarándola, poniendo el nombre que yo le quiero dar 704 00:32:17,440 --> 00:32:20,319 pues mi variable objeto que va a aparecer de la nada 705 00:32:20,319 --> 00:32:22,079 y que va a leer, ¿qué nombre le quiero dar? 706 00:32:22,079 --> 00:32:23,460 bueno, como va a servir para leer 707 00:32:23,460 --> 00:32:25,420 pues voy a llamar al lector de teclado 708 00:32:25,420 --> 00:32:28,180 a la ya le he llamado lector de teclado 709 00:32:28,180 --> 00:32:35,180 Pero claro, siempre que declaramos una variable, sea objeto o sea primitiva, siempre que le damos una variable hay que poner el tipo al que pertenece. 710 00:32:36,180 --> 00:32:37,200 Igual que aquí ponemos int. 711 00:32:37,880 --> 00:32:39,740 Bueno, pues primer acto de fe que yo os doy. 712 00:32:40,599 --> 00:32:46,779 El tipo de dato de las variables objeto que son capaces de leer del teclado es este. 713 00:32:49,299 --> 00:32:51,619 Hay más, no es el único, pero bueno, es el más cómodo. 714 00:32:52,500 --> 00:32:52,940 Es este. 715 00:32:55,079 --> 00:32:55,480 ¿Vale? 716 00:32:56,059 --> 00:32:56,720 Este es. 717 00:32:56,720 --> 00:32:58,839 ¿Y es este? Pues porque lo digo yo. 718 00:32:59,940 --> 00:33:01,420 Y porque no lo digo yo. 719 00:33:02,019 --> 00:33:05,740 Lo dice Oracle, que es el que ha hecho las clases que usamos. 720 00:33:06,779 --> 00:33:08,339 Y es esa, Scanner. 721 00:33:08,720 --> 00:33:10,160 Pues ya está, pues es Scanner. 722 00:33:11,599 --> 00:33:13,359 Vale, nos sigue apareciendo en rojo. 723 00:33:14,059 --> 00:33:16,500 Dice, uuuh, el compilador dice, Scanner, ¿de qué me hablas? 724 00:33:16,539 --> 00:33:17,259 No sé de qué me hablas. 725 00:33:18,039 --> 00:33:21,579 Claro, tercer acto de C, por el que ya vayábamos. 726 00:33:21,880 --> 00:33:23,680 Ahora al principio hay que hacer unos cuantos, tercer acto de C. 727 00:33:23,680 --> 00:33:29,160 Para usar variables que son de tipos objeto no primitivos 728 00:33:29,160 --> 00:33:33,279 Hay que o poner el nombre completito 729 00:33:33,279 --> 00:33:35,000 Que el nombre completito no es este 730 00:33:35,000 --> 00:33:37,759 Este yo lo he puesto así porque soy muy chula 731 00:33:37,759 --> 00:33:40,539 El nombre completo no es este, el nombre completo es este en realidad 732 00:33:40,539 --> 00:33:44,619 Este es, aquí ya sí que se ha callado 733 00:33:44,619 --> 00:33:48,720 O pongo el nombre completo del tipo de dato 734 00:33:48,720 --> 00:33:50,099 O hago una trampita 735 00:33:50,099 --> 00:33:53,240 vale, bueno pues el nombre completo 736 00:33:53,240 --> 00:33:56,180 de ese tipo de dato 737 00:33:56,180 --> 00:33:57,319 que me vale a mi para 738 00:33:57,319 --> 00:33:59,640 como variable para leer 739 00:33:59,640 --> 00:34:01,019 el nombre es este 740 00:34:01,019 --> 00:34:03,579 y ya entenderemos también en su momento 741 00:34:03,579 --> 00:34:04,940 porque ese nombre va con puntos 742 00:34:04,940 --> 00:34:06,579 ahora podemos entenderlo, es ese 743 00:34:06,579 --> 00:34:07,740 el tipo de dato 744 00:34:07,740 --> 00:34:12,579 vale, y como veis se calla 745 00:34:12,579 --> 00:34:14,699 vale, le gusta, igual que le ha gustado el int 746 00:34:14,699 --> 00:34:16,500 igual que le ha gustado el int, pues este le gusta 747 00:34:16,500 --> 00:34:18,739 porque este existe, le gusta 748 00:34:18,739 --> 00:34:20,139 es feo pero le gusta 749 00:34:20,139 --> 00:34:22,699 entonces como es tan feo 750 00:34:22,699 --> 00:34:24,559 como es tan feo 751 00:34:24,559 --> 00:34:25,900 java nos da un truquito 752 00:34:25,900 --> 00:34:28,539 para ignorar este y poner escáner 753 00:34:28,539 --> 00:34:30,340 solo, ya es el programa que da como más cortito 754 00:34:30,340 --> 00:34:32,320 nos da un truquito, que de nuevo 755 00:34:32,320 --> 00:34:33,980 este truquito, pues 756 00:34:33,980 --> 00:34:36,199 no lo tenemos que tragar 757 00:34:36,199 --> 00:34:38,539 ¿qué es? pongo el prefijo 758 00:34:38,539 --> 00:34:39,980 delante, que es el que es muy feo 759 00:34:39,980 --> 00:34:41,920 pongo el prefijo delante 760 00:34:41,920 --> 00:34:44,440 vale, import java útil 761 00:34:44,440 --> 00:34:46,340 punto, o sea pongo el prefijo 762 00:34:46,340 --> 00:34:48,420 pongo, el prefijo no 763 00:34:48,420 --> 00:34:50,440 pongo el nombre enterito delante 764 00:34:50,440 --> 00:34:51,619 el nombre 765 00:34:51,619 --> 00:34:54,780 y ahora ya aquí puedo poner escáner sin más 766 00:34:54,780 --> 00:34:56,539 y ya se calla 767 00:34:56,539 --> 00:34:57,280 ¿vale? 768 00:34:57,880 --> 00:34:59,940 entonces este le pongo solo una vez al principio 769 00:34:59,940 --> 00:35:02,139 y ahora ya yo aquí en mi aplicación 770 00:35:02,139 --> 00:35:04,139 es que esta aplicación es corta porque solo tiene esto 771 00:35:04,139 --> 00:35:05,500 podría tener muchas cosas 772 00:35:05,500 --> 00:35:07,639 yo podría necesitar muchos escáneres en muchos sitios 773 00:35:07,639 --> 00:35:10,059 entonces solamente voy a tener que poner a partir de ahí 774 00:35:10,059 --> 00:35:10,980 escáner 775 00:35:10,980 --> 00:35:14,360 si yo he puesto al principio del fichero 776 00:35:14,360 --> 00:35:14,940 esta línea 777 00:35:14,940 --> 00:35:17,719 o sea pongo al principio esa línea 778 00:35:17,719 --> 00:35:19,780 import java útil scanner al principio 779 00:35:19,780 --> 00:35:21,679 y luego ya a partir de ahí 780 00:35:21,679 --> 00:35:23,860 cada vez que quiera declarar una variable 781 00:35:23,860 --> 00:35:26,099 imagínate que quiero, no va a ser el caso aquí 782 00:35:26,099 --> 00:35:28,239 pero que quiero declarar dos lectores 783 00:35:28,239 --> 00:35:29,380 de teclado distintos 784 00:35:29,380 --> 00:35:33,619 vale, pues yo con poner 785 00:35:33,619 --> 00:35:35,159 scanner cada vez tengo suficiente 786 00:35:35,159 --> 00:35:37,079 con poner scanner cada vez tengo suficiente 787 00:35:37,079 --> 00:35:43,750 ¿tenéis un package? 788 00:35:44,409 --> 00:35:46,570 el package tiene que ir después del package 789 00:35:46,570 --> 00:35:50,409 yo es que como no he metido package porque yo no 790 00:35:50,409 --> 00:35:50,630 ¿eh? 791 00:35:50,630 --> 00:35:55,090 O sea, el package es lo que va al principio 792 00:35:55,090 --> 00:35:55,949 De todo siempre 793 00:35:55,949 --> 00:35:57,309 Si es que lo habéis puesto 794 00:35:57,309 --> 00:36:00,769 Porque yo no he creado paquetes porque yo no os he explicado 795 00:36:00,769 --> 00:36:02,530 Todavía como funcionan, entonces yo no los he creado 796 00:36:02,530 --> 00:36:04,070 Yo estoy trabajando el paquete por defecto 797 00:36:04,070 --> 00:36:07,010 Claro, entonces tú no pones package 798 00:36:07,010 --> 00:36:07,690 Lo pones como yo 799 00:36:07,690 --> 00:36:13,269 Pero no se puede poner package 800 00:36:13,269 --> 00:36:14,809 Si tú estás en el default package aquí 801 00:36:14,809 --> 00:36:17,250 Ahora lo miramos 802 00:36:17,250 --> 00:36:18,570 Vale, ahora lo miramos 803 00:36:18,570 --> 00:36:19,750 Un momentito, vamos a 804 00:36:19,750 --> 00:36:23,250 Si alguien tiene puesto package 805 00:36:23,250 --> 00:36:23,989 porque tiene paquete 806 00:36:23,989 --> 00:36:24,670 que yo 807 00:36:24,670 --> 00:36:26,969 eso porque os dé la gana a vosotros 808 00:36:26,969 --> 00:36:28,469 yo no explico paquetes 809 00:36:28,469 --> 00:36:28,750 con lo cual 810 00:36:28,750 --> 00:36:29,469 si trabajan directamente 811 00:36:29,469 --> 00:36:31,030 con el paquete por defecto 812 00:36:31,030 --> 00:36:31,969 pues si alguien tuviera 813 00:36:31,969 --> 00:36:32,550 un package ahí 814 00:36:32,550 --> 00:36:33,349 por vete a saber que 815 00:36:33,349 --> 00:36:33,710 o porque 816 00:36:33,710 --> 00:36:35,670 va por delante 817 00:36:35,670 --> 00:36:36,829 pues el import va después 818 00:36:36,829 --> 00:36:37,230 ¿vale? 819 00:36:37,250 --> 00:36:37,909 pero en nuestro caso 820 00:36:37,909 --> 00:36:38,289 yo eso 821 00:36:38,289 --> 00:36:39,710 para mí ni existe el package 822 00:36:39,710 --> 00:36:40,809 con lo cual 823 00:36:40,809 --> 00:36:41,710 el import es la primera línea 824 00:36:41,710 --> 00:36:42,570 entonces es un truco 825 00:36:42,570 --> 00:36:44,369 tú lo pones al principio de todo 826 00:36:44,369 --> 00:36:45,889 y cada vez que quieras 827 00:36:45,889 --> 00:36:46,829 hacer referencia ahora 828 00:36:46,829 --> 00:36:47,730 a este tipo de dato 829 00:36:47,730 --> 00:36:49,309 ya no hace falta 830 00:36:49,309 --> 00:36:49,849 que pongas 831 00:36:49,849 --> 00:36:50,750 java.util 832 00:36:50,750 --> 00:36:51,429 todo el rato 833 00:36:51,429 --> 00:36:52,349 con poder escáner 834 00:36:52,349 --> 00:36:52,630 vale 835 00:36:52,630 --> 00:36:54,489 entonces esto ya va 836 00:36:54,489 --> 00:36:57,170 no solo a gusto del programador 837 00:36:57,170 --> 00:36:58,670 sino sobre todo 838 00:36:58,670 --> 00:37:02,170 en función del código que yo tenga 839 00:37:02,170 --> 00:37:04,429 pues si es más claro arrastrar el prefijo 840 00:37:04,429 --> 00:37:05,289 si no lo es 841 00:37:05,289 --> 00:37:07,809 porque hay veces cuando veamos paquetes 842 00:37:07,809 --> 00:37:09,429 que si yo llevo el import aquí 843 00:37:09,429 --> 00:37:11,889 quito información aquí y el que lo lee 844 00:37:11,889 --> 00:37:13,150 no lo ve muy claro 845 00:37:13,150 --> 00:37:15,550 entonces bueno, esto va a gusto 846 00:37:15,550 --> 00:37:17,449 de la situación concreta en la que esté 847 00:37:17,449 --> 00:37:20,309 con el escáner, que lo estamos usando todo el rato 848 00:37:20,309 --> 00:37:22,329 no vamos a tener el jabot y el escáner aquí todo el rato 849 00:37:22,329 --> 00:37:26,590 que es un coñazo, lo que vais a hacer con el escáner a efectos prácticos 850 00:37:26,590 --> 00:37:30,530 vosotros va a ser, escribir escáner, cuando lo vayáis 851 00:37:30,530 --> 00:37:34,469 a usar, escribir escáner, os va a decir 852 00:37:34,469 --> 00:37:38,329 no conozco escáner, porque es lo que os dice, vale 853 00:37:38,329 --> 00:37:42,130 bueno, os dirá eso, no conozco escáner porque no habéis puesto el import 854 00:37:42,130 --> 00:37:46,429 pues como el entorno de desarrollo nos hace vagos, pues en lugar 855 00:37:46,429 --> 00:37:50,369 de ir arriba a poner import, pues diremos, venga, y que me propones 856 00:37:50,369 --> 00:37:53,070 Pues él te dice, te propongo hacerte un import 857 00:37:53,070 --> 00:37:55,409 Uy, pues vale, justo lo que quería 858 00:37:55,409 --> 00:37:56,570 Le dais a doble clic 859 00:37:56,570 --> 00:37:58,389 Y te lo escribe solito 860 00:37:58,389 --> 00:38:00,409 ¿Vale? 861 00:38:01,570 --> 00:38:04,269 Entonces, bueno, este va a ser vuestro proceder 862 00:38:04,269 --> 00:38:06,130 Pero claro, es un proceder 863 00:38:06,130 --> 00:38:07,590 No porque me lo mande el entorno de desarrollo 864 00:38:07,590 --> 00:38:09,670 Sino porque sabéis que es lo que tenéis que hacer 865 00:38:09,670 --> 00:38:12,050 Que no entendemos ahora 866 00:38:12,050 --> 00:38:13,010 Por qué el import 867 00:38:13,010 --> 00:38:14,550 No lo entendemos porque no tenemos ni idea de paquetes 868 00:38:14,550 --> 00:38:15,610 Eso tiene que ver con paquetes 869 00:38:15,610 --> 00:38:18,469 Pero es que, por eso digo que este es un acto de fe que tenéis que hacer 870 00:38:18,469 --> 00:38:19,849 Si queréis leer del teclado desde ya 871 00:38:19,849 --> 00:38:21,230 vale 872 00:38:21,230 --> 00:38:25,070 vale, vamos a