1 00:00:00,000 --> 00:00:06,040 Venga, chicos y chicas y todo, y chiques y todo lo que sea que haya por aquí. 2 00:00:09,480 --> 00:00:14,179 Vale, bueno, pues entonces, ¿qué hemos visto? 3 00:00:14,519 --> 00:00:18,179 Hemos visto la programación estructurada, ¿vale? 4 00:00:18,679 --> 00:00:21,899 Y la programación estructurada es lo que hemos visto y no hay más, 5 00:00:22,239 --> 00:00:24,920 salvo detalles particulares de cada lenguaje, no hay más. 6 00:00:24,920 --> 00:00:49,579 que es variables que rellenamos con datos, expresiones que podemos construir involucrando variables y los operadores del lenguaje, tanto lógicos como aritméticos, expresiones, expresiones que a su vez nos dan valores para variables y luego decisiones que nos permiten que el programa haga diferentes evaluaciones de esas expresiones, diferentes cosas en función de una condición 7 00:00:49,579 --> 00:00:52,020 y bucles que nos permiten que un programa 8 00:00:52,020 --> 00:00:54,359 se repita, perdón, que un trozo 9 00:00:54,359 --> 00:00:55,840 de código se repita varias veces 10 00:00:55,840 --> 00:00:58,140 entonces componiendo todo eso podemos hacer 11 00:00:58,140 --> 00:01:00,240 cualquier cosa, ¿vale? cualquier cosa 12 00:01:00,240 --> 00:01:02,439 que, cualquier cosa que le podamos 13 00:01:02,439 --> 00:01:04,159 encargar a una CPU 14 00:01:04,159 --> 00:01:06,299 cualquier cosa de la que una 15 00:01:06,299 --> 00:01:08,140 CPU puede hacer 16 00:01:08,140 --> 00:01:10,120 ¿vale? una CPU convencional 17 00:01:10,120 --> 00:01:12,340 vamos, no una arquitectura de otro tipo 18 00:01:12,340 --> 00:01:12,659 de 19 00:01:12,659 --> 00:01:16,060 otro tipo de arquitectura 20 00:01:16,060 --> 00:01:18,400 vale, pues entonces cualquier cosa 21 00:01:18,400 --> 00:01:20,019 que una CPU puede hacer 22 00:01:20,019 --> 00:01:21,799 con su unidad aritmético-lógica, 23 00:01:21,879 --> 00:01:23,140 unidad de control y todo eso, 24 00:01:23,700 --> 00:01:25,640 se lo podemos indicar mediante 25 00:01:25,640 --> 00:01:27,400 programación estructurada, como he dicho hasta ahora. 26 00:01:27,480 --> 00:01:29,519 Y no necesitamos nada más, porque no entiende 27 00:01:29,519 --> 00:01:30,579 nada más que eso. 28 00:01:31,340 --> 00:01:33,819 Claro, pero ya un poquito hemos empezado 29 00:01:33,819 --> 00:01:35,620 a ver en la aplicación esa de alumnos 30 00:01:35,620 --> 00:01:36,959 del otro día, 31 00:01:37,620 --> 00:01:39,560 que ya empiezan a quedar los programas un poco largos 32 00:01:39,560 --> 00:01:40,640 y empieza a ser un poco pesado. 33 00:01:41,019 --> 00:01:41,879 ¿Empieza a ser un poco largo? 34 00:01:42,859 --> 00:01:43,359 Sí, vale. 35 00:01:44,159 --> 00:01:46,060 Abel, déjame, no me estropees la introducción. 36 00:01:46,980 --> 00:01:47,939 No me tan miedo. 37 00:01:48,400 --> 00:02:01,359 No, no es largo, pero bueno, para nosotros ahora mismo sí, porque de manejar un programa de 6 o 7 líneas a manejar ya algo que tiene 100 es largo y es un rollo. 38 00:02:01,359 --> 00:02:18,580 Entonces, de hecho, como pauta de estilo, si a ti te queda un método, si a ti te queda un trozo de código de más de 10, 15 líneas, ya es un consejo que lo refactorices. Es decir, mira, reestructura esto de otra manera para que no te quede aquí en el mismo fichero, que queda muy largo. Si luego hay que buscar errores, es muy complicado. 39 00:02:18,580 --> 00:02:21,379 entonces ya la aplicación 40 00:02:21,379 --> 00:02:23,520 esta de alumnos del otro día ya hubiera 41 00:02:23,520 --> 00:02:25,240 sido pesada de depurar 42 00:02:25,240 --> 00:02:27,039 si hubiéramos tenido que encontrar errores lo que fuera 43 00:02:27,039 --> 00:02:28,439 ya hubiera sido pesada 44 00:02:28,439 --> 00:02:31,620 entonces muchísimo más bonito 45 00:02:31,620 --> 00:02:33,240 organizar 46 00:02:33,240 --> 00:02:34,939 el código de otra manera 47 00:02:34,939 --> 00:02:37,340 y sobre todo 48 00:02:37,340 --> 00:02:39,199 muchísimo más práctico 49 00:02:39,199 --> 00:02:41,400 a la hora de encontrar errores 50 00:02:41,400 --> 00:02:43,080 por un lado y de introducir 51 00:02:43,080 --> 00:02:45,840 modificaciones, si yo mi aplicación 52 00:02:45,840 --> 00:02:47,379 enorme con un montón 53 00:02:47,379 --> 00:02:49,400 de líneas, así 54 00:02:49,400 --> 00:02:51,479 pues digo, oye mira 55 00:02:51,479 --> 00:02:53,139 como esto hace una cosa 56 00:02:53,139 --> 00:02:55,439 y esto hace otra 57 00:02:55,439 --> 00:02:57,080 y esto hace otra 58 00:02:57,080 --> 00:02:58,520 que ya hemos dicho varias veces 59 00:02:58,520 --> 00:03:01,120 que cuando nosotros programamos, programamos 60 00:03:01,120 --> 00:03:03,159 por partes independientes en realidad 61 00:03:03,159 --> 00:03:05,240 ¿no? yo hago esta parte 62 00:03:05,240 --> 00:03:07,319 esta parte ya está resuelta, ahora esta 63 00:03:07,319 --> 00:03:08,639 parte se puede insertar aquí 64 00:03:08,639 --> 00:03:11,340 vale, ya tengo esta parte resuelta y esta parte 65 00:03:11,340 --> 00:03:13,439 se podría insertar aquí, pero de alguna manera 66 00:03:13,439 --> 00:03:15,500 son como partes aisladas 67 00:03:15,500 --> 00:03:18,219 entonces, si yo tengo aquí mi programa 68 00:03:18,219 --> 00:03:20,539 con las partes que voy resolviendo 69 00:03:20,539 --> 00:03:22,479 en lugar de irlas 70 00:03:22,479 --> 00:03:24,599 engrasando, insertando 71 00:03:24,599 --> 00:03:25,960 una con otra en el mismo código 72 00:03:25,960 --> 00:03:27,939 pues si en lugar de eso pudiera 73 00:03:27,939 --> 00:03:29,039 oye, a esta 74 00:03:29,039 --> 00:03:31,180 vamos a darle un nombrecito 75 00:03:31,180 --> 00:03:33,719 y la meto aquí 76 00:03:33,719 --> 00:03:35,280 en un sitio distinto 77 00:03:35,280 --> 00:03:38,199 a esta vamos a darle otro nombrecito 78 00:03:38,199 --> 00:03:41,900 y esta parte la meto aquí 79 00:03:41,900 --> 00:03:44,659 y a esta vamos a darle otro nombrecito 80 00:03:44,659 --> 00:03:47,539 y la meto aquí 81 00:03:47,539 --> 00:03:49,500 entonces primero 82 00:03:49,500 --> 00:03:50,300 ¿qué he conseguido? 83 00:03:51,199 --> 00:03:53,479 que el trabajo de varios desarrolladores es más fácil 84 00:03:53,479 --> 00:03:55,240 porque uno dice, oye tú ocúpate de esto 85 00:03:55,240 --> 00:03:56,800 y este se ocupa de esto 86 00:03:56,800 --> 00:03:59,340 en paralelo el desarrollador 2 87 00:03:59,340 --> 00:04:00,539 se ocupa de esta parte 88 00:04:00,539 --> 00:04:03,039 en paralelo el desarrollador 3 89 00:04:03,039 --> 00:04:04,280 se ocupa de esta parte 90 00:04:04,280 --> 00:04:06,539 cada uno tendrá sus requisitos 91 00:04:06,539 --> 00:04:09,520 oye, tu trozo de código tiene que hacer esto 92 00:04:09,520 --> 00:04:11,259 ah vale, pues yo hago esto por mi lado 93 00:04:11,259 --> 00:04:11,740 por libre 94 00:04:11,740 --> 00:04:14,639 oye, tu trozo de código tiene que hacer esto 95 00:04:14,639 --> 00:04:16,560 Ah, pues yo hago esto por mi lado, por libre. 96 00:04:16,920 --> 00:04:18,959 Cada uno trabaja en paralelo de forma independiente. 97 00:04:19,720 --> 00:04:21,439 Cuando ya están estas partes hechas, 98 00:04:21,980 --> 00:04:24,040 pues este programa tan feo 99 00:04:24,040 --> 00:04:28,939 se convertiría en las llamadas y más en tres líneas. 100 00:04:29,680 --> 00:04:31,959 Nombre 1, nombre 2 y nombre 3. 101 00:04:32,699 --> 00:04:33,959 Se convertiría en eso. 102 00:04:34,040 --> 00:04:34,939 Entonces queda más claro, 103 00:04:35,060 --> 00:04:37,279 porque además si esos nombres están bien elegidos, 104 00:04:37,980 --> 00:04:39,980 luego el que quiere ver lo que hace esta aplicación 105 00:04:39,980 --> 00:04:42,399 dice, ah, sacar cifras. 106 00:04:42,399 --> 00:04:45,319 Ah, vale, esto es un código que saca cifras. 107 00:04:45,560 --> 00:04:46,779 ¿Me interesa cómo está hecho? 108 00:04:47,360 --> 00:04:48,459 Pues me voy aquí a mirarlo. 109 00:04:48,560 --> 00:04:49,300 ¿Que no me interesa? 110 00:04:49,420 --> 00:04:51,480 Ya sé que esta parte hace sacar cifras. 111 00:04:51,579 --> 00:04:51,899 Muy bien. 112 00:04:52,639 --> 00:04:53,600 ¿Mostrarlas por pantalla? 113 00:04:53,779 --> 00:04:56,819 Ah, vale, este código lo que va a hacer es mostrarlas por pantalla. 114 00:04:57,199 --> 00:04:58,660 ¿Me interesa ver cómo lo hace? 115 00:04:58,779 --> 00:05:00,399 Bueno, pues me voy a meter aquí a mirarlo. 116 00:05:00,819 --> 00:05:02,139 ¿Que no me interesa ver cómo lo hace? 117 00:05:02,220 --> 00:05:03,139 Me da igual, no lo miro. 118 00:05:03,639 --> 00:05:08,540 Entonces, uno ya en la aplicación tiene un primer vistazo de lo que hace, 119 00:05:08,639 --> 00:05:11,279 muy bien organizadito, si los nombres se han elegido bien. 120 00:05:11,279 --> 00:05:13,740 que quiere ver los detalles de alguna 121 00:05:13,740 --> 00:05:15,620 de las partes, pues se va a esa 122 00:05:15,620 --> 00:05:17,220 parte de ahí y ya está 123 00:05:17,220 --> 00:05:19,560 luego, otra 124 00:05:19,560 --> 00:05:21,480 ventaja, la aplicación la ejecutamos 125 00:05:21,480 --> 00:05:22,860 pues la aplicación falla 126 00:05:22,860 --> 00:05:24,199 entonces 127 00:05:24,199 --> 00:05:27,500 porque no ha mostrado bien 128 00:05:27,500 --> 00:05:29,439 las cifras, bueno pues entonces 129 00:05:29,439 --> 00:05:31,620 el único fichero que tenemos que abrir 130 00:05:31,620 --> 00:05:33,399 y que luego compilar otra vez 131 00:05:33,399 --> 00:05:34,680 es este 132 00:05:34,680 --> 00:05:37,560 los demás ni se 133 00:05:37,560 --> 00:05:39,300 enteran, los demás ni se enteran 134 00:05:39,300 --> 00:05:41,540 entonces es mucho más fácil depurar 135 00:05:41,540 --> 00:05:44,259 si está separado por partes y cada parte tiene un nombre 136 00:05:44,259 --> 00:05:45,680 luego 137 00:05:45,680 --> 00:05:47,220 tres ventajas por lo menos 138 00:05:47,220 --> 00:05:49,939 entender el código, mucho más claro 139 00:05:49,939 --> 00:05:52,459 que varios desarrolladores 140 00:05:52,459 --> 00:05:54,339 trabajen en paralelo, cada uno por su lado 141 00:05:54,339 --> 00:05:55,720 y luego 142 00:05:55,720 --> 00:05:57,800 depurar errores 143 00:05:57,800 --> 00:05:59,120 mucho más sencillo 144 00:05:59,120 --> 00:06:02,420 imagino que es una duda de mierda 145 00:06:02,420 --> 00:06:02,639 pero 146 00:06:02,639 --> 00:06:06,160 si todos los programas 147 00:06:06,160 --> 00:06:07,339 por separado funcionan bien 148 00:06:07,339 --> 00:06:09,439 pero luego a la hora de ponerlo en conjunto 149 00:06:09,439 --> 00:06:11,500 no te saca los números bien 150 00:06:11,500 --> 00:06:13,000 de la parte 1 151 00:06:13,000 --> 00:06:15,220 Sí, a ver, lo que pasa es que esta es una forma 152 00:06:15,220 --> 00:06:18,259 de ver la idea 153 00:06:18,259 --> 00:06:21,040 Esto no es que sean programas 154 00:06:21,040 --> 00:06:22,540 Esto sería como una función 155 00:06:22,540 --> 00:06:23,639 que tú pones aparte 156 00:06:23,639 --> 00:06:25,660 y luego esa función la llamas aquí 157 00:06:25,660 --> 00:06:27,860 Entonces esta función te funcionará o no 158 00:06:27,860 --> 00:06:30,879 dependiendo de si los datos que han venido de aquí 159 00:06:30,879 --> 00:06:32,000 están bien o no están bien 160 00:06:32,000 --> 00:06:33,759 Pero si esta función te funciona 161 00:06:33,759 --> 00:06:36,079 tú esta no tienes que volver a tocarla, ni a mirarla, ni nada 162 00:06:36,079 --> 00:06:40,000 porque esta ya está probada, ya se ha visto que si le das bien los datos funciona 163 00:06:40,000 --> 00:06:42,579 esta ya está probada, esta depurada, esta te olvidas 164 00:06:42,579 --> 00:06:47,939 entonces, el programa no te funciona pero no te funciona 165 00:06:47,939 --> 00:06:51,540 porque es esto entonces, pues nada, tú simplemente te vas aquí 166 00:06:51,540 --> 00:06:53,300 te vas ahí y ya está 167 00:06:53,300 --> 00:07:00,000 pues la idea es que tú puedes probar y verificar de forma separada 168 00:07:00,000 --> 00:07:04,199 esto, tú lo pruebas y lo verificas, luego claro el conjunto 169 00:07:04,199 --> 00:07:06,019 ya forma una aplicación distinta 170 00:07:06,019 --> 00:07:08,120 esa aplicación te funcionará 171 00:07:08,120 --> 00:07:10,279 no te funcionará, habrá que hacerle sus propias pruebas 172 00:07:10,279 --> 00:07:11,839 y bueno, habrá que ver 173 00:07:11,839 --> 00:07:14,360 pero en cualquier caso, si esa aplicación no te funciona 174 00:07:14,360 --> 00:07:16,720 siempre va a ser más sencillo 175 00:07:16,720 --> 00:07:18,459 encontrar los errores 176 00:07:18,459 --> 00:07:20,660 si está separado por partes 177 00:07:20,660 --> 00:07:21,500 que si tienes ahí 178 00:07:21,500 --> 00:07:24,079 las 10.000 líneas seguidas 179 00:07:24,079 --> 00:07:25,660 siempre va a ser más manejable 180 00:07:25,660 --> 00:07:27,860 si está más organizadito 181 00:07:27,860 --> 00:07:29,980 esa es más o menos la idea 182 00:07:29,980 --> 00:07:30,720 ¿vale? 183 00:07:31,959 --> 00:07:33,379 entonces, esto ya 184 00:07:33,379 --> 00:07:36,540 antes de la programación orientada a objetos 185 00:07:36,540 --> 00:07:38,300 ya recibió un nombre 186 00:07:38,300 --> 00:07:39,959 que es el nombre de funciones 187 00:07:39,959 --> 00:07:42,420 pues esto que yo he puesto aquí serían las funciones 188 00:07:42,420 --> 00:07:42,899 ¿vale? 189 00:07:43,439 --> 00:07:44,899 esto serían funciones 190 00:07:44,899 --> 00:07:50,139 cuando ya llegó la programación orientada a objetos 191 00:07:50,139 --> 00:07:52,720 este concepto de función ya se diluyó 192 00:07:52,720 --> 00:07:54,519 porque se incluyó 193 00:07:54,519 --> 00:07:56,759 en el concepto de clase 194 00:07:56,759 --> 00:07:58,600 ¿vale? entonces una clase 195 00:07:58,600 --> 00:08:00,720 en realidad, como ya veremos 196 00:08:00,720 --> 00:08:02,600 en breve, es un montón 197 00:08:02,600 --> 00:08:04,540 de funciones dentro, con más cositas 198 00:08:04,540 --> 00:08:06,819 o más cosas, pero un montón de funciones dentro 199 00:08:06,819 --> 00:08:07,360 ¿vale? 200 00:08:08,300 --> 00:08:10,759 entonces, aún así, antes ya 201 00:08:10,759 --> 00:08:12,879 de empezar la programación anotada de objetos, las clases 202 00:08:12,879 --> 00:08:14,759 y todo eso, vamos a ver 203 00:08:14,759 --> 00:08:16,699 cómo en Java podemos 204 00:08:16,699 --> 00:08:18,759 clarificar un poquito nuestros 205 00:08:18,759 --> 00:08:20,680 códigos, separando 206 00:08:20,680 --> 00:08:22,399 partes, a lo mejor 207 00:08:22,399 --> 00:08:24,779 separando partes en funciones aparte 208 00:08:24,779 --> 00:08:27,240 y así entendemos este concepto 209 00:08:27,240 --> 00:08:28,839 porque si entendemos este 210 00:08:28,839 --> 00:08:30,860 concepto, de llamar a función 211 00:08:30,860 --> 00:08:32,379 cómo tengo que llamarla 212 00:08:32,379 --> 00:08:34,740 si le puedo pasar parámetros a la función 213 00:08:34,740 --> 00:08:37,200 o no, como recojo los resultados 214 00:08:37,200 --> 00:08:38,759 si entendemos bien 215 00:08:38,759 --> 00:08:41,179 este concepto y lo sabemos aplicar 216 00:08:41,179 --> 00:08:43,019 pues luego ya el salto 217 00:08:43,019 --> 00:08:44,500 a la programación de entrada de objetos 218 00:08:44,500 --> 00:08:46,679 ya es más sencillo 219 00:08:46,679 --> 00:08:47,240 ¿vale? 220 00:08:47,940 --> 00:08:49,360 pues vamos a 221 00:08:49,360 --> 00:08:54,309 ¿qué has dicho? ¿no has entendido nada? 222 00:08:57,690 --> 00:08:58,789 ¿alguien se lo 223 00:08:58,789 --> 00:08:59,830 puede explicar? 224 00:09:00,590 --> 00:09:01,330 no, no, maestro 225 00:09:01,330 --> 00:09:19,009 Bueno, pues lo acabarás entendiendo 226 00:09:19,009 --> 00:09:21,509 Pero... 227 00:09:21,509 --> 00:09:23,529 ¿Qué quieres que haga? 228 00:09:23,610 --> 00:09:24,690 ¿Que te vuelva a contar lo mismo otra vez? 229 00:09:24,690 --> 00:09:26,049 Es que no sé, no entiendo 230 00:09:26,049 --> 00:09:27,090 ¿Por qué todo eso ahora? 231 00:09:27,409 --> 00:09:31,129 Que no has entendido por qué todo eso ahora 232 00:09:31,129 --> 00:09:58,929 Venga 233 00:09:58,929 --> 00:10:00,250 Pues a ver 234 00:10:00,250 --> 00:10:01,090 Vamos a ver 235 00:10:01,090 --> 00:10:07,330 Dicho esto 236 00:10:07,330 --> 00:10:10,669 Venga, vamos a empezar 237 00:10:10,669 --> 00:10:14,409 Vamos a empezar con un ejemplo 238 00:10:14,409 --> 00:10:21,409 Vamos a empezar con un ejemplo muy sencillo 239 00:10:21,409 --> 00:10:23,350 Para ver la estructura 240 00:10:23,350 --> 00:10:24,990 Como lo vamos a aplicar ahora mismo 241 00:10:24,990 --> 00:10:27,009 Silencio, ajaba con lo que sabemos 242 00:10:27,009 --> 00:10:28,389 Y luego ya 243 00:10:28,389 --> 00:10:30,789 Pues podemos en alguno de los ejercicios 244 00:10:30,789 --> 00:10:32,750 que hemos hecho antes que ocupaban más 245 00:10:32,750 --> 00:10:34,370 vamos a decir, vale, ahora vamos a este ejercicio 246 00:10:34,370 --> 00:10:36,710 modificarlo para sacarlo a funciones 247 00:10:36,710 --> 00:10:38,529 y a ver si así efectivamente 248 00:10:38,529 --> 00:10:40,690 lo vemos mejor, nos queda más claro 249 00:10:40,690 --> 00:10:42,509 y de alguna manera entendemos 250 00:10:42,509 --> 00:10:44,149 la ventaja 251 00:10:44,149 --> 00:10:46,049 de programar de esta manera 252 00:10:46,049 --> 00:10:52,009 Venga, pues vamos a hacer 253 00:10:52,009 --> 00:11:00,700 No, ahora mismo 254 00:11:00,700 --> 00:11:02,779 vamos a hacer un ejercicio, un ejemplo 255 00:11:02,779 --> 00:11:03,799 para ver 256 00:11:03,799 --> 00:11:05,720 la sintaxis de esto 257 00:11:05,720 --> 00:11:09,379 Sí, sí, sí 258 00:11:09,379 --> 00:11:11,620 Ah, acabáramos 259 00:11:11,620 --> 00:11:13,080 O sea, que lo que vamos a hacer son funciones 260 00:11:13,080 --> 00:11:14,379 Separadas o algo así 261 00:11:14,379 --> 00:11:16,299 Sí, vamos a 262 00:11:16,299 --> 00:11:18,659 Hacer funciones 263 00:11:18,659 --> 00:11:19,860 Que son trozos de código 264 00:11:19,860 --> 00:11:21,039 Bajo un nombre 265 00:11:21,039 --> 00:11:24,200 Que pueden ser llamadas desde otro código 266 00:11:24,200 --> 00:11:26,240 Y es como si tú 267 00:11:26,240 --> 00:11:27,960 Todo ese código lo insertaras 268 00:11:27,960 --> 00:11:29,620 Es como si hicieras un copia y pega 269 00:11:29,620 --> 00:11:31,299 ¿Vale? 270 00:11:31,620 --> 00:11:33,379 Pero claro, esto tiene sus matices 271 00:11:33,379 --> 00:11:35,940 Que es lo que tenemos que ver 272 00:11:35,940 --> 00:11:37,440 Venga 273 00:11:37,440 --> 00:11:58,779 Venga 274 00:11:58,779 --> 00:12:02,320 Ay, sí 275 00:12:02,320 --> 00:12:04,720 Me ha dado pereza 276 00:12:04,720 --> 00:12:10,559 Bueno, se me ha puesto el por defecto 277 00:12:10,559 --> 00:12:11,580 Pero por defecto es ninguno 278 00:12:11,580 --> 00:12:13,159 Porque lo pone en el raíz directamente 279 00:12:13,159 --> 00:12:16,559 Ya veréis con los paquetes 280 00:12:16,559 --> 00:12:18,460 Cuando estudiemos los paquetes 281 00:12:18,460 --> 00:12:20,179 Lo que significan 282 00:12:20,179 --> 00:12:21,500 Entonces sí que os vais a quedar 283 00:12:21,500 --> 00:12:24,720 Venga, pues yo que sé, funciona el mismo, da igual 284 00:12:24,720 --> 00:12:33,639 Pues bien, entonces te cagarás un poco menos 285 00:12:33,639 --> 00:12:36,320 Que los otros 286 00:12:36,320 --> 00:12:38,580 Vale, venga 287 00:12:38,580 --> 00:12:41,559 Nosotros hasta ahora 288 00:12:41,559 --> 00:12:44,580 Todo nuestro código estaba metido ahí 289 00:12:44,580 --> 00:12:48,299 y había muchas cosas que no entendíamos 290 00:12:48,299 --> 00:12:50,200 y que vamos a seguir sin entender un rato más 291 00:12:50,200 --> 00:12:56,919 ¿Cómo protestáis tanto? 292 00:12:57,460 --> 00:12:58,259 No me interrumpáis 293 00:12:58,259 --> 00:13:03,860 A ver, hay cosas que vamos a seguir sin entender 294 00:13:03,860 --> 00:13:05,940 obviamente, porque no sabemos 295 00:13:05,940 --> 00:13:07,620 este public que pinta aquí 296 00:13:07,620 --> 00:13:10,100 no sabemos este static que pinta aquí 297 00:13:10,100 --> 00:13:12,159 el void ya sí vamos a entender 298 00:13:12,159 --> 00:13:12,840 lo que significa 299 00:13:12,840 --> 00:13:15,519 Pero este public no sabemos lo que significa 300 00:13:15,519 --> 00:13:17,039 Lo entenderemos cuando 301 00:13:17,039 --> 00:13:19,879 Estudiemos exactamente que son los paquetes 302 00:13:19,879 --> 00:13:20,960 Y como funcionan 303 00:13:20,960 --> 00:13:23,860 El static tampoco sabemos todavía lo que significa 304 00:13:23,860 --> 00:13:25,720 Lo entenderemos cuando ya veamos clases 305 00:13:25,720 --> 00:13:27,299 Ahora ya 306 00:13:27,299 --> 00:13:29,220 En un ratinín este void 307 00:13:29,220 --> 00:13:31,039 Y esto que está aquí si lo entenderemos 308 00:13:31,039 --> 00:13:33,139 Pero lo demás no 309 00:13:33,139 --> 00:13:35,879 En cualquier caso es que nos da igual 310 00:13:35,879 --> 00:13:37,019 Nos da igual 311 00:13:37,019 --> 00:13:38,879 A nosotros hasta ahora lo único que nos importa 312 00:13:38,879 --> 00:13:41,379 Es que nuestros programas 313 00:13:41,379 --> 00:13:43,100 Eran sentencias aquí dentro 314 00:13:43,100 --> 00:13:44,120 Y ya está 315 00:13:44,120 --> 00:13:45,580 Es lo único que nos importa 316 00:13:45,580 --> 00:13:47,500 Y todo lo demás ya irá llegando 317 00:13:47,500 --> 00:13:48,440 Paciencia 318 00:13:48,440 --> 00:13:51,779 Vale, pues entonces que nosotros queríamos hacer un programa 319 00:13:51,779 --> 00:13:53,240 Que 320 00:13:53,240 --> 00:13:55,120 Pidiera 321 00:13:55,120 --> 00:13:57,960 Te pidiera el nombre y luego te saludara 322 00:13:57,960 --> 00:13:58,720 Por ejemplo 323 00:13:58,720 --> 00:14:00,960 Pues hacíamos esto 324 00:14:00,960 --> 00:14:01,919 ¿Verdad? 325 00:14:04,139 --> 00:14:05,759 Ese si lo pongo en el examen 326 00:14:05,759 --> 00:14:06,879 Sabéis hacerlo, ¿no? 327 00:14:06,879 --> 00:14:08,419 Dime que lo vas a poner 328 00:14:08,419 --> 00:14:10,360 Ponlo, aunque sea 329 00:14:10,360 --> 00:14:11,960 Dime 330 00:14:11,960 --> 00:14:13,480 Esas preguntas se hacen 331 00:14:13,480 --> 00:14:15,179 Dime sin mentir que lo vas a poner 332 00:14:15,179 --> 00:14:18,299 Porque cualquiera te puede decir cualquier cosa 333 00:14:18,299 --> 00:14:28,860 Dime sin mentir 334 00:14:28,860 --> 00:14:30,440 Eso es posible 335 00:14:30,440 --> 00:14:37,799 Eso, justo, estaba pensando 336 00:14:37,799 --> 00:14:42,440 Vale, vale 337 00:14:42,440 --> 00:14:50,100 Sí, la pregunta sería 338 00:14:50,100 --> 00:14:52,279 ¿Me vas a decir sin mentir si lo vas a poner? 339 00:14:52,399 --> 00:14:53,000 No, no, no 340 00:14:53,000 --> 00:14:54,480 La pregunta sería 341 00:14:54,480 --> 00:14:56,519 ¿Cuál sería la apuesta que elegiría el otro? 342 00:14:56,679 --> 00:14:58,340 Y siempre va a ser la contraria 343 00:14:58,340 --> 00:15:00,179 Porque el que te va a mentir, te va a mentir 344 00:15:00,179 --> 00:15:01,360 Y el que te va a decir la verdad, te va a decir la verdad 345 00:15:01,360 --> 00:15:03,220 Claro, pero traducido a la pregunta 346 00:15:03,220 --> 00:15:04,539 ¿Vas a poner esto en el examen? 347 00:15:04,580 --> 00:15:05,799 ¿Cómo se cambia eso? 348 00:15:06,100 --> 00:15:07,740 A mí si una mujer me dice buenos días 349 00:15:07,740 --> 00:15:09,240 Yo miro por la ventana porque esto va a ser 350 00:15:09,240 --> 00:15:12,299 Bueno, ya empezamos generalizando 351 00:15:12,299 --> 00:15:20,200 Bueno, no ha dicho que 352 00:15:20,200 --> 00:15:22,019 Que todos los hombres 353 00:15:22,019 --> 00:15:22,899 No mienten 354 00:15:22,899 --> 00:15:25,480 Mienten todos los humanos 355 00:15:25,480 --> 00:15:31,860 Un poco iguales son 356 00:15:31,860 --> 00:15:40,120 Porque estamos en clase de programación 357 00:15:40,120 --> 00:15:42,279 Y os voy a explicar lo que es una función 358 00:15:42,279 --> 00:15:45,120 y tienes que confiar y hacerme caso 359 00:15:45,120 --> 00:15:47,100 venga 360 00:15:47,100 --> 00:15:48,659 vale 361 00:15:48,659 --> 00:15:51,000 es que claro, me distraigo 362 00:15:51,000 --> 00:15:52,919 con tonterías, vale, a ver 363 00:15:52,919 --> 00:15:55,299 pues entonces, imaginaos si yo os he pedido 364 00:15:55,299 --> 00:15:57,019 un código que te pida el nombre 365 00:15:57,019 --> 00:15:58,860 y te salude, pues haríais esto 366 00:15:58,860 --> 00:16:00,980 y lo haríais todo muy bien y tú has dicho 367 00:16:00,980 --> 00:16:02,440 vas a poner esto 368 00:16:02,440 --> 00:16:06,620 claro, y 369 00:16:06,620 --> 00:16:08,480 podríamos iniciar una conversación infinita 370 00:16:08,480 --> 00:16:10,919 pero no hace falta porque ya está, hemos hecho 371 00:16:10,919 --> 00:16:11,799 el código y se acabó 372 00:16:11,799 --> 00:16:16,740 Vale, pues ahora vamos a suponer que queremos sacar este código a una función 373 00:16:16,740 --> 00:16:19,740 ¿Vale? Vamos a suponer que queremos sacarlo 374 00:16:19,740 --> 00:16:21,320 Vamos a ver cómo se hace 375 00:16:21,320 --> 00:16:23,559 ¿Vale? Que tenga interés o no 376 00:16:23,559 --> 00:16:25,259 Pues bueno, sacar tres líneas 377 00:16:25,259 --> 00:16:27,679 Lo digo porque me adelanto 378 00:16:27,679 --> 00:16:28,440 ¿Y por qué lo hacemos? 379 00:16:28,559 --> 00:16:31,340 Pues lo hacemos para explicarte cómo es la sintaxis 380 00:16:31,340 --> 00:16:34,740 ¿Vale? No porque sea imprescindible en tu vida 381 00:16:34,740 --> 00:16:37,259 Venga, pues entonces 382 00:16:37,259 --> 00:16:39,259 Vamos a sacarlo a una función 383 00:16:39,259 --> 00:16:40,700 Vale 384 00:16:40,700 --> 00:16:42,919 Venga, pues 385 00:16:42,919 --> 00:16:45,639 La función 386 00:16:45,639 --> 00:16:48,379 La ponemos fuera de estas llaves 387 00:16:48,379 --> 00:16:49,840 ¿Veis? 388 00:16:49,919 --> 00:16:51,159 El main se abre aquí 389 00:16:51,159 --> 00:16:52,679 Y se cierra aquí 390 00:16:52,679 --> 00:16:55,360 El propio main ya es una función 391 00:16:55,360 --> 00:16:57,259 Como ahora vamos a ir entendiendo 392 00:16:57,259 --> 00:16:59,340 Que se abre aquí y se cierra aquí 393 00:16:59,340 --> 00:17:01,539 Pues ahora vamos a empezar a utilizar más 394 00:17:01,539 --> 00:17:03,139 No solo esta, no solo el main 395 00:17:03,139 --> 00:17:03,919 Más funciones 396 00:17:03,919 --> 00:17:06,539 Venga, pues entonces va fuera de las llaves 397 00:17:06,539 --> 00:17:08,119 Primero 398 00:17:08,119 --> 00:17:11,619 no, no, no, de la primera 399 00:17:11,619 --> 00:17:13,480 de la de esta no, esta las encierra 400 00:17:13,480 --> 00:17:13,900 todas 401 00:17:13,900 --> 00:17:17,079 vale, aquí en medio de las dos 402 00:17:17,079 --> 00:17:19,680 vale, entonces 403 00:17:19,680 --> 00:17:31,750 vale, entonces vamos a hacer una función que pide el nombre 404 00:17:31,750 --> 00:17:33,549 y saludar, es decir, justo esto 405 00:17:33,549 --> 00:17:35,430 con lo cual si tenemos esa función 406 00:17:35,430 --> 00:17:37,910 pues en nuestro main la llamaremos 407 00:17:37,910 --> 00:17:39,410 y listo, vale 408 00:17:39,410 --> 00:17:41,690 pues, ¿qué tenemos que hacer 409 00:17:41,690 --> 00:17:42,609 para hacer una función? 410 00:17:42,609 --> 00:17:45,109 una vez que hemos identificado lo que queremos 411 00:17:45,109 --> 00:17:47,190 que tenga dentro, eso siempre 412 00:17:47,190 --> 00:17:48,829 es la parte fundamental 413 00:17:48,829 --> 00:17:50,690 la que llamamos análisis, que es 414 00:17:50,690 --> 00:17:53,150 oye, primero entiende lo que quieres hacer 415 00:17:53,150 --> 00:17:54,890 y luego ya te pones a hacerlo, vale 416 00:17:54,890 --> 00:17:57,130 pues hemos entendido que lo que queremos es una función 417 00:17:57,130 --> 00:17:59,089 que te pide el nombre y saluda 418 00:17:59,089 --> 00:18:01,109 vale, pues entonces 419 00:18:01,109 --> 00:18:02,910 vamos a pensar un nombre 420 00:18:02,910 --> 00:18:05,250 lo más explicativo posible para ella 421 00:18:05,250 --> 00:18:06,930 a ver, que yo le puedo llamar así 422 00:18:06,930 --> 00:18:09,069 Java no me va a decir nada, pero no es la idea 423 00:18:09,069 --> 00:18:11,069 la idea es darle un 424 00:18:11,069 --> 00:18:12,970 nombre explicativo relacionado 425 00:18:12,970 --> 00:18:13,769 con lo que va a hacer 426 00:18:13,769 --> 00:18:16,150 vale, pues vamos a llamarle 427 00:18:16,150 --> 00:18:18,490 venga 428 00:18:18,490 --> 00:18:20,390 vamos a llamarle saludar 429 00:18:20,390 --> 00:18:21,809 y ya está, vale 430 00:18:21,809 --> 00:18:23,849 el nombre es saludar 431 00:18:23,849 --> 00:18:25,450 la función 432 00:18:25,450 --> 00:18:28,690 tiene aparte del nombre otras dos 433 00:18:28,690 --> 00:18:30,450 cosas más que hay que completar 434 00:18:30,450 --> 00:18:32,769 una va aquí 435 00:18:32,769 --> 00:18:35,309 entre unos paréntesis que son obligatorios 436 00:18:35,309 --> 00:18:36,890 estos paréntesis 437 00:18:36,890 --> 00:18:38,170 son obligatorios 438 00:18:38,170 --> 00:18:40,309 hay que ponerlos sí o sí 439 00:18:40,309 --> 00:18:44,630 Dentro de estos paréntesis puede ir algo o puede no ir 440 00:18:44,630 --> 00:18:47,170 Ahora mismo no vamos a poner nada 441 00:18:47,170 --> 00:18:49,329 Pero como son obligatorios hay que ponerlos 442 00:18:49,329 --> 00:18:51,150 Vacíos, obligatorios 443 00:18:51,150 --> 00:18:54,369 Y antes de la función tiene que ir algo 444 00:18:54,369 --> 00:18:56,509 También obligatorio 445 00:18:56,509 --> 00:18:58,049 ¿Qué tiene que ir antes de la función? 446 00:19:00,700 --> 00:19:05,500 Tiene que ir algo relacionado con el hecho de si esta función 447 00:19:05,500 --> 00:19:07,660 Me va a devolver un valor o no me lo va a devolver 448 00:19:07,660 --> 00:19:10,380 Hacia el programa que lo llama 449 00:19:10,380 --> 00:19:14,819 Ahora, luego lo entenderemos mejor 450 00:19:14,819 --> 00:19:15,880 Pero ahora avanzamos 451 00:19:15,880 --> 00:19:18,940 Una función, aparte de hacer el código que tiene dentro 452 00:19:18,940 --> 00:19:20,500 Aparte de hacer el código que tiene dentro 453 00:19:20,500 --> 00:19:22,420 Puede construir un valor 454 00:19:22,420 --> 00:19:24,140 Uno solo 455 00:19:24,140 --> 00:19:25,640 Un valor solo 456 00:19:25,640 --> 00:19:28,240 Y entregarlo al programa que lo llama 457 00:19:28,240 --> 00:19:31,400 Puede o no 458 00:19:31,400 --> 00:19:33,380 En este caso, nuestra función 459 00:19:33,380 --> 00:19:35,700 No va a construir ningún valor 460 00:19:35,700 --> 00:19:37,420 Ni entregarlo al programa que lo llama 461 00:19:37,420 --> 00:19:39,400 Lo que va a hacer va a ser mostrar por consola 462 00:19:39,400 --> 00:19:40,480 Un mensajito y ya está 463 00:19:40,480 --> 00:19:46,279 no va a hacer nada más. Entonces, cuando una función no hace eso de construir dentro un valor 464 00:19:46,279 --> 00:19:56,380 y entregarlo al programa que lo llama, sí, se le pone el void, ¿vale? Pero algo hay que ponerle 465 00:19:56,380 --> 00:20:02,519 obligatorio. Bueno, aprovechamos y paramos, ¿vale? Justo, efectivamente.