1 00:00:04,209 --> 00:00:11,150 Vale, pues entonces vamos a seguir el paradigma de programación estructurada, que es la que se usa siempre en las aplicaciones comerciales. 2 00:00:12,109 --> 00:00:22,210 Lo que estaba diciendo, cuando se empezó la programación, empezaron unos primeros lenguajes, el BASIC famoso, incluso el COBOL, algunos lenguajes que no eran estructurados. 3 00:00:22,309 --> 00:00:24,149 ¿Qué significaba que no fueran estructurados? 4 00:00:25,170 --> 00:00:32,590 Pues significaba que daban lugar a códigos un poquito desorganizados, que usaban muchos tipos de sentencias, aparte de estas tres que os he dicho. 5 00:00:32,590 --> 00:00:34,469 leer y escribir datos 6 00:00:34,469 --> 00:00:36,210 decisiones y bucles 7 00:00:36,210 --> 00:00:38,149 usaban sentencias del tipo 8 00:00:38,149 --> 00:00:39,590 ¡sáltate a la línea tal! 9 00:00:40,250 --> 00:00:42,310 pues un programa que ¡sáltate a la línea tal! 10 00:00:42,710 --> 00:00:44,170 es complicadísimo de seguir 11 00:00:44,170 --> 00:00:46,030 se pierde un poquito la coherencia 12 00:00:46,030 --> 00:00:48,149 entonces, como esos programas 13 00:00:48,149 --> 00:00:49,869 eran tan complicados de mantener y de todo 14 00:00:49,869 --> 00:00:52,310 pues allá por hace muchísimo tiempo 15 00:00:52,310 --> 00:00:54,490 que lo tenéis en los apuntes 16 00:00:54,490 --> 00:00:56,530 de resumencillo que tenéis ahí 17 00:00:56,530 --> 00:00:57,969 ¿vale? pues dijo 18 00:00:57,969 --> 00:01:00,210 vamos a hacer programación estructurada 19 00:01:00,210 --> 00:01:02,329 que es lenguajes que solamente 20 00:01:02,329 --> 00:01:04,670 usen esto que digo de entrada 21 00:01:04,670 --> 00:01:06,810 a salida de datos, decisiones 22 00:01:06,810 --> 00:01:08,510 y bucles, ya está, porque con eso 23 00:01:08,510 --> 00:01:10,629 con eso se puede hacer cualquier 24 00:01:10,629 --> 00:01:12,269 se puede resolver cualquier problema 25 00:01:12,269 --> 00:01:14,129 que le puedas encargar a una CPU 26 00:01:14,129 --> 00:01:16,849 eso se demostró en el teorema de la estructura 27 00:01:16,849 --> 00:01:18,709 y en todo eso, con lo cual 28 00:01:18,709 --> 00:01:20,790 si nos restringimos esos tres tipos 29 00:01:20,790 --> 00:01:22,629 de sentencias, pues ya vamos a 30 00:01:22,629 --> 00:01:24,390 entendernos todos mejor, incluso 31 00:01:24,390 --> 00:01:26,870 trabajando en diferentes tipos de lenguaje 32 00:01:26,870 --> 00:01:28,590 eso es la programación 33 00:01:28,590 --> 00:01:30,689 estructurada, vale, luego ya 34 00:01:30,689 --> 00:01:32,689 dije ayer, que los programas 35 00:01:32,689 --> 00:01:34,709 estructurados pueden ser larguísimos 36 00:01:34,709 --> 00:01:36,109 pues vamos a organizarlos 37 00:01:36,109 --> 00:01:38,510 en módulos separados, de ahí ya vino 38 00:01:38,510 --> 00:01:40,569 la programación orientada a objetos, que lo organizaba 39 00:01:40,569 --> 00:01:42,670 en clases, ¿vale? Eso ya lo veremos en el 40 00:01:42,670 --> 00:01:44,549 tema de programación orientada a objetos, ya nos vamos a quedar 41 00:01:44,549 --> 00:01:46,310 en estructurada, que es la base de todo. 42 00:01:47,069 --> 00:01:48,709 Bueno, ¿en qué lenguaje lo vamos 43 00:01:48,709 --> 00:01:50,569 a ver? Ya sabemos que en Java, entonces 44 00:01:50,569 --> 00:01:52,609 vamos a empezar ahora mismo 45 00:01:52,609 --> 00:01:54,609 por lo básico de Java, 46 00:01:54,849 --> 00:01:56,709 que es vamos a empezar a declarar 47 00:01:57,469 --> 00:01:58,469 variables 48 00:01:58,469 --> 00:02:00,069 para que vayan en ella 49 00:02:00,069 --> 00:02:02,189 mis datos y ver cómo trabajar en ellas 50 00:02:02,189 --> 00:02:03,010 y ya está 51 00:02:03,010 --> 00:02:06,849 entonces, aquí tenéis un resumencito 52 00:02:06,849 --> 00:02:07,709 muy resumido 53 00:02:07,709 --> 00:02:10,610 de toda esta primera parte 54 00:02:10,610 --> 00:02:12,189 que no es nada 55 00:02:12,189 --> 00:02:14,629 y luego ya 56 00:02:14,629 --> 00:02:16,449 lo siguiente ya pasaremos a la sentencia 57 00:02:16,449 --> 00:02:18,590 de decisión, que a vosotros ya la tenéis oculta 58 00:02:18,590 --> 00:02:20,430 y luego ya la sentencia 59 00:02:20,430 --> 00:02:21,889 repetitiva, bucles, y ya está 60 00:02:21,889 --> 00:02:23,710 la planeación estructurada ya habrá acabado 61 00:02:23,710 --> 00:02:26,310 ¿vale? bueno, pues entonces 62 00:02:26,310 --> 00:02:29,469 estos resúmenes que yo pongo aquí 63 00:02:29,469 --> 00:02:31,110 esto no es 64 00:02:31,110 --> 00:02:33,469 material para estudiar para el examen 65 00:02:33,469 --> 00:02:35,389 esto es un resumen para que lo tengáis ahí 66 00:02:35,389 --> 00:02:37,530 centralizado, pues a lo mejor para situaros 67 00:02:37,530 --> 00:02:39,270 pero no, el examen 68 00:02:39,270 --> 00:02:41,409 ¿sobre qué va? pues sobre lo que 69 00:02:41,409 --> 00:02:43,270 estamos viendo y haciendo en clase, de lo cual 70 00:02:43,270 --> 00:02:45,009 esto es un resumencillo que yo hago 71 00:02:45,009 --> 00:02:46,729 para que uno no pierda mucho el hilo 72 00:02:46,729 --> 00:02:49,270 pero no es que uno llegue al examen y tenga que estudiar esto 73 00:02:49,270 --> 00:02:50,590 no, ¿vale? 74 00:02:51,009 --> 00:02:51,370 dime 75 00:02:51,370 --> 00:02:54,469 vale, pues te puedes 76 00:02:54,469 --> 00:02:56,469 automatricular con 77 00:02:56,469 --> 00:02:57,330 PROG 78 00:02:57,330 --> 00:03:00,270 2024, o PROG 24 79 00:03:00,270 --> 00:03:01,050 para los secos 80 00:03:01,050 --> 00:03:06,289 podrás, luego en el cambio te lo digo 81 00:03:06,289 --> 00:03:08,469 como ahora no vais a usar esto 82 00:03:08,469 --> 00:03:10,229 ya luego en el cambio 83 00:03:10,229 --> 00:03:11,669 lo miramos y 84 00:03:11,669 --> 00:03:14,389 y descargáis esto 85 00:03:14,389 --> 00:03:16,250 pero ya digo, no os confundáis 86 00:03:16,250 --> 00:03:18,110 las cosas que yo pongo aquí 87 00:03:18,110 --> 00:03:20,789 no es material para estudiarse 88 00:03:20,789 --> 00:03:22,189 lo que tenéis que trabajar 89 00:03:22,189 --> 00:03:23,629 y estudiar es lo que hagamos aquí 90 00:03:23,629 --> 00:03:26,250 estos son resúmenes, bueno pues 91 00:03:26,250 --> 00:03:27,870 venga, ahora ya sí que empezamos a ver 92 00:03:27,870 --> 00:03:29,509 tipos de datos 93 00:03:29,509 --> 00:03:32,550 entrada y salida por consola, esta parte de aquí 94 00:03:32,550 --> 00:03:34,389 bueno, pues ahora ya 95 00:03:34,389 --> 00:03:36,210 sí que necesitamos pizarros rápido 96 00:03:36,210 --> 00:03:38,210 antes de empezar a hacer ya un proyecto de ciencia 97 00:03:38,210 --> 00:03:42,060 y ahora ya con la pizarra 98 00:03:42,060 --> 00:03:43,819 sí que vamos a encender la luz, pero creo que la luz es 99 00:03:43,819 --> 00:03:44,159 atrás 100 00:03:44,159 --> 00:03:46,300 ¿no? 101 00:03:48,000 --> 00:03:49,240 no se enciende atrás 102 00:03:49,240 --> 00:03:53,900 sí, sí, sí, porque es que cuando 103 00:03:53,900 --> 00:03:54,620 cambiaron la 104 00:03:54,620 --> 00:04:03,530 vale 105 00:04:03,530 --> 00:04:07,139 vale, pues venga 106 00:04:07,139 --> 00:04:14,379 bueno, pues los que ya sabéis 107 00:04:14,379 --> 00:04:16,100 más de programación 108 00:04:16,100 --> 00:04:17,500 o estáis repitiendo 109 00:04:17,500 --> 00:04:19,660 pues bueno, todo esto sonará 110 00:04:19,660 --> 00:04:21,639 pues fenomenal, que os suene y que lo sepáis 111 00:04:21,639 --> 00:04:23,939 y los que no tengáis ni idea de programar 112 00:04:23,939 --> 00:04:25,660 ahora empieza el punto 113 00:04:25,660 --> 00:04:28,240 en el cual no perdáis ni un segundo 114 00:04:28,240 --> 00:04:29,720 ni un detalle, ni un nada 115 00:04:29,720 --> 00:04:32,040 y luego todos lo miráis, os lo estudiáis 116 00:04:32,040 --> 00:04:34,139 lo repasáis en casa y lo trabajáis en los ejercicios 117 00:04:34,139 --> 00:04:36,100 que hayamos hecho aquí y en los que planteemos 118 00:04:36,100 --> 00:04:38,980 Bueno, pues vamos a ver 119 00:04:38,980 --> 00:04:40,459 ¿Alguien ha dicho ok? 120 00:04:41,339 --> 00:04:42,420 No, no, no he dicho ok 121 00:04:42,420 --> 00:04:43,500 ¿Has dicho ok? 122 00:04:44,079 --> 00:04:45,759 Pues eso, ¿alguien ha dicho ok? 123 00:04:45,860 --> 00:04:46,959 Y has dicho no, he dicho ok 124 00:04:46,959 --> 00:04:47,839 Bueno, da igual 125 00:04:47,839 --> 00:04:51,399 Vale, no, pero lo digo porque está bien que me respondáis 126 00:04:51,399 --> 00:04:53,639 Que a veces parece que estoy con un montón de zombies 127 00:04:53,639 --> 00:04:54,360 Yo asiento 128 00:04:54,360 --> 00:04:56,899 Ah, eso se agradece muchísimo 129 00:04:56,899 --> 00:04:58,800 Se agradece mucho 130 00:04:58,800 --> 00:05:01,420 Que podéis no escuchar ni hacerme ni caso 131 00:05:01,420 --> 00:05:02,899 Pero que parezca que sí 132 00:05:02,899 --> 00:05:05,500 Porque de verdad que es que si no uno se va muy deprimido a casa 133 00:05:05,500 --> 00:05:10,779 Bueno, pues ¿qué es un programa? 134 00:05:13,779 --> 00:05:15,620 Un programa ya sabemos que es 135 00:05:15,620 --> 00:05:19,399 Una secuencia de sentencias que hace cosas 136 00:05:19,399 --> 00:05:21,660 Sí, claro, pero ¿qué cosas hace? 137 00:05:22,439 --> 00:05:25,720 Pues en realidad lo único que hace el programa 138 00:05:25,720 --> 00:05:30,180 Lo único que nosotros le vamos a pedir físicamente que haga 139 00:05:30,180 --> 00:05:33,620 En realidad es que trabaje con datos 140 00:05:33,620 --> 00:05:37,079 Operando con ellos, sumándolos, restándolos 141 00:05:37,079 --> 00:05:42,920 haciendo las diferentes operaciones que los operadores nos permiten, que ya veremos, haciendo cosas con datos, nada más. 142 00:05:43,519 --> 00:05:52,639 Y componiendo todas esas cosas, muchas de ellas, suma, resta, patín, componiendo todas ellas ya quedará un programa que hace algo más complejo. 143 00:05:53,500 --> 00:05:59,959 Pero como unidad básica atómica de operación, lo único que un programa hace es hacer operaciones con datos, nada más. 144 00:05:59,959 --> 00:06:19,699 ¿Vale? Nada más. Vale. Luego la pregunta es, si un programa opera con datos, que es lo único que hace, ¿esos datos dónde los tiene? ¿Dónde puede el programa ir a ellos para leerlos, hacer la operación, poner el resultado en otro sitio, etcétera? 145 00:06:19,699 --> 00:06:43,439 Pues los datos están y siempre están ahí y esto no tiene vuelta de hoja. Todos los datos con los que trabaja un programa están en una cosa que se llama variables. Ahí están todos los datos con los que un programa trabaja y no hay alternativa. 146 00:06:43,439 --> 00:06:46,079 todo aquello con lo que un programa 147 00:06:46,079 --> 00:06:48,079 tenga que operar, tiene que estar 148 00:06:48,079 --> 00:06:49,800 en una cosa que se llama variable 149 00:06:49,800 --> 00:06:54,079 vale, pues que es 150 00:06:54,079 --> 00:06:56,079 una variable, y ahora entenderemos un poquito más 151 00:06:56,079 --> 00:06:58,040 porque se ha decidido llamar variable, no se ha decidido llamar 152 00:06:58,040 --> 00:06:59,839 cajita, no se podría haber llamado cajita 153 00:06:59,839 --> 00:07:02,019 pues que es una variable, pues una variable 154 00:07:02,019 --> 00:07:02,699 es una cajita 155 00:07:02,699 --> 00:07:05,199 una cajita que está en donde? 156 00:07:05,720 --> 00:07:07,019 en la memoria RAM 157 00:07:07,019 --> 00:07:09,839 la memoria RAM de un ordenador 158 00:07:09,839 --> 00:07:11,540 ya sabéis que es 159 00:07:11,540 --> 00:07:12,899 una memoria 160 00:07:12,899 --> 00:07:16,480 que está funcionando 161 00:07:16,480 --> 00:07:18,339 no está limpia a cero 162 00:07:18,339 --> 00:07:19,139 está funcionando 163 00:07:19,139 --> 00:07:20,959 cuando el ordenador está arrancado 164 00:07:20,959 --> 00:07:22,420 y guarda ceros y unos 165 00:07:22,420 --> 00:07:23,019 y ya está 166 00:07:23,019 --> 00:07:24,980 y esos ceros y unos tienen información 167 00:07:24,980 --> 00:07:25,920 eso es una RAM 168 00:07:25,920 --> 00:07:28,220 guarda información codificada en ceros y unos 169 00:07:28,220 --> 00:07:30,899 bueno, pues dentro de esa información 170 00:07:30,899 --> 00:07:32,779 en ceros y unos en la RAM 171 00:07:32,779 --> 00:07:35,120 nuestro programa 172 00:07:35,120 --> 00:07:38,180 puede reservarse unas cajitas 173 00:07:38,180 --> 00:07:39,819 puede reservarse unas cajitas 174 00:07:39,819 --> 00:07:41,500 para meter los datos 175 00:07:41,500 --> 00:07:42,540 ¿vale? 176 00:07:42,899 --> 00:08:02,519 Entonces, cada programa que se está ejecutando en el ordenador tiene reservado su propio conjunto de cajitas para trabajar. Que yo en mi ordenador tengo arrancados siete programas a la vez, que puedo tener arrancados siete programas a la vez, de hecho los tengo, el sistema operativo, el explorador, el OBS, tengo varios programas. 177 00:08:02,519 --> 00:08:08,120 Pues cada programa tiene su conjunto de cajitas en la RAM donde guarda sus datos, ¿vale? 178 00:08:08,879 --> 00:08:11,519 Claro, el programa cuando arranca tiene que decir, 179 00:08:11,620 --> 00:08:17,699 eh, oye, me quiero reservar estas cajitas para guardar este tipo de datos. 180 00:08:17,939 --> 00:08:19,420 Ahora veremos más qué significa tipo. 181 00:08:19,959 --> 00:08:22,399 Lo tiene que decir cuando arranca, oye, que yo quiero estas cajitas. 182 00:08:23,120 --> 00:08:23,920 Vale, muy bien. 183 00:08:24,560 --> 00:08:25,839 ¿Cómo lo dice el programa? 184 00:08:25,839 --> 00:08:29,860 Pues con sentencias, con sentencias del lenguaje. 185 00:08:29,860 --> 00:08:50,620 Entonces, las primeras sentencias de lenguaje Java que vamos a ver son las sentencias que le permiten al programa reservarse estas cajitas, ¿vale? Porque si no tiene cajitas reservadas, ¿qué puede hacer? Nada, puede mostrarnos un mensaje por pantalla como mucho, pero no puede hacer nada porque no tiene un sitio para sus datos. 186 00:08:50,620 --> 00:09:10,980 Entonces, ¿qué hace un programa sin datos? Pues nada. Vale, pues entonces, estas cajitas, cada una de ellas, es esto que estamos llamando variable. ¿Y por qué se llama variable? Pues hombre, el nombre le viene muy bien, porque el dato que va adentro va cambiando. 187 00:09:10,980 --> 00:09:13,360 según el programa va ejecutándose 188 00:09:13,360 --> 00:09:15,200 el dato va cambiando 189 00:09:15,200 --> 00:09:17,120 el ordenador, el proceso 190 00:09:17,120 --> 00:09:19,639 el programa, reserva su cajita 191 00:09:19,639 --> 00:09:21,419 y en un momento dado 192 00:09:21,419 --> 00:09:23,059 pues a lo mejor mete aquí 7 193 00:09:23,059 --> 00:09:25,139 vale, pero luego 194 00:09:25,139 --> 00:09:26,940 7 líneas más abajo 195 00:09:26,940 --> 00:09:29,460 este 7 lo borra y pone 8 196 00:09:29,460 --> 00:09:31,659 vale, y 7 líneas 197 00:09:31,659 --> 00:09:33,500 más abajo, aquí ha puesto 6 198 00:09:33,500 --> 00:09:35,580 y decide que en esta 199 00:09:35,580 --> 00:09:37,460 cajita pone la suma de esta otra 200 00:09:37,460 --> 00:09:39,259 y de esta otra, vale, pues entonces aquí 201 00:09:39,259 --> 00:09:41,360 pondrá 14, ahora como 202 00:09:41,360 --> 00:09:43,299 está cambiado y decide que pone 203 00:09:43,299 --> 00:09:44,700 5, por lo que sea 204 00:09:44,700 --> 00:09:46,879 pues ahora dice, ahora aquí 205 00:09:46,879 --> 00:09:49,159 pon la suma de estas dos, pues ahora está 206 00:09:49,159 --> 00:09:51,279 cambiando otra vez y pondrá 13 207 00:09:51,279 --> 00:09:53,039 entonces por eso se llama variable 208 00:09:53,039 --> 00:09:55,220 obviamente, porque el contenido 209 00:09:55,220 --> 00:09:57,120 de las cajitas 210 00:09:57,120 --> 00:09:58,960 cambia a lo largo de la ejecución del programa 211 00:09:58,960 --> 00:10:00,620 ¿vale? va cambiando 212 00:10:00,620 --> 00:10:03,279 bueno, pues entonces el concepto 213 00:10:03,279 --> 00:10:05,240 de variable es casi el más importante 214 00:10:05,240 --> 00:10:06,820 en programación y por supuesto 215 00:10:06,820 --> 00:10:09,080 el universal para cualquier lenguaje 216 00:10:09,080 --> 00:10:11,220 de programación, porque cualquier programa 217 00:10:11,220 --> 00:10:13,159 tiene que tener su espacio para sus datos 218 00:10:13,159 --> 00:10:14,860 ¿vale? y eso 219 00:10:14,860 --> 00:10:16,940 siempre va a estar en variable 220 00:10:16,940 --> 00:10:18,279 y solo en variables 221 00:10:18,279 --> 00:10:21,179 y además esas variables están en la 222 00:10:21,179 --> 00:10:22,019 memoria RAM 223 00:10:22,019 --> 00:10:25,200 ¿qué ocurre? cuando el programa termine 224 00:10:25,200 --> 00:10:26,159 ¡pum! apagado 225 00:10:26,159 --> 00:10:27,860 todo esto 226 00:10:27,860 --> 00:10:30,460 ha desaparecido, se ha ido a la basura 227 00:10:30,460 --> 00:10:32,860 porque cuando un programa termina 228 00:10:32,860 --> 00:10:35,240 su zona que se había 229 00:10:35,240 --> 00:10:36,639 reservado de cajitas 230 00:10:36,639 --> 00:10:37,639 desaparece 231 00:10:37,639 --> 00:10:40,279 desaparece y se queda 232 00:10:40,279 --> 00:10:42,360 ya a disposición para otro programa 233 00:10:42,360 --> 00:10:44,100 si la quiere usar, desaparece 234 00:10:44,100 --> 00:10:46,399 claro, pues una pena 235 00:10:46,399 --> 00:10:48,259 que desaparezca, pero claro para eso 236 00:10:48,259 --> 00:10:50,559 pues tenemos herramientas, más sentencias 237 00:10:50,559 --> 00:10:52,419 más cosas para poder 238 00:10:52,419 --> 00:10:54,419 llevarlo a una base 239 00:10:54,419 --> 00:10:56,480 de datos, a un disco duro, a donde sea 240 00:10:56,480 --> 00:10:58,299 y no perderlo, pero eso ya es otro problema 241 00:10:58,299 --> 00:11:00,240 que no nos interesa a nosotros 242 00:11:00,240 --> 00:11:02,139 ahora, ahora no nos interesa a nosotros 243 00:11:02,139 --> 00:11:03,899 ahora nuestros datos 244 00:11:03,899 --> 00:11:06,340 no los vamos a guardar 245 00:11:06,340 --> 00:11:09,600 antes de que el programa se apague en bases de datos ni nada, 246 00:11:10,179 --> 00:11:14,279 ni tampoco los vamos a rellenar, que podría hacerse, 247 00:11:14,639 --> 00:11:16,179 rellenar de una base de datos. 248 00:11:16,580 --> 00:11:17,639 No vamos a trabajar así. 249 00:11:18,480 --> 00:11:24,340 Entonces, diréis, ¿y de dónde sacamos información para rellenar estas cajitas 250 00:11:24,340 --> 00:11:27,919 y luego esos resultados que están en las cajitas, cómo nos enteramos? 251 00:11:28,700 --> 00:11:33,460 Pues ahora mismo vamos a trabajar solamente con consola, ¿vale? 252 00:11:33,460 --> 00:11:59,879 Es decir, nuestro programa arrancará, se reservará sus cajitas para datos. Esos datos, ¿cómo los iremos rellenando? Pues a través del teclado. Cuando digo consola, digo el teclado que nos va escribiendo sobre la marcha y el monitor que nos va viendo resultados. Esa es lo que llamamos consola, ¿no? Teclado y monitor, la consola. 253 00:11:59,879 --> 00:12:18,159 Y nosotros ahora mismo, durante todo el curso, trabajaremos rellenando estas variables por consola. El programa las puede ir cambiando, por supuesto, según va haciendo operaciones, puede copiar esta aquí, puede llevar esta aquí, lo que sea que nosotros queramos decirle que haga, lo que sea. 254 00:12:18,159 --> 00:12:22,299 cuando queramos ver el contenido de una de ellas 255 00:12:22,299 --> 00:12:24,919 pues haremos la sentencia correspondiente 256 00:12:24,919 --> 00:12:26,820 para que la muestre también por pantalla 257 00:12:26,820 --> 00:12:30,960 luego nuestra comunicación ahora en esta primera parte 258 00:12:30,960 --> 00:12:34,580 con la aplicación va a ser 259 00:12:34,580 --> 00:12:38,600 a través del teclado podremos rellenar estas variables 260 00:12:38,600 --> 00:12:41,940 que el programa se ha reservado antes 261 00:12:41,940 --> 00:12:43,940 y a través de la pantalla 262 00:12:43,940 --> 00:12:47,320 podremos ver el contenido de las variables 263 00:12:47,320 --> 00:12:48,200 que queramos 264 00:12:48,200 --> 00:12:51,799 que el ordenador 265 00:12:51,799 --> 00:12:53,179 que el programa ha puesto ahí 266 00:12:53,179 --> 00:12:53,860 el dato que sea 267 00:12:53,860 --> 00:12:57,240 luego a final de curso 268 00:12:57,240 --> 00:12:59,220 para no tener que estar 269 00:12:59,220 --> 00:13:01,100 introduciendo los datos 270 00:13:01,100 --> 00:13:03,320 siempre por teclado y mostrándolos 271 00:13:03,320 --> 00:13:05,000 siempre por la consola 272 00:13:05,000 --> 00:13:06,279 por la línea de comandos 273 00:13:06,279 --> 00:13:09,240 pues podremos hacer una interfaz gráfica 274 00:13:09,240 --> 00:13:10,700 pero es lo mismo, es en tiempo real 275 00:13:10,700 --> 00:13:13,480 una interfaz gráfica que también 276 00:13:13,480 --> 00:13:15,259 servirá para esto 277 00:13:15,259 --> 00:13:16,960 para rellenar los datos y también 278 00:13:16,960 --> 00:13:18,740 nos puede servir para mostrar un resultado 279 00:13:18,740 --> 00:13:20,700 ¿vale? 280 00:13:21,360 --> 00:13:22,720 pero eso es lo de menos ahora 281 00:13:22,720 --> 00:13:24,899 lo que a mi me interesa ahora es que entendáis 282 00:13:24,899 --> 00:13:26,899 lo que es una variable, entonces un 283 00:13:26,899 --> 00:13:28,419 programa cuando arranca 284 00:13:28,419 --> 00:13:31,440 repito, tiene que reservarse 285 00:13:31,440 --> 00:13:33,419 un conjunto de variables 286 00:13:33,419 --> 00:13:36,539 cajitas, espacios 287 00:13:36,539 --> 00:13:37,820 en memoria RAM 288 00:13:37,820 --> 00:13:41,000 para poder usarlas, para guardar sus datos 289 00:13:41,000 --> 00:13:42,919 y hacer ahí todas sus chuminadas 290 00:13:42,919 --> 00:13:44,259 ahí, pa pa pa, lo que sea 291 00:13:44,259 --> 00:13:47,240 Y claro, ahora ya lo que añado 292 00:13:47,240 --> 00:13:49,460 Hombre, de algún sitio tendrán que llegar esos datos 293 00:13:49,460 --> 00:13:52,019 Pues inicialmente 294 00:13:52,019 --> 00:13:54,000 Llegarán porque los meteremos por teclado 295 00:13:54,000 --> 00:13:55,820 Ya veremos la sentencia para meterlos 296 00:13:55,820 --> 00:13:57,940 Y como los veremos 297 00:13:57,940 --> 00:13:59,500 Los resultados, porque si un programa 298 00:13:59,500 --> 00:14:01,639 No nos ofrece resultados, pues los veremos 299 00:14:01,639 --> 00:14:03,899 Porque también usaremos la sentencia correspondiente 300 00:14:03,899 --> 00:14:06,259 Para mostrar por pantalla 301 00:14:06,259 --> 00:14:07,220 ¿Vale? 302 00:14:08,360 --> 00:14:09,720 Bueno, pues entonces 303 00:14:09,720 --> 00:14:11,759 Ahora ya, sabiendo que el programa 304 00:14:11,759 --> 00:14:13,340 Necesita esas variables 305 00:14:13,340 --> 00:14:17,620 Ahora ya, ¿cómo las reservamos? 306 00:14:18,059 --> 00:14:20,259 Ahora ya empezamos a escribir cosas 307 00:14:20,259 --> 00:14:22,059 Que ya sí que son código Java 308 00:14:22,059 --> 00:14:31,379 Bueno, pues reservarse las cajitas 309 00:14:31,379 --> 00:14:33,960 Es lo que se llama declarar variables 310 00:14:33,960 --> 00:14:40,049 Entonces, lo que vamos a ver ahora 311 00:14:40,049 --> 00:14:41,929 Es la declaración de variables 312 00:14:41,929 --> 00:14:46,899 ¿Vale? Esto es 313 00:14:46,899 --> 00:14:49,720 Entended que declarar una variable 314 00:14:49,720 --> 00:14:55,360 es reservar espacio en memoria para un dato. 315 00:15:03,139 --> 00:15:04,500 Eso es declarar una variante. 316 00:15:16,129 --> 00:15:21,929 Bueno, vamos a dejar aquí nuestro dibujo 317 00:15:21,929 --> 00:15:28,269 con tres cajitas, por ejemplo, 318 00:15:28,429 --> 00:15:30,110 que se quiere declarar una aplicación 319 00:15:30,110 --> 00:15:32,049 porque necesita tres números para trabajar 320 00:15:32,049 --> 00:15:33,370 o lo que sea, tres datos. 321 00:15:34,289 --> 00:15:37,629 Vale, pues entonces nuestra aplicación va a trabajar 322 00:15:37,629 --> 00:15:40,070 con un número 323 00:15:40,070 --> 00:15:42,789 que yo le tengo que meter 324 00:15:42,789 --> 00:15:45,809 un dato de entrada, un numerito, un dato de entrada 325 00:15:45,809 --> 00:15:47,990 y ese dato de entrada 326 00:15:47,990 --> 00:15:49,870 que yo le meto, tiene que ir entonces 327 00:15:49,870 --> 00:15:50,690 a una cajita 328 00:15:50,690 --> 00:15:53,190 para luego hacer cosas con él, lo que sea 329 00:15:53,190 --> 00:15:55,370 ya veremos que se puede hacer con él 330 00:15:55,370 --> 00:15:56,889 y mediante qué sentencias hacerlo 331 00:15:56,889 --> 00:15:59,509 pues entonces lo primero será declarar ese espacio 332 00:15:59,509 --> 00:16:01,509 para ese dato, primero se va a declarar 333 00:16:01,509 --> 00:16:03,690 vale, pues como lo declaramos en Java 334 00:16:03,690 --> 00:16:05,789 pues primero fundamental 335 00:16:05,789 --> 00:16:08,610 cada cajita, cada variable 336 00:16:08,610 --> 00:16:09,769 que yo quiera declarar 337 00:16:09,769 --> 00:16:12,590 tiene que tener un nombre que la identifique 338 00:16:12,590 --> 00:16:15,029 si no, ¿cómo sé que me refiero 339 00:16:15,029 --> 00:16:16,870 a esta, o a esta, o a esta? 340 00:16:17,809 --> 00:16:19,049 entonces, cada variable 341 00:16:19,049 --> 00:16:20,809 cada espacio en memoria 342 00:16:20,809 --> 00:16:22,730 tengo que darle yo 343 00:16:22,730 --> 00:16:23,990 como 344 00:16:23,990 --> 00:16:27,370 desarrollador del programa 345 00:16:27,370 --> 00:16:28,470 desarrollador del código 346 00:16:28,470 --> 00:16:29,850 tengo que darle yo un nombre 347 00:16:29,850 --> 00:16:32,669 ¿qué nombre le doy? el que me dé la gana 348 00:16:32,669 --> 00:16:34,769 claro 349 00:16:34,769 --> 00:16:35,769 cuál es la idea 350 00:16:35,769 --> 00:16:37,509 darle un nombre 351 00:16:37,509 --> 00:16:38,470 lo más 352 00:16:38,470 --> 00:16:39,070 que es 353 00:16:39,070 --> 00:16:40,429 y que lo más posible 354 00:16:40,429 --> 00:16:41,830 que va a contener 355 00:16:41,830 --> 00:16:42,990 para qué sirve esa caja 356 00:16:42,990 --> 00:16:44,309 eso es lo ideal 357 00:16:44,309 --> 00:16:44,769 porque claro 358 00:16:44,769 --> 00:16:45,250 yo puedo decir 359 00:16:45,250 --> 00:16:46,110 la voy a llamar X 360 00:16:46,110 --> 00:16:47,250 vale 361 00:16:47,250 --> 00:16:48,529 X es un nombre muy válido 362 00:16:48,529 --> 00:16:49,110 está muy bien 363 00:16:49,110 --> 00:16:50,309 pero jolines 364 00:16:50,309 --> 00:16:51,750 nuestros códigos 365 00:16:51,750 --> 00:16:52,889 los van a leer 366 00:16:52,889 --> 00:16:53,789 más desarrolladores 367 00:16:53,789 --> 00:16:54,830 más gente que esté trabajando 368 00:16:54,830 --> 00:16:55,509 con nosotros 369 00:16:55,509 --> 00:16:56,710 gente que a lo mejor 370 00:16:56,710 --> 00:16:57,850 le toca retocarlo 371 00:16:57,850 --> 00:16:58,529 porque nosotros 372 00:16:58,529 --> 00:16:59,289 no lo hemos hecho bien 373 00:16:59,289 --> 00:17:00,629 entonces si yo veo 374 00:17:00,629 --> 00:17:01,370 en mi código 375 00:17:01,370 --> 00:17:02,389 un montón de variables 376 00:17:02,389 --> 00:17:03,289 X, Y, Z 377 00:17:03,289 --> 00:17:11,109 Este que quería meter aquí, pero claro, si la llamo edad cliente, pues ese nombre está estupendo. 378 00:17:11,250 --> 00:17:14,230 Ah, vale, esta variable es para meter la edad del cliente. 379 00:17:14,309 --> 00:17:17,789 Ya está, rápidamente identifico la función de ese código. 380 00:17:18,789 --> 00:17:24,750 Entonces, tip 1, que los nombres de las variables sean lo más explicativo posible. 381 00:17:25,990 --> 00:17:26,210 ¿Vale? 382 00:17:26,329 --> 00:17:31,049 Entonces, para declarar una variable hay que elegir un nombre, lo primero. 383 00:17:31,049 --> 00:17:37,190 entonces, ideal, que sea explicativo 384 00:17:37,190 --> 00:17:41,880 me da igual 385 00:17:41,880 --> 00:17:43,000 que ocupa 386 00:17:43,000 --> 00:17:46,500 27 caracteres 387 00:17:46,500 --> 00:17:48,000 no pasa nada 388 00:17:48,000 --> 00:17:50,200 ¿qué más da? que el nombre de variable sea largo 389 00:17:50,200 --> 00:17:51,799 pero si luego con un entorno de desarrollo 390 00:17:51,799 --> 00:17:54,200 pues te lo va a autocompletar, copias, pegas 391 00:17:54,200 --> 00:17:56,400 ¿qué más da? es mucho más importante que el código 392 00:17:56,400 --> 00:17:57,740 sea claro y legible 393 00:17:57,740 --> 00:18:00,299 a que el nombre de variable sea corto para ahorrarte 394 00:18:00,299 --> 00:18:01,200 tu a escribir una vez 395 00:18:01,200 --> 00:18:04,200 da lo mismo que sea largo, no pasa nada 396 00:18:04,200 --> 00:18:05,200 que sea explicativo 397 00:18:05,200 --> 00:18:07,819 para favorecer lo que se llama 398 00:18:07,819 --> 00:18:09,599 la legibilidad del código 399 00:18:09,599 --> 00:18:12,039 es decir, que alguien que no ha hecho el código 400 00:18:12,039 --> 00:18:13,940 cuando lo mire, rápidamente 401 00:18:13,940 --> 00:18:15,259 se dé cuenta de qué es lo que hace 402 00:18:15,259 --> 00:18:17,900 eso le va a ocurrir si los nombres están bien 403 00:18:17,900 --> 00:18:18,480 elegidos 404 00:18:18,480 --> 00:18:21,680 y luego aparte, esto es un tip 405 00:18:21,680 --> 00:18:23,740 pero luego aparte hay ciertas restricciones 406 00:18:23,740 --> 00:18:25,420 que bueno, hombre 407 00:18:25,420 --> 00:18:27,819 los nombres de variables se supone que tienen 408 00:18:27,819 --> 00:18:29,940 que empezar por un carácter 409 00:18:29,940 --> 00:18:30,599 alfabético 410 00:18:30,599 --> 00:18:33,220 o la barra baja 411 00:18:33,220 --> 00:18:35,579 pero bueno, estas restricciones 412 00:18:35,579 --> 00:18:36,839 ya propias del lenguaje 413 00:18:36,839 --> 00:18:39,420 son las que van cambiando 414 00:18:39,420 --> 00:18:41,359 a veces según las sucesivas versiones de Java 415 00:18:41,359 --> 00:18:45,170 y no nos importa tanto 416 00:18:45,170 --> 00:18:47,049 porque normalmente una variable la empezamos 417 00:18:47,049 --> 00:18:48,849 con un carácter alfabético, o se llama nombre 418 00:18:48,849 --> 00:18:51,109 o se llama edad, o se llama como sea 419 00:18:51,109 --> 00:18:53,369 aunque también 420 00:18:53,369 --> 00:18:54,910 se permite el guión bajo 421 00:18:54,910 --> 00:18:57,289 porque el guión bajo a veces tiene un significado propio 422 00:18:57,289 --> 00:18:59,589 como variable de control, la empiezas con un guión bajo 423 00:18:59,589 --> 00:19:01,609 y ya dices, uy esta variable es rara 424 00:19:01,609 --> 00:19:02,690 empieza con guión bajo 425 00:19:02,690 --> 00:19:05,470 Entonces igual a lo mejor significa algo extraño 426 00:19:05,470 --> 00:19:06,009 ¿Vale? 427 00:19:06,450 --> 00:19:08,710 Esas son restricciones de cada lenguaje 428 00:19:08,710 --> 00:19:09,829 Tiene las suyas propias 429 00:19:09,829 --> 00:19:15,569 ¿Vale? 430 00:19:16,170 --> 00:19:19,670 Y como código de estilo 431 00:19:19,670 --> 00:19:20,710 Como pauta de estilo 432 00:19:20,710 --> 00:19:23,210 Hay una cosa que se llaman las pautas de estilo 433 00:19:23,210 --> 00:19:23,910 En programación 434 00:19:23,910 --> 00:19:25,450 No es que sean obligatorias 435 00:19:25,450 --> 00:19:29,170 Pero si todos seguimos ciertas pautas de estilo 436 00:19:29,170 --> 00:19:31,289 Pues nos entenderemos mejor 437 00:19:31,289 --> 00:19:32,869 Entre unos y otros 438 00:19:32,869 --> 00:19:34,089 Los códigos que ha hecho uno 439 00:19:34,089 --> 00:19:36,250 Si se parecen en estilo a los que ha hecho otro 440 00:19:36,250 --> 00:19:37,009 Pues casi mejor 441 00:19:37,009 --> 00:19:40,029 Entonces, como pauta de estilo 442 00:19:40,029 --> 00:19:42,349 Es deseable que los nombres de las variables 443 00:19:42,349 --> 00:19:43,829 Empiecen en minúscula 444 00:19:43,829 --> 00:19:48,190 Entonces, esto digamos que sería deseable 445 00:19:48,190 --> 00:19:50,230 Estas dos cosas que pongo aquí 446 00:19:50,230 --> 00:19:52,869 Que el nombre sea explicativo y en minúscula 447 00:19:52,869 --> 00:19:54,190 Pero no es que sea obligatorio 448 00:19:54,190 --> 00:19:58,380 Pero facilitamos la elegibilidad del código 449 00:19:58,380 --> 00:19:59,480 Ahora mismo diréis 450 00:19:59,480 --> 00:20:01,579 ¿Por qué empezar en minúscula lo facilita? 451 00:20:02,099 --> 00:20:03,839 Bueno, ahora mismo no lo entendemos muy bien 452 00:20:03,839 --> 00:20:06,140 Porque hay otras cosas que se llaman objetos 453 00:20:06,140 --> 00:20:08,019 Que pertenecen a clases 454 00:20:08,019 --> 00:20:10,099 las clases tienen como pauta de estilo empezar 455 00:20:10,099 --> 00:20:12,180 en mayúscula, entonces cuando algo empieza 456 00:20:12,180 --> 00:20:14,380 en minúscula, ya sabes que es una variable 457 00:20:14,380 --> 00:20:16,119 y si empieza en mayúscula sabes que es 458 00:20:16,119 --> 00:20:18,279 una clase, rápidamente un poquito va por ahí 459 00:20:18,279 --> 00:20:20,319 pero ahora mismo quedémonos 460 00:20:20,319 --> 00:20:22,200 como que para seguir un estilo 461 00:20:22,200 --> 00:20:24,240 de programación elegante, de alguna 462 00:20:24,240 --> 00:20:26,140 manera elegante, pues que el 463 00:20:26,140 --> 00:20:28,200 nombre sea explicativo y que arranque en minúscula 464 00:20:28,200 --> 00:20:29,920 entonces será un código 465 00:20:29,920 --> 00:20:32,200 habitual como lo hace 466 00:20:32,200 --> 00:20:34,240 casi todo el mundo y cuando lo vea tu jefe 467 00:20:34,240 --> 00:20:36,079 pues bueno, pues verá que sí, que tú programas 468 00:20:36,079 --> 00:20:38,299 siguiendo esas reglas de estilo 469 00:20:38,299 --> 00:20:38,720 ¿vale? 470 00:20:39,859 --> 00:20:42,460 bueno, pues por ahora hemos elegido el nombre solamente 471 00:20:42,460 --> 00:20:43,359 lo hemos elegido 472 00:20:43,359 --> 00:20:44,660 y ahora ya 473 00:20:44,660 --> 00:20:47,200 ¿qué ponemos en el código? 474 00:20:47,299 --> 00:20:48,700 ahora ya estamos haciendo el programa 475 00:20:48,700 --> 00:20:51,640 ya estoy con mi blog de notas 476 00:20:51,640 --> 00:20:54,220 que ahora pondremos 477 00:20:54,220 --> 00:20:55,099 ya escribiendo 478 00:20:55,099 --> 00:20:56,900 un programa Java 479 00:20:56,900 --> 00:20:59,859 y lo primero que voy a hacer en mi programa Java 480 00:20:59,859 --> 00:21:02,480 va a ser reservarme este espacio 481 00:21:02,480 --> 00:21:03,900 para el que ya he decidido el nombre 482 00:21:03,900 --> 00:21:06,059 vamos a suponer que en vez de X 483 00:21:06,059 --> 00:21:07,359 lo vamos a llamar número 484 00:21:07,359 --> 00:21:09,980 por lo menos algo explica 485 00:21:09,980 --> 00:21:11,960 número, vale 486 00:21:11,960 --> 00:21:14,000 lo vamos a llamar número, vale, pues ahora ya escribimos 487 00:21:14,000 --> 00:21:15,799 código Java, ¿qué escribo yo? 488 00:21:18,180 --> 00:21:20,279 pues tengo que, mi sentencia 489 00:21:20,279 --> 00:21:22,039 va a ser, el nombre de la 490 00:21:22,039 --> 00:21:23,940 variable que yo he elegido, el que me ha dado 491 00:21:23,940 --> 00:21:25,640 la gana, siguiendo estas restricciones 492 00:21:25,640 --> 00:21:27,339 pero delante 493 00:21:27,339 --> 00:21:29,779 tengo que poner algo obligatoriamente 494 00:21:29,779 --> 00:21:31,740 ¿qué pongo? 495 00:21:33,200 --> 00:21:33,380 no 496 00:21:33,380 --> 00:21:35,839 el tipo de dato 497 00:21:35,839 --> 00:21:38,279 que va a contener esta cajita 498 00:21:38,279 --> 00:21:40,359 el tipo de dato 499 00:21:40,359 --> 00:21:42,859 si va a ser un número, si va a ser un carácter 500 00:21:42,859 --> 00:21:44,559 es decir, aquí 501 00:21:44,559 --> 00:21:46,940 tenemos que poner 502 00:21:46,940 --> 00:21:50,759 el tipo del dato 503 00:21:50,759 --> 00:21:52,680 y ahora veremos qué tipos tiene Java 504 00:21:52,680 --> 00:21:55,180 y luego ya lo terminamos 505 00:21:55,180 --> 00:21:55,859 en punto y coma 506 00:21:55,859 --> 00:21:58,400 porque las sentencias de Java terminan en punto y coma 507 00:21:58,400 --> 00:21:59,759 no en todo el lenguaje en punto y coma 508 00:21:59,759 --> 00:22:01,559 como en Python, todo termina en punto y coma 509 00:22:01,559 --> 00:22:03,279 pero en muchos sí 510 00:22:03,279 --> 00:22:05,460 pues en nuestro caso 511 00:22:05,460 --> 00:22:06,500 sí acaba en punto y coma 512 00:22:06,500 --> 00:22:09,039 vale, entonces 513 00:22:09,039 --> 00:22:11,019 lo de especificar el tipo 514 00:22:11,019 --> 00:22:13,799 es obligatorio 515 00:22:13,799 --> 00:22:14,180 en Java 516 00:22:14,180 --> 00:22:17,380 bueno, obligatorio con un matiz 517 00:22:17,380 --> 00:22:19,460 que se incorporó de poner uno genérico 518 00:22:19,460 --> 00:22:20,920 y luego sustituirlo, pero bueno 519 00:22:20,920 --> 00:22:23,759 las cosas que yo os digo en muchos casos 520 00:22:23,759 --> 00:22:25,480 tienen por decirlo así 521 00:22:25,480 --> 00:22:27,539 una especie de matiz, pero yo no puedo decirlos 522 00:22:27,539 --> 00:22:28,859 todos porque entonces nos volvemos locos 523 00:22:28,859 --> 00:22:31,859 entonces este tiene un matiz, hay una especie de caso especial 524 00:22:31,859 --> 00:22:33,119 en el cual 525 00:22:33,119 --> 00:22:35,660 no tienes por qué poner el tipo si pones otra cosa 526 00:22:35,660 --> 00:22:38,460 pero eso ya son cosas que vamos a ignorar 527 00:22:38,460 --> 00:22:39,420 por ahora 528 00:22:39,420 --> 00:22:41,779 porque son detalles muy concretos 529 00:22:41,779 --> 00:22:43,440 y de versiones de Java además 530 00:22:43,440 --> 00:22:45,279 que se han ido sacando poco a poco 531 00:22:45,279 --> 00:22:48,059 vale, pues entonces 532 00:22:48,059 --> 00:22:50,000 el tener que poner el tipo 533 00:22:50,000 --> 00:22:51,880 es una restricción 534 00:22:51,880 --> 00:22:54,079 de Java un poco pesada 535 00:22:54,079 --> 00:22:55,720 porque hombre 536 00:22:55,720 --> 00:22:57,599 yo me comprometo ya para siempre 537 00:22:57,599 --> 00:22:59,660 a que esta variable solo 538 00:22:59,660 --> 00:23:01,700 pueda contener datos de este tipo 539 00:23:01,700 --> 00:23:04,000 es una restricción muy pesada 540 00:23:04,000 --> 00:23:06,619 hay otros lenguajes que no la tienen 541 00:23:06,619 --> 00:23:07,920 Python no la tiene 542 00:23:07,920 --> 00:23:11,019 tú dices el nombre de la variable 543 00:23:11,019 --> 00:23:12,799 que vas a usar, con eso ya reservas 544 00:23:12,799 --> 00:23:14,619 la cajita, pero no dices 545 00:23:14,619 --> 00:23:15,299 el tipo de dato 546 00:23:15,299 --> 00:23:18,539 entonces el intérprete de Python te va 547 00:23:18,539 --> 00:23:19,859 cambiando esta cajita 548 00:23:19,859 --> 00:23:22,440 pues que de repente le metes un numerito 549 00:23:22,440 --> 00:23:24,420 pues te adapta el tamaño, que ya le metes 550 00:23:24,420 --> 00:23:26,779 una cadena de 30 caracteres, te cambia la cajita 551 00:23:26,779 --> 00:23:27,700 una cadena de 30 552 00:23:27,700 --> 00:23:30,420 ¿vale? ¿qué es mejor? 553 00:23:30,420 --> 00:23:38,920 ¿Un lenguaje como Java que te obliga a poner el tipo y ya reserva una cajita con el tamaño exacto para datos de ese tipo? 554 00:23:39,059 --> 00:23:42,619 ¿O un lenguaje como Python que no te obliga a ponerlo y se adapta? 555 00:23:43,660 --> 00:23:44,339 Pues depende. 556 00:23:45,119 --> 00:23:51,460 Para los vagos y cómodos y para que cuele todo y hacer un programa que funciona rápido y fácil, 557 00:23:52,380 --> 00:23:55,140 mucho mejor los que no te obligan a poner el tipo, como Python. 558 00:23:55,140 --> 00:23:59,799 Es decir, en tiempo de desarrollo, que se llama, que es cuando yo estoy escribiendo el código, 559 00:24:00,420 --> 00:24:01,720 Más cómodo si no me obligan. 560 00:24:02,259 --> 00:24:05,460 Pero ojo, ¿qué pasa en el tiempo de ejecución? 561 00:24:06,480 --> 00:24:12,839 Cuantas menos restricciones te pongan, más se puede escapar de control a la hora de ejecutar. 562 00:24:13,180 --> 00:24:13,359 ¿Vale? 563 00:24:14,240 --> 00:24:18,559 Si a ti te dejan salir de casa por la noche y no te ponen ninguna restricción, eso es lo que tienes que hacer. 564 00:24:19,420 --> 00:24:21,039 Vete a saber cómo llegas a casa. 565 00:24:21,819 --> 00:24:21,920 ¿No? 566 00:24:21,980 --> 00:24:26,619 Pero si te han dejado salir por la noche y te han dicho, vale, no puedes beber, no puedes fumar y solo te puedes fumar un gorro. 567 00:24:27,119 --> 00:24:29,339 Pues entonces solo habrá pasado eso. 568 00:24:29,759 --> 00:24:30,119 Ya está. 569 00:24:30,119 --> 00:24:32,599 entonces ya sabes exactamente cómo va a volver tu hijo 570 00:24:32,599 --> 00:24:34,539 lo más que puede pasar es que se haga como un pobre 571 00:24:34,539 --> 00:24:36,440 vale, pues esto igual 572 00:24:36,440 --> 00:24:38,059 esto igual 573 00:24:38,059 --> 00:24:40,480 si tú desde tiempo de desarrollo 574 00:24:40,480 --> 00:24:42,559 has puesto restricciones 575 00:24:42,559 --> 00:24:44,380 en tiempo de ejecución 576 00:24:44,380 --> 00:24:46,480 es muy difícil que se te escapen errores 577 00:24:46,480 --> 00:24:48,900 incontrolados, porque ya has puesto esas restricciones 578 00:24:48,900 --> 00:24:50,619 esa es la ventaja 579 00:24:50,619 --> 00:24:52,339 de los lenguajes tipados 580 00:24:52,339 --> 00:24:53,960 que se llaman, los que te obligan a 581 00:24:53,960 --> 00:24:56,759 los que te restringen 582 00:24:56,759 --> 00:24:58,440 ya mucho en tiempo de escritura de código 583 00:24:58,440 --> 00:25:00,700 y Java es de esos, de los que te restringe 584 00:25:00,700 --> 00:25:02,700 mucho, quizá por eso es 585 00:25:02,700 --> 00:25:04,539 uno de los que más éxito ha tenido, Python está bien 586 00:25:04,539 --> 00:25:06,460 para aprender a programar, pero luego 587 00:25:06,460 --> 00:25:08,339 para desarrollar aplicaciones 588 00:25:08,339 --> 00:25:10,559 pues no 589 00:25:10,559 --> 00:25:11,279 consigue 590 00:25:11,279 --> 00:25:14,640 echar a Java, no consigue por estas cuestiones 591 00:25:14,640 --> 00:25:16,519 es bueno para aprender a programar, pero luego 592 00:25:16,519 --> 00:25:18,339 en el entorno de trabajo ya no se usa tanto 593 00:25:18,339 --> 00:25:20,480 bueno, pues entonces en nuestro caso 594 00:25:20,480 --> 00:25:22,640 estábamos con 595 00:25:22,640 --> 00:25:24,599 que tenemos que especificar el tipo, obligatorio 596 00:25:24,599 --> 00:25:26,700 esto ya sería una sentencia que yo 597 00:25:26,700 --> 00:25:28,579 puedo escribir, un programa que podemos escribir ahora mismo. 598 00:25:29,000 --> 00:25:30,079 Poniendo aquí un tipo válido. 599 00:25:30,759 --> 00:25:32,640 Claro, luego la pregunta que viene ahora 600 00:25:32,640 --> 00:25:34,680 es, oye, ¿de qué 601 00:25:34,680 --> 00:25:35,440 tipos dispongo? 602 00:25:36,539 --> 00:25:38,359 ¿De qué tipos disponemos en Java? 603 00:25:39,720 --> 00:25:41,140 Bueno, pues afortunadamente 604 00:25:41,140 --> 00:25:42,740 no muchos, porque si no 605 00:25:42,740 --> 00:25:44,440 tendríamos ahí una elección enorme. 606 00:25:45,339 --> 00:25:45,880 No muchos. 607 00:25:47,319 --> 00:25:48,319 Disponemos en general 608 00:25:48,319 --> 00:25:50,059 de números, 609 00:25:50,059 --> 00:25:52,059 de caracteres 610 00:25:52,859 --> 00:25:53,740 sueltos 611 00:25:53,740 --> 00:25:56,220 y de booleanos 612 00:25:56,220 --> 00:25:57,759 qué se llaman, que ahora para 613 00:25:57,759 --> 00:26:00,099 lo de que el boolean se le haga raro, pues 614 00:26:00,099 --> 00:26:02,319 explicaremos lo que es, pero sobre todo es eso 615 00:26:02,319 --> 00:26:04,279 números, caracteres 616 00:26:04,279 --> 00:26:05,539 y booleanos, pero claro, los números 617 00:26:05,539 --> 00:26:07,940 ¿qué números? ¿número entero? ¿número decimal? 618 00:26:08,200 --> 00:26:09,799 bueno, pues tipos para los dos 619 00:26:09,799 --> 00:26:12,000 en resumen, los tipos 620 00:26:12,000 --> 00:26:14,319 tal y como nosotros los escribiremos aquí 621 00:26:14,319 --> 00:26:15,599 son estos 622 00:26:15,599 --> 00:26:18,180 el 623 00:26:18,180 --> 00:26:20,420 vamos a ponerlos 624 00:26:20,420 --> 00:26:22,019 aquí 625 00:26:22,019 --> 00:26:29,400 el tipo byte 626 00:26:29,400 --> 00:26:32,960 el tipo short 627 00:26:32,960 --> 00:26:34,940 El tipo int 628 00:26:34,940 --> 00:26:36,700 El tipo long 629 00:26:36,700 --> 00:26:40,099 Ahora especificaremos las diferencias entre cada uno de ellos 630 00:26:40,099 --> 00:26:43,480 El tipo float 631 00:26:43,480 --> 00:26:47,529 El tipo double 632 00:26:47,529 --> 00:26:49,730 El tipo char 633 00:26:49,730 --> 00:26:53,089 Y el tipo boolean 634 00:26:53,089 --> 00:27:01,339 Estos son los tipos 635 00:27:01,339 --> 00:27:03,160 Añado la palabra 636 00:27:03,160 --> 00:27:04,380 Primitivos 637 00:27:04,380 --> 00:27:07,220 Ahora indico por qué he añadido esta palabra 638 00:27:07,220 --> 00:27:11,150 En Java 639 00:27:11,150 --> 00:27:12,609 ¿Vale? Y ya está 640 00:27:12,609 --> 00:27:13,509 Y no hay más que esto 641 00:27:13,509 --> 00:27:15,349 No hay más tipos que estos 642 00:27:15,349 --> 00:27:25,849 ¿Por qué los he llamado primitivos? 643 00:27:26,650 --> 00:27:28,569 Ahora, esto es una especie de inciso 644 00:27:28,569 --> 00:27:30,650 Para explicar la palabra 645 00:27:30,650 --> 00:27:32,009 En la cual, pues bueno 646 00:27:32,009 --> 00:27:33,769 Tengo que mencionar alguna cosa 647 00:27:33,769 --> 00:27:35,410 La tengo con objetos y no sé qué 648 00:27:35,410 --> 00:27:37,250 Pero bueno, ahora no me importa tanto 649 00:27:37,250 --> 00:27:39,309 Si es inciso, no lo entendéis demasiado 650 00:27:39,309 --> 00:27:40,690 Pero al menos la idea es que se os quede 651 00:27:40,690 --> 00:27:44,009 ¿Por qué decir que son primitivos? 652 00:27:44,069 --> 00:27:46,450 ¿Es que hay tipos de otra clase? 653 00:27:47,009 --> 00:27:48,289 Sí, hay tipos de otra clase 654 00:27:48,289 --> 00:27:49,269 ¿Por qué? 655 00:27:49,269 --> 00:27:51,630 porque claro, a la vista de estos tipos de datos 656 00:27:51,630 --> 00:27:52,730 diréis, jolines 657 00:27:52,730 --> 00:27:54,130 ¿son una aplicación? 658 00:27:54,829 --> 00:27:56,809 ¿sólo puede trabajar con números 659 00:27:56,809 --> 00:27:59,450 un char suelto y booleanos 660 00:27:59,450 --> 00:28:00,650 que ahora especificaremos lo que es? 661 00:28:00,730 --> 00:28:02,730 pues vaya, y si yo quiero trabajar 662 00:28:02,730 --> 00:28:05,230 que mi aplicación trabaje con clientes 663 00:28:05,230 --> 00:28:06,970 donde mi cliente tiene un nombre 664 00:28:06,970 --> 00:28:08,349 que son un montón de caracteres 665 00:28:08,349 --> 00:28:11,269 tiene un DNI que también son un montón de caracteres 666 00:28:11,269 --> 00:28:12,589 tiene una edad que son números 667 00:28:12,589 --> 00:28:15,250 pues mira a tu cliente 668 00:28:15,250 --> 00:28:17,490 ¿qué le pasa? no cae ninguno de estos 669 00:28:17,490 --> 00:28:18,809 claro 670 00:28:18,809 --> 00:28:21,410 pues para eso precisamente se usan 671 00:28:21,410 --> 00:28:22,230 entre otras cosas 672 00:28:22,230 --> 00:28:23,730 los objetos 673 00:28:23,730 --> 00:28:27,029 un objeto, ahora no me importa 674 00:28:27,029 --> 00:28:29,069 ahora solamente quiero que la idea vaya sonando 675 00:28:29,069 --> 00:28:29,690 pero nada más 676 00:28:29,690 --> 00:28:32,569 un objeto es como si fuera 677 00:28:32,569 --> 00:28:34,509 una caja gorda 678 00:28:34,509 --> 00:28:37,069 con un montón de datos 679 00:28:37,069 --> 00:28:38,710 de este tipo dentro, con un montón 680 00:28:38,710 --> 00:28:41,029 entonces un objeto es muy útil 681 00:28:41,029 --> 00:28:42,890 porque te puede meter dentro 682 00:28:42,890 --> 00:28:45,130 un número entero que es un int 683 00:28:45,130 --> 00:28:47,089 un decimal que es un double y un char 684 00:28:47,089 --> 00:28:48,309 o muchos char 685 00:28:48,309 --> 00:28:51,410 entonces, un objeto te puede 686 00:28:51,410 --> 00:28:52,890 meter dentro muchas 687 00:28:52,890 --> 00:28:55,069 variables de diferentes tipos 688 00:28:55,069 --> 00:28:56,369 entonces 689 00:28:56,369 --> 00:28:59,289 si yo quiero guardar los datos 690 00:28:59,289 --> 00:29:01,349 de un cliente, no los guardo 691 00:29:01,349 --> 00:29:03,250 en una variable de estas, o de estas, o de estas 692 00:29:03,250 --> 00:29:05,529 por enero clave, los guardo en lo que llamamos 693 00:29:05,529 --> 00:29:06,789 una variable objeto 694 00:29:06,789 --> 00:29:09,410 porque una variable objeto es una caja grande 695 00:29:09,410 --> 00:29:11,509 donde puedo meter muchas variables 696 00:29:11,509 --> 00:29:13,329 de estos tipos, ¿vale? pero eso ya 697 00:29:13,329 --> 00:29:14,950 lo veremos más adelante 698 00:29:14,950 --> 00:29:17,650 estos son los primitivos que se llaman 699 00:29:17,650 --> 00:29:19,069 los datos primitivos 700 00:29:19,069 --> 00:29:22,349 bueno, esto ahora paramos 701 00:29:22,349 --> 00:29:24,609 esto sería para guardar 702 00:29:24,609 --> 00:29:25,630 números enteros 703 00:29:25,630 --> 00:29:28,390 esto sería para guardar 704 00:29:28,390 --> 00:29:29,930 números decimales o reales 705 00:29:29,930 --> 00:29:30,890 como os guste llamarlo 706 00:29:30,890 --> 00:29:34,470 esto para guardar un único carácter 707 00:29:34,470 --> 00:29:35,269 y solo uno 708 00:29:35,269 --> 00:29:37,950 con lo cual para guardar un nombre no nos vale 709 00:29:37,950 --> 00:29:40,289 y el boolean es para 710 00:29:40,289 --> 00:29:41,809 guardar la idea de 711 00:29:41,809 --> 00:29:44,269 ¿verdad? no mentira, nada más 712 00:29:44,269 --> 00:29:46,230 o sea, una variable 713 00:29:46,230 --> 00:29:47,430 que es de tipo boolean 714 00:29:47,430 --> 00:29:49,849 solo puede tener dos valores 715 00:29:49,849 --> 00:29:51,970 o verdadero 716 00:29:51,970 --> 00:29:53,109 o falso 717 00:29:53,109 --> 00:29:57,039 no es como una variable int 718 00:29:57,039 --> 00:29:58,380 que puede tener un montón de valores 719 00:29:58,380 --> 00:30:01,279 7, 12, 15, 28, 93, menos 12 720 00:30:01,279 --> 00:30:02,619 puede tener muchos 721 00:30:02,619 --> 00:30:05,420 una variable boolean es un tipo de dato 722 00:30:05,420 --> 00:30:06,599 que solamente puede tener 723 00:30:06,599 --> 00:30:08,500 ¿verdad? o mentira 724 00:30:08,500 --> 00:30:11,259 y diréis, jolín, ¿qué tipo de dato 725 00:30:11,259 --> 00:30:12,700 tan raro y tan artificial? 726 00:30:13,339 --> 00:30:15,299 no sé, meter ahí un tipo de dato 727 00:30:15,299 --> 00:30:17,180 que puede contener verdad o mentira 728 00:30:17,180 --> 00:30:18,220 que rarísimo es eso 729 00:30:18,220 --> 00:30:20,319 bueno, no es tan raro en programación 730 00:30:20,319 --> 00:30:22,519 porque en programación muchas veces 731 00:30:22,519 --> 00:30:24,819 interesa saber si algo 732 00:30:24,819 --> 00:30:27,059 es verdad o si algo es mentira 733 00:30:27,059 --> 00:30:29,160 y en función de eso irse por una rama 734 00:30:29,160 --> 00:30:29,740 o por otra 735 00:30:29,740 --> 00:30:32,220 recordad las medidas de selección que decía 736 00:30:32,220 --> 00:30:34,579 entonces viene muy bien tener una cajita 737 00:30:34,579 --> 00:30:36,160 para guardar 738 00:30:36,160 --> 00:30:38,720 lo que llamamos condiciones, que son cosas 739 00:30:38,720 --> 00:30:40,140 que son verdad o mentira 740 00:30:40,140 --> 00:30:42,740 entonces viene bien una cajita para poder guardar 741 00:30:42,740 --> 00:30:45,279 el resultado de una condición 742 00:30:45,279 --> 00:30:46,259 o lo que es lo mismo 743 00:30:46,259 --> 00:30:51,299 si se cumple, no se cumple, lo tengo ahí guardadito el resultado y cuando quiero 744 00:30:51,299 --> 00:30:55,500 usar eso para decidir si me voy por una rama o por otra, pues uso. ¿Qué tiene esta 745 00:30:55,500 --> 00:30:59,579 cajita? ¿Tiene verdad o tiene mentira? ¿Tiene verdad? Pues voy por aquí. ¿Tiene mentira? 746 00:30:59,579 --> 00:31:03,500 Pues no voy por aquí. Eso para las intenciones de defensa. 747 00:31:03,500 --> 00:31:11,220 Vale, vamos a parar aquí y luego seguimos otro ratinín