1 00:00:00,000 --> 00:00:01,320 Venga, vamos incorporando poco a poco. 2 00:00:02,220 --> 00:00:05,919 Bueno, pues entonces, repito, la función. 3 00:00:07,960 --> 00:00:09,859 Nombre el más explicativo que uno pueda. 4 00:00:10,839 --> 00:00:12,119 Paréntesis obligatorios. 5 00:00:13,960 --> 00:00:16,260 En este caso, los vamos a dejar vacíos. 6 00:00:17,440 --> 00:00:21,800 Ya incorporaremos que si los ponemos con algo dentro, 7 00:00:21,940 --> 00:00:23,739 pues para qué nos sirve, para qué podemos utilizarlos, 8 00:00:23,839 --> 00:00:25,140 por qué están ahí, para qué nos sirven. 9 00:00:25,960 --> 00:00:27,980 Y algo aquí antes hay que poner. 10 00:00:27,980 --> 00:00:34,539 Entonces, si la función no construye ningún valor que entrega el programa 11 00:00:34,539 --> 00:00:38,060 Ya veremos cómo podría construir ese valor, entregarlo y cómo usarlo 12 00:00:38,060 --> 00:00:43,079 Si no lo hace, se pone void, obligatorio, ¿vale? 13 00:00:44,020 --> 00:00:45,859 Sería el caso de lo que vamos a hacer aquí 14 00:00:45,859 --> 00:00:48,100 Porque aquí va a pedir un nombre y va a saludar 15 00:00:48,100 --> 00:00:51,240 Luego no hace nada de devolver al programa principal ni nada 16 00:00:51,240 --> 00:00:52,299 Entonces pondríamos void 17 00:00:52,299 --> 00:00:57,640 ¿Vale? Pues esto de aquí es lo que se llama la firma o la cabecera de la función 18 00:00:57,640 --> 00:00:59,719 esta es su firma, su cabecera 19 00:00:59,719 --> 00:01:02,460 porque el programador que luego está viendo 20 00:01:02,460 --> 00:01:04,579 esto, el código de dentro 21 00:01:04,579 --> 00:01:06,579 ya le da igual, lo que le va a importar 22 00:01:06,579 --> 00:01:08,099 es, ah, esta función hace 23 00:01:08,099 --> 00:01:10,420 esto, más o menos, el nombre 24 00:01:10,420 --> 00:01:12,340 ya le da una información, hace esto 25 00:01:12,340 --> 00:01:14,379 y me va a devolver esto 26 00:01:14,379 --> 00:01:16,219 y necesita esto, ya veremos 27 00:01:16,219 --> 00:01:17,299 cuando pongamos ahí cosas 28 00:01:17,299 --> 00:01:18,879 bueno, pues ahora 29 00:01:18,879 --> 00:01:21,859 este mismo código 30 00:01:21,859 --> 00:01:24,439 yo lo meto aquí 31 00:01:24,439 --> 00:01:29,060 dentro, ala, y ya tengo 32 00:01:29,060 --> 00:01:30,540 una función que 33 00:01:30,540 --> 00:01:33,079 me pide un nombre y me saluda 34 00:01:33,079 --> 00:01:34,659 por mi nombre, ya está 35 00:01:34,659 --> 00:01:36,480 y la tengo perfectamente declarada 36 00:01:36,480 --> 00:01:37,359 esa función 37 00:01:37,359 --> 00:01:40,780 ¿vale? como veis 38 00:01:40,780 --> 00:01:43,019 va con sus llaves, luego abre un bloque 39 00:01:43,019 --> 00:01:45,040 nuevo y el main 40 00:01:45,040 --> 00:01:47,200 se ha quedado vacío 41 00:01:47,200 --> 00:01:48,040 claro, en este caso 42 00:01:48,040 --> 00:01:51,060 y como veis el main es una función también 43 00:01:51,060 --> 00:01:53,019 el main que lo hemos estado usando 44 00:01:53,019 --> 00:01:55,359 hasta ahora es una función, tiene su nombrecito 45 00:01:55,359 --> 00:01:56,379 que es main 46 00:01:56,379 --> 00:01:58,359 tiene su void 47 00:01:58,359 --> 00:02:04,819 y tiene estas dos cosas, estas tres cosas que todavía no entendemos, 48 00:02:04,939 --> 00:02:06,579 este public static y esto de aquí. 49 00:02:09,939 --> 00:02:15,400 Entonces, esta función, lo que pasa es que es una función un poco especial, 50 00:02:15,580 --> 00:02:21,560 es la única función especial de todas las funciones que uno puede meter en una aplicación. 51 00:02:22,240 --> 00:02:23,500 ¿Y por qué es especial? 52 00:02:23,500 --> 00:02:28,180 porque a esta función no la llamamos nosotros desde ningún sitio 53 00:02:28,180 --> 00:02:31,039 como a saludar, a saludar sí la llamaremos desde donde queramos 54 00:02:31,039 --> 00:02:33,039 a main no, a main quién la llama 55 00:02:33,039 --> 00:02:36,060 main está para que la llame la máquina virtual 56 00:02:36,060 --> 00:02:38,379 es decir, cuando una aplicación 57 00:02:38,379 --> 00:02:41,620 cuando arrancamos una aplicación, Java, la arrancamos 58 00:02:41,620 --> 00:02:43,099 toma, arrancamos la aplicación 59 00:02:43,099 --> 00:02:47,719 la máquina virtual se pone a buscar entre los millones de funciones 60 00:02:47,719 --> 00:02:49,800 la que se llame main 61 00:02:49,800 --> 00:02:52,719 Con lo cual solo puede haber una 62 00:02:52,719 --> 00:02:54,319 Que se llame main en una aplicación 63 00:02:54,319 --> 00:02:55,139 Solo puede haber una 64 00:02:55,139 --> 00:02:57,300 Y la máquina virtual la busca entre todas 65 00:02:57,300 --> 00:02:59,539 ¿Esta se llama main? Pues esta 66 00:02:59,539 --> 00:03:02,819 Luego la función main es el punto de arranque 67 00:03:02,819 --> 00:03:03,539 De la aplicación 68 00:03:03,539 --> 00:03:06,639 La aplicación siempre arranca desde la primera línea 69 00:03:06,639 --> 00:03:07,479 De la función main 70 00:03:07,479 --> 00:03:09,639 Y luego ya a partir de aquí 71 00:03:09,639 --> 00:03:12,340 Empiezan a pasar las cosas que hayamos puesto 72 00:03:12,340 --> 00:03:14,659 Algunas de ellas pueden ser de hecho 73 00:03:14,659 --> 00:03:15,379 Llamar a otra 74 00:03:15,379 --> 00:03:18,439 Sí, llamar a otra y a muchas más 75 00:03:18,439 --> 00:03:20,360 y el resto de funciones 76 00:03:20,360 --> 00:03:22,379 que no son main, ya por tanto 77 00:03:22,379 --> 00:03:23,840 son llamadas desde aquí 78 00:03:23,840 --> 00:03:26,139 pero la main 79 00:03:26,139 --> 00:03:27,719 no es llamada por código 80 00:03:27,719 --> 00:03:29,939 no hay ningún sitio en el que pongamos main 81 00:03:29,939 --> 00:03:32,340 la main es la que 82 00:03:32,340 --> 00:03:34,039 llama la máquina virtual 83 00:03:34,039 --> 00:03:35,340 cuando una aplicación arranca 84 00:03:35,340 --> 00:03:38,159 pero su sintaxis es la misma 85 00:03:38,159 --> 00:03:40,340 su sintaxis es igual, tiene un nombre 86 00:03:40,340 --> 00:03:42,080 que tiene que ser main obligatoriamente 87 00:03:42,080 --> 00:03:43,979 para que la máquina virtual la encuentre 88 00:03:43,979 --> 00:03:46,240 tiene el void porque no devuelve 89 00:03:46,240 --> 00:03:48,120 nada a quien la llama 90 00:03:48,120 --> 00:03:49,740 Es que no la llama nadie 91 00:03:49,740 --> 00:03:51,860 Entonces tiene void obligatoriamente 92 00:03:51,860 --> 00:03:53,659 Y tiene esto de aquí 93 00:03:53,659 --> 00:03:55,539 Que ya entenderemos en breve lo que es 94 00:03:55,539 --> 00:03:57,360 Y esto de aquí que también lo entenderemos 95 00:03:57,360 --> 00:03:59,939 Pero es una función más, con su llave que se abre y se cierra 96 00:03:59,939 --> 00:04:01,560 ¿Vale? 97 00:04:02,520 --> 00:04:03,639 Bueno, pues entonces 98 00:04:03,639 --> 00:04:05,960 Ahora aquí en main podemos hacer lo que nos dé la gana 99 00:04:05,960 --> 00:04:08,139 Un montón de nuestro código 100 00:04:08,139 --> 00:04:08,800 Lo que sea 101 00:04:08,800 --> 00:04:10,439 Claro 102 00:04:10,439 --> 00:04:15,849 Y aquí mi aplicación está haciendo cosas 103 00:04:15,849 --> 00:04:17,529 Y de repente yo necesito 104 00:04:17,529 --> 00:04:19,730 Saludar, necesito saludar 105 00:04:19,730 --> 00:04:22,170 Pues porque soy así de amable 106 00:04:22,170 --> 00:04:24,250 Y si lo saludo 107 00:04:24,250 --> 00:04:26,110 Pues entonces 108 00:04:26,110 --> 00:04:27,490 Como necesito saludar 109 00:04:27,490 --> 00:04:30,269 ¿Para qué voy a poner el código de saludar una y otra vez? 110 00:04:30,610 --> 00:04:31,610 ¿Para qué voy a ponerlo? 111 00:04:32,389 --> 00:04:33,490 Llamo a la función 112 00:04:33,490 --> 00:04:35,810 ¿Y cómo se llama una función? 113 00:04:36,709 --> 00:04:38,470 Pues como a todo el mundo 114 00:04:38,470 --> 00:04:39,670 Por su nombre 115 00:04:39,670 --> 00:04:41,329 ¿Perdón? 116 00:04:41,490 --> 00:04:43,470 No podrías utilizar esa función 117 00:04:43,470 --> 00:04:44,629 ¿Cómo que no podrías? 118 00:04:44,709 --> 00:04:49,610 No, el orden da igual 119 00:04:49,610 --> 00:04:52,089 El orden en el que estén las funciones da igual 120 00:04:52,089 --> 00:04:53,889 La podría haber declarado aquí arriba 121 00:04:53,889 --> 00:04:55,629 En lugar de estar aquí 122 00:04:55,629 --> 00:05:00,009 La puedo poner aquí 123 00:05:00,009 --> 00:05:01,930 Me da lo mismo 124 00:05:01,930 --> 00:05:05,910 En plan, siempre que esté por encima del main 125 00:05:05,910 --> 00:05:07,990 No, por debajo, me da lo mismo 126 00:05:07,990 --> 00:05:10,370 Es decir, el main es una función más 127 00:05:10,370 --> 00:05:12,170 Y el resto de funciones 128 00:05:12,170 --> 00:05:14,269 Me da igual que estén arriba, que estén debajo 129 00:05:14,269 --> 00:05:14,910 Me da lo mismo 130 00:05:14,910 --> 00:05:17,310 Habrá un montón de funciones 131 00:05:17,310 --> 00:05:24,410 La máquina virtual buscará la main y es la única que busca y lo arranca. 132 00:05:24,709 --> 00:05:28,910 Y el main ya llama a las que toquen, a las que toquen llamar. 133 00:05:29,550 --> 00:05:33,290 Vale, pues entonces, nosotros ahora necesitamos saludar. 134 00:05:33,889 --> 00:05:38,490 Pues no tenemos que poner el código entero porque tenemos una función que lo hace, pues la llamamos por su nombre. 135 00:05:39,029 --> 00:05:41,370 Y como su nombre es saludar, yo pongo saludar. 136 00:05:42,170 --> 00:05:45,329 Pero es obligatorio que ponga los paréntesis también. 137 00:05:45,329 --> 00:05:48,129 los paréntesis los tengo que poner sí o sí 138 00:05:48,129 --> 00:05:50,310 y cierro el punto y coma 139 00:05:50,310 --> 00:05:51,870 y algo más que ahora, ¿vale? 140 00:05:52,490 --> 00:05:53,930 entonces se me está quejando 141 00:05:53,930 --> 00:05:56,069 ¿vale? se me está 142 00:05:56,069 --> 00:05:58,170 quejando porque estoy llamando 143 00:05:58,170 --> 00:06:00,110 no, no, no, porque no tengo 144 00:06:00,110 --> 00:06:01,990 nada dentro, no, por una cosa que 145 00:06:01,990 --> 00:06:04,230 desgraciadamente no podemos 146 00:06:04,230 --> 00:06:06,050 entender, pero la podemos, la tenemos que 147 00:06:06,050 --> 00:06:07,610 poner ahora a capón 148 00:06:07,610 --> 00:06:10,009 eso, se me está quejando 149 00:06:10,009 --> 00:06:12,189 ¿por qué? porque a saludar 150 00:06:12,189 --> 00:06:13,889 la estoy llamando desde esta función 151 00:06:13,889 --> 00:06:17,529 y esta función tiene un static delante. 152 00:06:18,350 --> 00:06:20,350 Entonces, aunque ahora no entendemos 153 00:06:20,350 --> 00:06:21,310 qué significa static, 154 00:06:21,689 --> 00:06:24,089 si una función tiene un static delante, 155 00:06:24,750 --> 00:06:27,110 solo puede llamar a funciones 156 00:06:27,110 --> 00:06:29,029 que también tengan un static delante. 157 00:06:29,350 --> 00:06:29,589 Solo. 158 00:06:30,610 --> 00:06:33,470 Entonces, mi saludar no tiene un static delante. 159 00:06:34,329 --> 00:06:35,930 Bueno, vamos a ponérselo. 160 00:06:37,230 --> 00:06:38,389 Se lo ponemos. 161 00:06:38,910 --> 00:06:40,550 Y ahora ya, vale, ya te deja. 162 00:06:40,689 --> 00:06:41,649 Te dice, ah, vale, ya te deja. 163 00:06:41,649 --> 00:06:44,209 Entonces, lo del static 164 00:06:44,209 --> 00:06:45,850 No entendemos muy bien qué significa 165 00:06:45,850 --> 00:06:48,810 Pero lo único que nos tenemos que quedar ahora es 166 00:06:48,810 --> 00:06:51,209 Que el main, el static delante 167 00:06:51,209 --> 00:06:52,529 Es obligatorio 168 00:06:52,529 --> 00:06:54,209 Yo del main no puedo cambiar nada 169 00:06:54,209 --> 00:06:55,329 Ya lo dijimos al principio 170 00:06:55,329 --> 00:06:58,170 El public tiene que estar, el static tiene que estar 171 00:06:58,170 --> 00:06:59,709 El void, el nombre main 172 00:06:59,709 --> 00:07:00,750 No puedo cambiar el nombre 173 00:07:00,750 --> 00:07:03,129 Esto, no lo puedo cambiar 174 00:07:03,129 --> 00:07:05,689 Bueno, a ver, en realidad puedo poner esto 175 00:07:05,689 --> 00:07:07,209 Es la única variación que puedo hacer 176 00:07:07,209 --> 00:07:09,389 Que no entendemos lo que significa, pero da igual 177 00:07:09,389 --> 00:07:11,029 Significa lo mismo, sí 178 00:07:11,029 --> 00:07:12,410 significa lo mismo 179 00:07:12,410 --> 00:07:14,310 es otra forma de poner eso 180 00:07:14,310 --> 00:07:15,689 entonces, un segundo 181 00:07:15,689 --> 00:07:18,170 del main yo no puedo cambiar nada 182 00:07:18,170 --> 00:07:20,569 porque si no la máquina virtual 183 00:07:20,569 --> 00:07:22,709 no va a encontrar a ese método cuando arranque 184 00:07:22,709 --> 00:07:24,829 porque lo va a buscar con su nombrecito completo 185 00:07:24,829 --> 00:07:27,189 y su cabecera completa, entonces del main no puedo cambiar nada 186 00:07:27,189 --> 00:07:29,209 luego el static no lo puedo cambiar 187 00:07:29,209 --> 00:07:30,569 ¿vale? eso por un lado 188 00:07:30,569 --> 00:07:33,149 y ahora la segunda parte con la que nos quedamos 189 00:07:33,149 --> 00:07:34,069 aunque no la entendamos 190 00:07:34,069 --> 00:07:36,569 si una función tiene static delante 191 00:07:36,569 --> 00:07:38,889 solo puede llamar 192 00:07:38,889 --> 00:07:40,790 a funciones que también lo tengan 193 00:07:40,790 --> 00:07:43,649 solo, vale, pues entonces 194 00:07:43,649 --> 00:07:45,470 pongámosle el static delante 195 00:07:45,470 --> 00:07:46,769 para poder llamarla desde main 196 00:07:46,769 --> 00:07:49,750 ¿eso implica algo dentro de saludar? 197 00:07:49,990 --> 00:07:51,750 sí, implica cosas, pero ahora mismo no nos molesta 198 00:07:51,750 --> 00:07:53,470 nada, ahora mismo no nos molesta 199 00:07:53,470 --> 00:07:54,470 entonces 200 00:07:54,470 --> 00:07:57,129 ahora mismo vamos a dejarlo así, el static 201 00:07:57,129 --> 00:07:59,149 de ponerlo o no ponerlo no hay ninguna diferencia 202 00:07:59,149 --> 00:08:01,050 no hay ninguna diferencia, entonces ya que el main 203 00:08:01,050 --> 00:08:02,990 nos lo pide porque 204 00:08:02,990 --> 00:08:05,449 tiene un static delante, pongámoselo 205 00:08:05,449 --> 00:08:07,089 porque ahora mismo con todo lo que estamos 206 00:08:07,089 --> 00:08:08,569 haciendo nosotros no hay ninguna diferencia 207 00:08:08,569 --> 00:08:10,089 entre ponerlo o no ponerlo no hay ninguna 208 00:08:10,089 --> 00:08:14,050 Se te abre ahí un mundo de 209 00:08:14,050 --> 00:08:15,490 Vale 210 00:08:15,490 --> 00:08:18,110 Bueno, pues ya está, ya tenemos a 211 00:08:18,110 --> 00:08:20,629 Ya está, ya hemos sacado el código dentro de 212 00:08:20,629 --> 00:08:21,230 Pues venga 213 00:08:21,230 --> 00:08:23,990 Y ahora ya efectivamente ejecutamos esto 214 00:08:23,990 --> 00:08:31,620 Arrancamos programa, nos pide el nombrecito 215 00:08:31,620 --> 00:08:32,980 Y nos saluda 216 00:08:32,980 --> 00:08:34,440 Vale 217 00:08:34,440 --> 00:08:44,340 Vale, luego 218 00:08:44,340 --> 00:08:46,279 Recopilando 219 00:08:46,279 --> 00:08:48,299 La función 220 00:08:48,299 --> 00:08:50,559 La función es un código metido entre llaves 221 00:08:50,559 --> 00:08:51,519 Eso es una función 222 00:08:51,519 --> 00:08:55,759 ¿Dónde va? Dentro de una clase 223 00:08:55,759 --> 00:08:59,240 Esto es una clase, aunque no entendamos lo que es ahora 224 00:08:59,240 --> 00:09:01,639 Es decir, dentro de las llaves de una clase 225 00:09:01,639 --> 00:09:04,820 Ahí va, esta clase se abre con sus llaves aquí 226 00:09:04,820 --> 00:09:06,120 Y se cierra aquí 227 00:09:06,120 --> 00:09:08,860 Pues dentro de una clase va la función 228 00:09:08,860 --> 00:09:11,840 Efectivamente, dentro de esta clase ahora tengo dos 229 00:09:11,840 --> 00:09:13,440 Esta, que va ahí dentro 230 00:09:13,440 --> 00:09:15,799 Y la main que va ahí dentro 231 00:09:15,799 --> 00:09:18,259 Tengo dos, podría tener muchas más 232 00:09:18,259 --> 00:09:20,799 Luego una función es un código 233 00:09:20,799 --> 00:09:22,539 entre llaves 234 00:09:22,539 --> 00:09:23,840 que va dentro de una clase 235 00:09:23,840 --> 00:09:25,960 esa función recibe un nombre 236 00:09:25,960 --> 00:09:27,840 lo más explicativo posible 237 00:09:27,840 --> 00:09:30,399 y su sintaxis 238 00:09:30,399 --> 00:09:32,600 implica que obligatoriamente 239 00:09:32,600 --> 00:09:34,139 yo pongo unos paréntesis después 240 00:09:34,139 --> 00:09:36,460 y algo delante 241 00:09:36,460 --> 00:09:38,200 que es 242 00:09:38,200 --> 00:09:40,179 el tipo del dato que esa 243 00:09:40,179 --> 00:09:41,440 función devuelve 244 00:09:41,440 --> 00:09:44,179 si no devuelve nada, void 245 00:09:44,179 --> 00:09:46,379 vale, y tercera 246 00:09:46,379 --> 00:09:48,000 cosa con la que nos quedamos por ahora 247 00:09:48,000 --> 00:09:50,179 ahora mismo nosotros solamente 248 00:09:50,179 --> 00:09:52,580 estamos trabajando con una clase 249 00:09:52,580 --> 00:09:54,299 con un main y ya está, porque no tenemos 250 00:09:54,299 --> 00:09:55,899 diferentes clases, no las tenemos 251 00:09:55,899 --> 00:09:58,559 pues como main tiene el static 252 00:09:58,559 --> 00:10:00,600 delante, yo tengo que poner 253 00:10:00,600 --> 00:10:02,779 a todas las funciones que llame desde aquí 254 00:10:02,779 --> 00:10:04,340 para que el compilador me deje 255 00:10:04,340 --> 00:10:06,279 tengo que ponerle también el static delante 256 00:10:06,279 --> 00:10:08,779 y ya está, y tú ibas a preguntar algo 257 00:10:08,779 --> 00:10:09,279 Cristian 258 00:10:09,279 --> 00:10:14,299 te aburres acaso 259 00:10:14,299 --> 00:10:15,759 no, no, me entro hambre 260 00:10:15,759 --> 00:10:16,620 falta oxígeno 261 00:10:16,620 --> 00:10:19,200 por ende 262 00:10:19,200 --> 00:10:21,980 no se puede tener funciones 263 00:10:21,980 --> 00:10:24,039 con el mismo nombre 264 00:10:24,039 --> 00:10:25,740 sí, y eso es 265 00:10:25,740 --> 00:10:27,840 puedes tener funciones con el mismo nombre 266 00:10:27,840 --> 00:10:30,019 que se llaman sobrecargadas 267 00:10:30,019 --> 00:10:31,539 pero se tienen que distinguir en algo 268 00:10:31,539 --> 00:10:33,860 en lo que hay adentro de los paréntesis 269 00:10:33,860 --> 00:10:35,940 porque como dijiste que en main 270 00:10:35,940 --> 00:10:37,840 solo puede haber un main 271 00:10:37,840 --> 00:10:40,559 claro, claro, solamente puede haber 272 00:10:40,559 --> 00:10:42,320 si tú haces una función main 273 00:10:42,320 --> 00:10:44,840 y aquí pones otra cosa 274 00:10:44,840 --> 00:10:46,320 ya es distinta 275 00:10:46,320 --> 00:10:47,960 entonces no sería esa 276 00:10:47,960 --> 00:10:50,019 Lo que no puedes es tener dos funciones 277 00:10:50,019 --> 00:10:51,620 Con el mismo nombre 278 00:10:51,620 --> 00:10:53,639 Y lo mismo entre los paréntesis 279 00:10:53,639 --> 00:10:56,179 Porque entonces son indistinguibles para la máquina virtual 280 00:10:56,179 --> 00:10:58,379 Pero si cambias lo que hay en los paréntesis 281 00:10:58,379 --> 00:10:59,379 Ya son distinguibles 282 00:10:59,379 --> 00:11:00,899 ¿Vale? Por ejemplo 283 00:11:00,899 --> 00:11:03,360 Vamos a seguir jugando con esto 284 00:11:03,360 --> 00:11:05,399 Vamos a hacer otra versión de saludar 285 00:11:05,399 --> 00:11:07,899 ¿Vale? Y así aprovechamos para ver 286 00:11:07,899 --> 00:11:09,500 Qué es lo que 287 00:11:09,500 --> 00:11:11,779 Qué significa lo que hay aquí dentro 288 00:11:11,779 --> 00:11:13,899 ¿Vale? Bueno, lo que hemos hecho hasta aquí está claro 289 00:11:13,899 --> 00:11:14,080 ¿No? 290 00:11:14,080 --> 00:11:16,179 vale, entonces yo puedo 291 00:11:16,179 --> 00:11:18,059 llamar a saludar todas las veces que me dé la gana 292 00:11:18,059 --> 00:11:20,139 y desde cualquier lado, puedo 293 00:11:20,139 --> 00:11:22,080 estarme ahí llamando a saludar siempre que lo necesite 294 00:11:22,080 --> 00:11:24,120 entonces esa es la principal ventaja que 295 00:11:24,120 --> 00:11:26,019 vemos, que no tenemos que repetir ese código 296 00:11:26,019 --> 00:11:28,100 cada vez que queramos usarlo, porque aquí son 297 00:11:28,100 --> 00:11:30,299 tres líneas, pero si fueran 50 líneas 298 00:11:30,299 --> 00:11:32,120 ¿para qué voy a andar repitiendo 50 líneas? 299 00:11:32,200 --> 00:11:33,620 llamo al método, a la función 300 00:11:33,620 --> 00:11:36,019 llamo a la función y ya está, vale 301 00:11:36,019 --> 00:11:38,360 en Java, estos se llaman métodos 302 00:11:38,360 --> 00:11:39,759 vale, lo que pasa es que como 303 00:11:39,759 --> 00:11:41,960 eso es una nomenclatura de pronunciamiento de objetos 304 00:11:41,960 --> 00:11:44,220 ahora mismo estoy llamándolo a funciones 305 00:11:44,220 --> 00:11:45,240 porque eso suena más 306 00:11:45,240 --> 00:11:48,399 pero su nombre real en realidad serían 307 00:11:48,399 --> 00:11:50,500 métodos, pero bueno, lo voy a seguir llamando funciones 308 00:11:50,500 --> 00:11:52,440 mientras no veamos 309 00:11:52,440 --> 00:11:53,320 planificación de entrada de objetos 310 00:11:53,320 --> 00:11:56,379 vale, entonces la ventaja 311 00:11:56,379 --> 00:11:58,480 está clara, que yo lo llamo cuando quiera y no tengo que repetir 312 00:11:58,480 --> 00:11:59,460 el código una y otra vez 313 00:11:59,460 --> 00:12:02,539 bueno, pues venga, vamos a seguir 314 00:12:02,539 --> 00:12:03,679 incorporando cosas 315 00:12:03,679 --> 00:12:06,600 y estos paréntesis 316 00:12:06,600 --> 00:12:07,940 aquí, ¿para qué me sirven? 317 00:12:09,240 --> 00:12:10,340 bueno, esta función 318 00:12:10,340 --> 00:12:11,460 nuestra saludar 319 00:12:11,460 --> 00:12:13,919 es autónoma 320 00:12:13,919 --> 00:12:15,940 no necesita de nadie en la vida 321 00:12:15,940 --> 00:12:17,340 se lo guisa y se lo come todo 322 00:12:17,340 --> 00:12:20,179 pide el nombre, lo muestra por consola 323 00:12:20,179 --> 00:12:21,360 es absolutamente autónoma 324 00:12:21,360 --> 00:12:24,379 vale, pero puede ser que yo necesite 325 00:12:24,379 --> 00:12:25,700 o me interese una función 326 00:12:25,700 --> 00:12:28,100 que trabaje con unos datos que yo le paso 327 00:12:28,100 --> 00:12:30,159 con unos datos concretos 328 00:12:30,159 --> 00:12:32,059 es decir, que en lugar de solicitarlos 329 00:12:32,059 --> 00:12:34,179 ella por consola, en lugar de solicitarlos 330 00:12:34,179 --> 00:12:35,440 le digo, no, no, yo te los paso 331 00:12:35,440 --> 00:12:37,700 y tú trabaja con esos datos 332 00:12:37,700 --> 00:12:39,919 sería otra forma de plantearlos 333 00:12:39,919 --> 00:12:40,179 ¿no? 334 00:12:40,179 --> 00:12:51,919 Bueno, pues cuando le pasamos datos a una función para que trabaje con ellos, esos datos que le pasamos se los tenemos que indicar en esos paréntesis. 335 00:12:51,919 --> 00:12:54,340 vale, entonces por ejemplo 336 00:12:54,340 --> 00:12:56,120 vamos a hacer una versión 2 337 00:12:56,120 --> 00:12:58,200 de saludar, aquí abajo 338 00:12:58,200 --> 00:13:00,179 en la cual 339 00:13:00,179 --> 00:13:02,600 en lugar de encargarle a la función 340 00:13:02,600 --> 00:13:03,580 que pide el nombre 341 00:13:03,580 --> 00:13:06,179 vamos a pasárselo nosotros, decimos 342 00:13:06,179 --> 00:13:07,259 oye, saluda a este 343 00:13:07,259 --> 00:13:09,860 y yo te paso a quien tienes que saludar 344 00:13:09,860 --> 00:13:12,200 y tú le saludas, entonces es una función 345 00:13:12,200 --> 00:13:14,080 distinta, porque va a hacer otra cosa 346 00:13:14,080 --> 00:13:16,240 vale, entonces 347 00:13:16,240 --> 00:13:18,440 vamos a hacer ahora una función distinta 348 00:13:18,440 --> 00:13:23,580 a la que 349 00:13:23,580 --> 00:13:24,779 pasamos 350 00:13:24,779 --> 00:13:26,240 un nombre 351 00:13:26,240 --> 00:13:28,559 y saluda a ese nombre 352 00:13:28,559 --> 00:13:33,629 el nombre tiene que estar declarado en el main 353 00:13:33,629 --> 00:13:35,269 ahora lo vemos 354 00:13:35,269 --> 00:13:37,330 por ahora la función se hace 355 00:13:37,330 --> 00:13:39,909 trabaja de forma independiente y el desarrollador 356 00:13:39,909 --> 00:13:41,509 la hace y le da lo mismo el main 357 00:13:41,509 --> 00:13:43,870 luego ya el main tendrá que 358 00:13:43,870 --> 00:13:46,029 ahora ya sí saber cómo está hecha la función 359 00:13:46,029 --> 00:13:46,950 para poder llamarla 360 00:13:46,950 --> 00:13:49,110 pero lo primero que haces es la función 361 00:13:49,110 --> 00:13:51,909 yo voy a hacer una función a la que 362 00:13:51,909 --> 00:13:53,570 le paso un nombre 363 00:13:53,570 --> 00:13:55,909 y saluda a ese nombre 364 00:13:55,909 --> 00:13:58,450 Ese es un trabajo autónomo, independiente 365 00:13:58,450 --> 00:13:59,649 Lo hace un desarrollador por libre 366 00:13:59,649 --> 00:14:02,169 Ahora ya los main que la quieran llamar 367 00:14:02,169 --> 00:14:04,549 Ya que la llamen como puedan y quieran 368 00:14:04,549 --> 00:14:05,490 Y deban 369 00:14:05,490 --> 00:14:07,470 Pero yo mi trabajo es independiente 370 00:14:07,470 --> 00:14:09,889 Función que recibe un nombre y saluda ese nombre 371 00:14:09,889 --> 00:14:12,070 Vale, pues vamos a llamarla 372 00:14:12,070 --> 00:14:13,590 De otra forma distinta 373 00:14:13,590 --> 00:14:16,190 Aunque luego veremos que aunque la llame igual no va a pasar nada 374 00:14:16,190 --> 00:14:18,490 Porque cambian los parámetros 375 00:14:18,490 --> 00:14:19,909 Pero vamos a olvidarnos por ahora 376 00:14:19,909 --> 00:14:21,169 Vamos a llamarla de una manera distinta 377 00:14:21,169 --> 00:14:24,450 Vamos a saludar 378 00:14:24,450 --> 00:14:27,309 Versión 2 379 00:14:27,309 --> 00:14:30,909 Vale, esta sigue 380 00:14:30,909 --> 00:14:32,429 Teniendo el void 381 00:14:32,429 --> 00:14:35,309 Porque no construye nada ni nos devuelve nada 382 00:14:35,309 --> 00:14:36,929 Lo muestra por consola 383 00:14:36,929 --> 00:14:39,029 Lo muestra por consola 384 00:14:39,029 --> 00:14:41,850 Entonces, y static porque la vamos a llamar 385 00:14:41,850 --> 00:14:42,389 Desde el main 386 00:14:42,389 --> 00:14:45,269 Vale, pero aquí ya 387 00:14:45,269 --> 00:14:46,529 Pasan cosas 388 00:14:46,529 --> 00:14:49,549 Que aquí ya el programador que hace esto 389 00:14:49,549 --> 00:14:50,549 Dice, espérate 390 00:14:50,549 --> 00:14:53,509 Que esta función mía va a recibir un dato 391 00:14:53,509 --> 00:14:54,850 Uno 392 00:14:54,850 --> 00:14:57,309 Vale, pues entonces pensamos 393 00:14:57,309 --> 00:14:58,250 ¿Qué dato va a ser? 394 00:14:58,789 --> 00:15:01,690 Un nombre, luego ¿Qué tipo de dato es? 395 00:15:02,429 --> 00:15:03,830 Lo primero que tenemos que pensar 396 00:15:03,830 --> 00:15:06,029 Es el tipo de dato que voy a recibir 397 00:15:06,029 --> 00:15:08,190 Un nombre, luego un string 398 00:15:08,190 --> 00:15:10,090 Bueno, pues entonces aquí 399 00:15:10,090 --> 00:15:11,750 Ponemos lo que pondríamos 400 00:15:11,750 --> 00:15:13,850 Como si declaráramos una variable string 401 00:15:13,850 --> 00:15:14,789 Lo mismo 402 00:15:14,789 --> 00:15:17,309 String y 403 00:15:17,309 --> 00:15:19,870 Un nombre de variable, el que a mí me dé la gana 404 00:15:19,870 --> 00:15:21,929 Entonces 405 00:15:21,929 --> 00:15:23,070 ¿Con esto qué estoy diciendo? 406 00:15:23,070 --> 00:15:25,470 que a esta función 407 00:15:25,470 --> 00:15:27,409 cuando se la llame, que todavía 408 00:15:27,409 --> 00:15:29,370 no se la está llamando, ahora mismo 409 00:15:29,370 --> 00:15:31,070 estamos diciendo lo que va a hacer 410 00:15:31,070 --> 00:15:32,289 cuando sea llamada. 411 00:15:33,490 --> 00:15:34,950 Sí, luego, claro, 412 00:15:35,309 --> 00:15:36,850 cuando la llamemos ya veremos qué le pones. 413 00:15:37,330 --> 00:15:38,750 Aquí lo que estamos diciendo es, oye, 414 00:15:39,350 --> 00:15:41,070 cuando alguien llame a esta función 415 00:15:41,070 --> 00:15:43,509 me va a tener que pasar como dato 416 00:15:43,509 --> 00:15:44,889 un string. 417 00:15:45,649 --> 00:15:46,750 Eso es lo que estamos diciendo. 418 00:15:47,289 --> 00:15:49,269 Luego esta función recibe un dato que es 419 00:15:49,269 --> 00:15:51,250 un string y lo indicamos de esta 420 00:15:51,250 --> 00:15:51,570 manera. 421 00:15:53,070 --> 00:15:55,149 Y podría recibir muchos más datos. 422 00:15:55,250 --> 00:15:56,950 Las funciones pueden recibir todos los datos que uno quiera. 423 00:15:57,389 --> 00:15:58,690 Los pongo separados por comas. 424 00:16:00,309 --> 00:16:02,710 Sí, luego cuando se llame hay que... 425 00:16:02,710 --> 00:16:07,289 Por ejemplo, si a esta función quisiéramos pasarle, luego lo hacemos en otra, 426 00:16:07,429 --> 00:16:12,690 un nombre y un número entero para que haga algo, para que te salude siete veces, por ejemplo, 427 00:16:13,710 --> 00:16:16,789 pues le podríamos hacer esto. 428 00:16:17,730 --> 00:16:19,169 Luego hacemos esa otra versión. 429 00:16:19,169 --> 00:16:22,049 Entonces esta función recibe dos datos. 430 00:16:23,070 --> 00:16:24,909 una cadena, un string 431 00:16:24,909 --> 00:16:26,330 y un número entero. 432 00:16:27,190 --> 00:16:28,669 Pero en este caso vamos a hacer 433 00:16:28,669 --> 00:16:30,990 una función que recibe 434 00:16:30,990 --> 00:16:32,909 solo un dato, una cadena. 435 00:16:35,590 --> 00:16:37,190 Entonces ahora esta función 436 00:16:37,190 --> 00:16:39,090 hará todo lo que tenga 437 00:16:39,090 --> 00:16:40,889 que hacer y además de trabajar con 438 00:16:40,889 --> 00:16:42,809 sus propias variables, las que se declare ella 439 00:16:42,809 --> 00:16:45,250 adentro, con lo que pida por consola, 440 00:16:45,370 --> 00:16:46,809 con lo que sea que le haga falta, 441 00:16:47,490 --> 00:16:48,889 además de eso puede trabajar 442 00:16:48,889 --> 00:16:50,549 directamente con este dato. 443 00:16:50,909 --> 00:16:52,629 Sin necesidad de declararlo de nuevo ni nada, 444 00:16:52,629 --> 00:16:53,850 porque ya está declarado ahí. 445 00:16:54,730 --> 00:16:56,190 Entonces, esta función, ¿qué es lo que haría? 446 00:16:56,269 --> 00:16:58,370 Pues en este caso, como lo único que va a hacer es saludar, 447 00:16:59,350 --> 00:17:00,769 pues haría hola 448 00:17:00,769 --> 00:17:02,549 y aquí 449 00:17:02,549 --> 00:17:03,450 pondría esto. 450 00:17:06,369 --> 00:17:10,559 Y ya está. Entonces, la función 451 00:17:10,559 --> 00:17:12,740 ya puede 452 00:17:12,740 --> 00:17:13,900 trabajar directamente 453 00:17:13,900 --> 00:17:15,859 con 454 00:17:15,859 --> 00:17:18,440 el dato que le estamos pasando. No tiene que 455 00:17:18,440 --> 00:17:20,359 declararlo de nuevo ni nada porque esto 456 00:17:20,359 --> 00:17:21,579 ya es una declaración. 457 00:17:21,579 --> 00:17:23,220 Si ahora ejecutas esta clase, 458 00:17:23,380 --> 00:17:25,119 solo te va a ejecutar lo del mail, ¿no? 459 00:17:25,119 --> 00:17:26,279 Lo de fuera está afuera y... 460 00:17:26,279 --> 00:17:26,859 No, no, no, claro. 461 00:17:26,960 --> 00:17:28,880 Lo único que se ejecuta es lo que haya en el main. 462 00:17:29,019 --> 00:17:30,799 Luego ya el main llamará lo que desea. 463 00:17:31,180 --> 00:17:36,779 ¿Estas funciones? 464 00:17:39,539 --> 00:17:39,900 Sí. 465 00:17:41,970 --> 00:17:44,049 Lo puedes empaquetar en un Jara e importarlo. 466 00:17:44,170 --> 00:17:45,029 También lo haremos, ¿vale? 467 00:17:54,589 --> 00:17:56,109 Vale, pues el dato de entrada, 468 00:17:56,829 --> 00:17:57,769 el dato de entrada, 469 00:17:58,490 --> 00:18:01,490 esto es lo que se llama parámetro, ¿vale? 470 00:18:01,490 --> 00:18:09,559 Vale, luego esta función tiene un parámetro, 471 00:18:10,039 --> 00:18:11,539 que es una cadena, un string. 472 00:18:11,660 --> 00:18:12,359 Tiene un parámetro, 473 00:18:12,940 --> 00:18:15,140 pero podría tener varios, ¿vale? 474 00:18:15,140 --> 00:18:34,720 Luego los parámetros son los datos de entrada que le pasamos a la función y tenemos que declarar su tipo aquí, ¿vale? Luego repito, aquí no estamos ejecutando nada, no estamos haciendo nada, aquí estamos haciendo una declaración de cuando esta función sea llamada, ¿qué es lo que va a hacer? 475 00:18:34,720 --> 00:18:37,680 Pues aquí estamos diciendo 476 00:18:37,680 --> 00:18:39,599 Oye, cuando esta función sea llamada 477 00:18:39,599 --> 00:18:42,859 Va a recibir un dato de cadena 478 00:18:42,859 --> 00:18:46,000 Ese dato lo va a concatenar con hola 479 00:18:46,000 --> 00:18:46,839 Lo va a mostrar 480 00:18:46,839 --> 00:18:48,920 Eso es lo que estamos diciendo 481 00:18:48,920 --> 00:18:50,859 Lo que va a hacer esta función cuando sea llamada 482 00:18:50,859 --> 00:18:52,460 Y esta en particular 483 00:18:52,460 --> 00:18:54,519 Va a recibir un parámetro 484 00:18:54,519 --> 00:18:57,240 Y yo aquí a ese parámetro 485 00:18:57,240 --> 00:18:58,859 Le llamo como me dé la gana 486 00:18:58,859 --> 00:19:00,019 Claro 487 00:19:00,019 --> 00:19:01,880 Le llamo como me dé la gana 488 00:19:01,880 --> 00:19:04,339 Lo único que tengo que poner bien y acordarme 489 00:19:04,339 --> 00:19:07,240 es de poner el tipo de dato 490 00:19:07,240 --> 00:19:09,339 correcto, poner el tipo de dato correcto 491 00:19:09,339 --> 00:19:09,779 stream 492 00:19:09,779 --> 00:19:13,440 vale, entonces ahora vamos a saludar 493 00:19:13,440 --> 00:19:14,519 con esta segunda función 494 00:19:14,519 --> 00:19:17,079 vale, pues entonces 495 00:19:17,079 --> 00:19:19,299 nos vamos a nuestro main, si quisiéramos 496 00:19:19,299 --> 00:19:20,519 usar esta segunda función 497 00:19:20,519 --> 00:19:22,579 aquí ya hay que pasarle el nombre 498 00:19:22,579 --> 00:19:24,259 pues entonces aquí 499 00:19:24,259 --> 00:19:30,839 vamos a leer el nombre desde el main, porque eso lo tenemos 500 00:19:30,839 --> 00:19:31,519 que pasar 501 00:19:31,519 --> 00:19:40,140 si es lo que iba a hacer, llamarlo de otra manera 502 00:19:40,140 --> 00:19:41,920 para que quedara claro que no tiene que llamarse igual. 503 00:19:43,460 --> 00:19:45,339 Vale, arrancamos programa. 504 00:19:45,460 --> 00:19:47,259 Aquí hemos llamado a saludar una vez. 505 00:19:48,359 --> 00:19:54,039 Y ahora vamos a introduzca un nombrecito. 506 00:19:59,880 --> 00:20:04,700 Vamos a guardar el nombre que nos han introducido. 507 00:20:08,579 --> 00:20:11,839 Vale, y ahora queremos que nos saluden a este nombre. 508 00:20:12,240 --> 00:20:13,619 Queremos que nos saluden a este nombre. 509 00:20:14,339 --> 00:20:15,779 Tenemos una función que lo hace. 510 00:20:15,779 --> 00:20:17,980 tenemos una función a la que si yo le paso 511 00:20:17,980 --> 00:20:19,619 un parámetro cadena 512 00:20:19,619 --> 00:20:21,180 un parámetro nombre, nos lo hace 513 00:20:21,180 --> 00:20:22,759 pues vamos a llamarla 514 00:20:22,759 --> 00:20:25,380 a una función como la llamamos, como siempre 515 00:20:25,380 --> 00:20:27,359 con su nombre, saludar 516 00:20:27,359 --> 00:20:28,819 versión 2 517 00:20:28,819 --> 00:20:31,339 y ahora, ahora ya 518 00:20:31,339 --> 00:20:33,339 sí que si yo le paso 519 00:20:33,339 --> 00:20:35,380 los paréntesis vacíos, el compilador me va a decir 520 00:20:35,380 --> 00:20:37,539 eh, que saludar 521 00:20:37,539 --> 00:20:39,519 necesita obligatoriamente 522 00:20:39,519 --> 00:20:41,200 que le pases un dato de entrada 523 00:20:41,200 --> 00:20:43,539 y que sea cadena, es lo que te está diciendo 524 00:20:43,539 --> 00:20:44,819 porque está aquí declarado 525 00:20:44,819 --> 00:20:47,500 necesita un dato de entrada que sea cadena 526 00:20:47,500 --> 00:20:48,359 tienes que pasárselo 527 00:20:48,359 --> 00:20:54,859 el propio compilador te lo dice 528 00:20:54,859 --> 00:20:58,900 claro, si tú 529 00:20:58,900 --> 00:21:00,599 compilaras esto con la consola 530 00:21:00,599 --> 00:21:03,160 ya sabéis que ese mensaje es el que te saldría a la consola 531 00:21:03,160 --> 00:21:05,460 entonces claro, la máquina, el compilador 532 00:21:05,460 --> 00:21:08,220 cuando ve que tú llamas aquí a saludar V2 533 00:21:08,220 --> 00:21:10,500 se va a buscar saludar V2 534 00:21:10,500 --> 00:21:13,160 ve que tiene esto y te dice 535 00:21:13,160 --> 00:21:15,160 te dice, oye, que saludo al v2, tiene ahí 536 00:21:15,160 --> 00:21:17,279 un string. Entonces 537 00:21:17,279 --> 00:21:19,359 te dice, oye, perdona, pero le tienes 538 00:21:19,359 --> 00:21:21,200 que pasar ahí ya un 539 00:21:21,200 --> 00:21:23,220 valor concreto. Entonces, ahí 540 00:21:23,220 --> 00:21:25,220 ya es el momento, aquí ya estamos ejecutando. 541 00:21:25,740 --> 00:21:27,140 No es como aquí, que aquí estamos 542 00:21:27,140 --> 00:21:29,180 declarando que es lo que esa función va a ser cuando 543 00:21:29,180 --> 00:21:30,980 se la llame, pero nadie la ha llamado, no hay nada 544 00:21:30,980 --> 00:21:33,160 ejecutándose. Cuando ya se están 545 00:21:33,160 --> 00:21:35,180 ejecutando cosas, es a partir de aquí. 546 00:21:35,880 --> 00:21:37,000 Aquí ya sí se están ejecutando. 547 00:21:38,099 --> 00:21:38,980 Claro, pues aquí 548 00:21:38,980 --> 00:21:41,099 hay que darle ya un valor 549 00:21:41,099 --> 00:21:42,519 concreto para ese parámetro. 550 00:21:43,160 --> 00:21:44,720 ¿Cuál? El que nos dé la gana. 551 00:21:45,339 --> 00:21:47,559 Yo le podría pasar esto, y estupendo, 552 00:21:47,720 --> 00:21:49,619 saludaría a este, porque es un string. 553 00:21:50,220 --> 00:21:51,880 Le podría pasar esto. 554 00:21:52,799 --> 00:21:54,680 Yo ya le paso un valor concreto, el que quiera, 555 00:21:55,259 --> 00:21:56,640 siempre y cuando sea un string. 556 00:22:01,220 --> 00:22:03,819 En la llamada ya pasamos un valor concreto, 557 00:22:03,920 --> 00:22:05,039 porque ya estamos ejecutando. 558 00:22:12,680 --> 00:22:15,980 Entonces, ese valor, repito, puede ser cualquiera. 559 00:22:16,160 --> 00:22:19,700 La única restricción es que tiene que ser un dato string, 560 00:22:20,099 --> 00:22:22,240 porque aquí la función te dice, 561 00:22:22,240 --> 00:22:25,160 oye string, pásame lo que quieras 562 00:22:25,160 --> 00:22:27,019 el nombre que te dé la gana 563 00:22:27,019 --> 00:22:28,940 pero tiene que ser 564 00:22:28,940 --> 00:22:32,059 string, y como veis 565 00:22:32,059 --> 00:22:33,440 si yo se lo paso en una variable 566 00:22:33,440 --> 00:22:36,160 como veis, esta variable 567 00:22:36,160 --> 00:22:37,480 se puede llamar como le dé la gana 568 00:22:37,480 --> 00:22:40,160 no se tiene por qué 569 00:22:40,160 --> 00:22:42,220 llamar, perdón, como yo 570 00:22:42,220 --> 00:22:42,920 le he dado aquí 571 00:22:42,920 --> 00:22:46,339 porque esto y el main no se hablan 572 00:22:46,339 --> 00:22:48,079 ni se miran, esta función va por libre 573 00:22:48,079 --> 00:22:49,440 esta función lo que dice es 574 00:22:49,440 --> 00:22:51,180 tú pásame un string 575 00:22:51,180 --> 00:22:54,519 yo le voy a llamar 576 00:22:54,519 --> 00:22:56,359 nom para mí, para mí se va a llamar 577 00:22:56,359 --> 00:22:58,240 nom para luego aquí ya trabajar con él 578 00:22:58,240 --> 00:23:00,240 pero tú pásame el string que te dé la gana 579 00:23:00,240 --> 00:23:02,420 tú pásame el string que te dé la gana 580 00:23:02,420 --> 00:23:04,279 yo le llamaré nom para aquí 581 00:23:04,279 --> 00:23:05,900 ya operar y hacer con él lo que quiera 582 00:23:05,900 --> 00:23:08,599 y tú le pasas el string que te dé la gana 583 00:23:08,599 --> 00:23:10,259 en una variable 584 00:23:10,259 --> 00:23:12,420 directamente, lo que quieras 585 00:23:12,420 --> 00:23:13,819 con que sea un string es suficiente 586 00:23:13,819 --> 00:23:15,640 y ahora ya esta función 587 00:23:15,640 --> 00:23:18,420 pues trabajará con este string 588 00:23:18,420 --> 00:23:19,160 que le hemos pasado 589 00:23:19,160 --> 00:23:22,140 cuando saltamos aquí, cuando la máquina virtual 590 00:23:22,140 --> 00:23:24,339 salta aquí, ese string 591 00:23:24,339 --> 00:23:25,279 que hemos pasado 592 00:23:25,279 --> 00:23:28,380 recibe ese nombre 593 00:23:28,380 --> 00:23:29,900 y ya 594 00:23:29,900 --> 00:23:32,359 aquí, pues, ese string 595 00:23:32,359 --> 00:23:33,640 que hemos pasado con ese nombre 596 00:23:33,640 --> 00:23:35,740 ya se trabajará con él como sea 597 00:23:35,740 --> 00:23:40,539 vale 598 00:23:40,539 --> 00:23:46,220 si, ahora sí 599 00:23:46,220 --> 00:23:47,559 ahora este main que hemos hecho 600 00:23:47,559 --> 00:23:48,920 llama a este y luego llama a la otra 601 00:23:48,920 --> 00:23:49,700 entonces 602 00:23:49,700 --> 00:23:55,779 Claro 603 00:23:55,779 --> 00:23:58,240 O la gente introduzca su nombre 604 00:23:58,240 --> 00:24:02,599 Es que no se declara en ambas 605 00:24:02,599 --> 00:24:05,039 Porque como veis está en bloques distintos 606 00:24:05,039 --> 00:24:06,779 Claro 607 00:24:06,779 --> 00:24:07,720 Este es un bloque 608 00:24:07,720 --> 00:24:10,579 Este string solo es visible 609 00:24:10,579 --> 00:24:12,240 Este string nombre solo es visible 610 00:24:12,240 --> 00:24:14,279 En este bloque, solo existe aquí dentro 611 00:24:14,279 --> 00:24:16,819 Claro, solo existe ahí 612 00:24:16,819 --> 00:24:18,259 Y cuando esta función 613 00:24:18,259 --> 00:24:19,539 Termina 614 00:24:19,539 --> 00:24:21,900 es decir, cuando saludar ha terminado 615 00:24:21,900 --> 00:24:23,980 ahí no hay ningún string nombre 616 00:24:23,980 --> 00:24:25,880 ni hay nada, todo esto está enmascarado 617 00:24:25,880 --> 00:24:27,640 aquí dentro, todo esto está enmascarado 618 00:24:27,640 --> 00:24:30,059 luego aquí yo he podido declarar un string nombre 619 00:24:30,059 --> 00:24:32,059 tranquilamente, porque estoy fuera 620 00:24:32,059 --> 00:24:33,240 del ámbito de esta función 621 00:24:33,240 --> 00:24:39,799 claro, es que aunque lo devolviera 622 00:24:39,799 --> 00:24:41,220 tú lo guardas en donde quieras 623 00:24:41,220 --> 00:24:43,740 entonces cuando tú llamas a la función ya te ha sido 624 00:24:43,740 --> 00:24:45,720 el ámbito de la función y ahí manda 625 00:24:45,720 --> 00:24:47,579 las variables de la función y luego 626 00:24:47,579 --> 00:24:49,759 los parámetros, cuando hemos saltado aquí 627 00:24:49,759 --> 00:24:51,640 en saludar, hemos saltado aquí 628 00:24:51,640 --> 00:24:53,700 durante el tiempo que esto 629 00:24:53,700 --> 00:24:55,480 se está ejecutando, ahí solamente 630 00:24:55,480 --> 00:24:57,259 es visible, solo es visible 631 00:24:57,259 --> 00:24:59,640 lo que esté declarado aquí dentro 632 00:24:59,640 --> 00:25:01,720 y lo que hemos pasado por parámetros 633 00:25:01,720 --> 00:25:03,640 y hemos pasado algo, ya no hay nada 634 00:25:03,640 --> 00:25:05,500 más visible, del programa principal no hay nada 635 00:25:05,500 --> 00:25:07,740 es decir, no es como exactamente 636 00:25:07,740 --> 00:25:09,559 como el caso de los for, porque 637 00:25:09,559 --> 00:25:11,240 en los for tú el bloque lo tenías 638 00:25:11,240 --> 00:25:13,519 dentro del main, luego desde dentro 639 00:25:13,519 --> 00:25:15,420 del for podías acceder a las variables 640 00:25:15,420 --> 00:25:17,660 que estaban en el main, desde el main 641 00:25:17,660 --> 00:25:19,559 no a las del for, claro, porque eran internas 642 00:25:19,559 --> 00:25:20,940 pero desde el for sí, pero aquí no 643 00:25:20,940 --> 00:25:23,480 es que aquí son bloques absolutamente 644 00:25:23,480 --> 00:25:25,380 independientes, entonces desde dentro 645 00:25:25,380 --> 00:25:27,420 de este código, tú no 646 00:25:27,420 --> 00:25:29,420 tienes acceso a ninguna de las 647 00:25:29,420 --> 00:25:31,680 variables que están declaradas en el main, a ninguna 648 00:25:31,680 --> 00:25:33,500 y desde dentro 649 00:25:33,500 --> 00:25:35,539 del main no tienes acceso a ninguna 650 00:25:35,539 --> 00:25:37,440 de las variables que están aquí dentro, a ninguna 651 00:25:37,440 --> 00:25:39,539 ¿cuál es la comunicación 652 00:25:39,539 --> 00:25:40,720 entre el main y la función? 653 00:25:41,880 --> 00:25:42,779 exclusivamente esta 654 00:25:42,779 --> 00:25:45,339 los parámetros, si tú necesitas 655 00:25:45,339 --> 00:25:47,460 que compartan información, se la tienes que pasar 656 00:25:47,460 --> 00:25:48,059 por parámetro 657 00:25:48,059 --> 00:25:50,039 como hemos hecho aquí 658 00:25:50,039 --> 00:25:52,180 yo necesito que este método 659 00:25:52,180 --> 00:25:54,099 trabaje con el nombre que he leído 660 00:25:54,099 --> 00:25:55,119 aquí, lo necesito 661 00:25:55,119 --> 00:25:57,660 se lo tengo que pasar por parámetro 662 00:25:57,660 --> 00:26:00,019 porque desde aquí nunca jamás voy a poder 663 00:26:00,019 --> 00:26:01,839 acceder a esta variable 664 00:26:01,839 --> 00:26:04,200 del main, porque es una función 665 00:26:04,200 --> 00:26:05,960 aparte, son independientes, no tienen nada que ver 666 00:26:05,960 --> 00:26:08,039 entonces si quiero que una 667 00:26:08,039 --> 00:26:09,819 función tenga algo del main 668 00:26:09,819 --> 00:26:12,180 para trabajar, se lo tengo que pasar 669 00:26:12,180 --> 00:26:13,299 por aquí 670 00:26:13,299 --> 00:26:16,019 mediante el paso de parámetros, lo tengo que pasar 671 00:26:16,019 --> 00:26:18,099 por ahí, como ha sido el caso. 672 00:26:18,660 --> 00:26:21,559 ¿Vale? Bueno, pues 673 00:26:21,559 --> 00:26:23,640 esto es muy importante realmente, 674 00:26:23,779 --> 00:26:25,279 entender esto. Es 675 00:26:25,279 --> 00:26:30,299 fundamental. ¿Vale? 676 00:26:30,960 --> 00:26:32,259 Es, efectivamente. Entonces, 677 00:26:32,380 --> 00:26:34,240 aquí tengo dos funciones distintas, dos funciones 678 00:26:34,240 --> 00:26:35,220 fundamentalmente distintas. 679 00:26:36,799 --> 00:26:37,799 Podría, de hecho, 680 00:26:38,460 --> 00:26:40,259 darles el mismo nombre si me da la 681 00:26:40,259 --> 00:26:42,180 gana, porque 682 00:26:42,180 --> 00:26:43,640 ya son distintas 683 00:26:43,640 --> 00:26:46,539 por el parámetro que reciben. 684 00:26:47,460 --> 00:26:48,319 Es decir, si yo 685 00:26:48,319 --> 00:26:49,359 a esta le cambio el nombre 686 00:26:49,359 --> 00:26:51,279 y la llamo así 687 00:26:51,279 --> 00:26:53,559 como veis el compilador 688 00:26:53,559 --> 00:26:55,500 no se queja, no me dice, uy has repetido 689 00:26:55,500 --> 00:26:57,700 saludar, encanta de la vida 690 00:26:57,700 --> 00:26:58,519 no se queja 691 00:26:58,519 --> 00:27:00,259 y 692 00:27:00,259 --> 00:27:02,940 yo la tendría que llamar aquí con su nombre 693 00:27:02,940 --> 00:27:05,759 claro, entonces aquí uno me podría decir 694 00:27:05,759 --> 00:27:07,759 uy, estás llamando a la misma 695 00:27:07,759 --> 00:27:08,960 no 696 00:27:08,960 --> 00:27:10,759 no estamos llamando a la misma 697 00:27:10,759 --> 00:27:13,720 aquí la máquina virtual cuando llega 698 00:27:13,720 --> 00:27:15,940 dice, a ver, estás llamando a una función 699 00:27:15,940 --> 00:27:16,759 saludar 700 00:27:16,759 --> 00:27:18,960 que no quiere parámetros 701 00:27:18,960 --> 00:27:21,759 pues no hay ninguna duda, tiene que ser la primera 702 00:27:21,759 --> 00:27:23,799 no hay ninguna duda, tiene que ser esta 703 00:27:23,799 --> 00:27:25,660 sin embargo, cuando 704 00:27:25,660 --> 00:27:27,519 luego la máquina virtual llega aquí abajo 705 00:27:27,519 --> 00:27:29,559 dice, a ver, ahora me estás llamando a una 706 00:27:29,559 --> 00:27:31,579 función que quiere un 707 00:27:31,579 --> 00:27:32,940 string, voy a buscar 708 00:27:32,940 --> 00:27:35,759 ah, pues es esta, porque esta es la que quiere un string 709 00:27:35,759 --> 00:27:37,519 luego no hay duda, este 710 00:27:37,519 --> 00:27:39,660 saludar y este saludar son distintos 711 00:27:39,660 --> 00:27:41,640 se han podido 712 00:27:41,640 --> 00:27:43,079 distinguir por esto 713 00:27:43,079 --> 00:27:45,180 si no, no se podrían distinguir 714 00:27:45,180 --> 00:27:47,640 vale, pues esto es lo que 715 00:27:47,640 --> 00:27:49,559 se llama sobrecarga 716 00:27:49,559 --> 00:27:51,559 de funciones. Sobrecarga significa 717 00:27:51,559 --> 00:27:53,900 a un único nombre, sobrecargarlo 718 00:27:53,900 --> 00:27:55,019 dándole muchas funciones. 719 00:27:56,140 --> 00:27:57,720 Vale, aquí saludar 720 00:27:57,720 --> 00:27:59,460 esta sobrecargada, porque 721 00:27:59,460 --> 00:28:01,440 puede hacer esto, si no le das parámetro. 722 00:28:02,220 --> 00:28:03,799 Puede hacer esto a otros, le das parámetro. 723 00:28:04,000 --> 00:28:05,420 Son dos funciones distintas. 724 00:28:05,680 --> 00:28:07,279 ¿Se intenta evitar o se hace? 725 00:28:07,359 --> 00:28:09,259 No, no, no, no, no. Se hace. 726 00:28:09,259 --> 00:28:10,140 Es totalmente correcto. 727 00:28:10,960 --> 00:28:13,559 Perfectamente correcto, porque tú una misma funcionalidad 728 00:28:13,559 --> 00:28:15,240 puedes querer hacerla 729 00:28:15,240 --> 00:28:17,180 de diferentes maneras en función de datos 730 00:28:17,180 --> 00:28:19,180 de entrada, entonces ahí lo natural es 731 00:28:19,180 --> 00:28:21,059 que la llames igual, para que quede claro 732 00:28:21,059 --> 00:28:23,539 que estás haciendo lo mismo, pero diferentes versiones 733 00:28:23,539 --> 00:28:25,079 entonces se hace continuamente 734 00:28:25,079 --> 00:28:26,759 toda la arquitectura de clases de Java 735 00:28:26,759 --> 00:28:29,279 está sobrecargada precisamente para que quede más clara 736 00:28:29,279 --> 00:28:31,140 todas las clases de la máquina virtual 737 00:28:31,140 --> 00:28:32,980 todo, claro 738 00:28:32,980 --> 00:28:35,339 cuando tú lees del teclado 739 00:28:35,339 --> 00:28:35,720 por ejemplo 740 00:28:35,720 --> 00:28:41,400 claro, por ejemplo 741 00:28:41,400 --> 00:28:42,779 en System.out.println 742 00:28:42,779 --> 00:28:44,259 nosotros la hemos usado así 743 00:28:44,259 --> 00:28:46,579 y la hemos usado así. 744 00:28:48,339 --> 00:28:48,779 ¿Vale? 745 00:28:48,980 --> 00:28:50,279 Y las dos nos ha dejado. 746 00:28:51,099 --> 00:28:53,000 Entonces son dos println distintos. 747 00:28:53,319 --> 00:28:54,900 Aquí cuando llamamos a println estamos llamando 748 00:28:54,900 --> 00:28:57,039 a una función en realidad. Son distintas. 749 00:28:57,359 --> 00:28:59,039 Aquí la máquina virtual dice, ah, me estás 750 00:28:59,039 --> 00:29:01,160 llamando al que necesita un string. 751 00:29:01,819 --> 00:29:03,059 Vale, pues yo voy al println 752 00:29:03,059 --> 00:29:04,819 y le doy un string, lo cojo, muestro. 753 00:29:05,259 --> 00:29:06,720 Ah, aquí me estás llamando al que no necesita. 754 00:29:07,299 --> 00:29:09,000 Estos son dos funciones distintas. 755 00:29:10,240 --> 00:29:10,720 ¿Vale? 756 00:29:11,480 --> 00:29:13,059 Pero como se 757 00:29:13,059 --> 00:29:15,099 llaman igual, nos facilita a nosotros 758 00:29:15,099 --> 00:29:16,819 la tarea, porque la llamamos igual 759 00:29:16,819 --> 00:29:18,740 la llamamos igual y ya está 760 00:29:18,740 --> 00:29:20,980 si no hubiera la opción de sobrecarga 761 00:29:20,980 --> 00:29:23,000 habría 200.000 nombres diferentes 762 00:29:23,000 --> 00:29:24,420 de funciones y sería un rollo 763 00:29:24,420 --> 00:29:27,460 entonces la sobrecarga 764 00:29:27,460 --> 00:29:28,960 nos facilita las cosas, no tenemos que 765 00:29:28,960 --> 00:29:31,119 buscar un nombre diferente para cada versión 766 00:29:31,119 --> 00:29:32,460 ¿vale? 767 00:29:35,150 --> 00:29:38,630 vale, y 768 00:29:38,630 --> 00:29:40,690 si ahora quisiéramos, voy a hacer una 769 00:29:40,690 --> 00:29:42,150 función que me salude porque 770 00:29:42,150 --> 00:29:44,410 las veces que a mí me dé la gana 771 00:29:44,410 --> 00:29:46,930 las veces que yo quiera, quiero que me salude 772 00:29:46,930 --> 00:29:48,950 las veces que yo le diga, oye, me vas a saludar 773 00:29:48,950 --> 00:29:49,990 27 veces 774 00:29:49,990 --> 00:29:52,829 venga, pues otra versión más de saludar 775 00:29:52,829 --> 00:29:55,069 otra versión más de saludar 776 00:29:55,069 --> 00:29:56,930 claro 777 00:29:56,930 --> 00:29:59,150 pero ahora, esta versión 778 00:29:59,150 --> 00:30:01,069 de saludar, veis 779 00:30:01,069 --> 00:30:02,849 aquí si yo le pongo el mismo parámetro 780 00:30:02,849 --> 00:30:04,309 me va a decir, oye, no puedes 781 00:30:04,309 --> 00:30:06,710 perdona, tienes dos funciones iguales 782 00:30:06,710 --> 00:30:08,950 aquí sí que no le gusta, porque tienes dos funciones 783 00:30:08,950 --> 00:30:11,029 iguales, le digo, oye 784 00:30:11,029 --> 00:30:12,029 no, pero es que es otra 785 00:30:12,029 --> 00:30:14,509 quiero que me saludes por el nombre 786 00:30:14,509 --> 00:30:16,410 que yo te diga y quiero 787 00:30:16,410 --> 00:30:18,529 que me saludes las veces 788 00:30:18,529 --> 00:30:20,490 que yo te diga, pues necesito 789 00:30:20,490 --> 00:30:22,509 un parámetro adicional, quiero que me saludes las que 790 00:30:22,509 --> 00:30:24,609 yo te diga, pues entonces necesitamos 791 00:30:24,609 --> 00:30:26,529 dos parámetros separados por comas 792 00:30:26,529 --> 00:30:27,710 cada uno con su tipo de datos 793 00:30:27,710 --> 00:30:29,470 ahora ya 794 00:30:29,470 --> 00:30:32,450 pues bueno, ahora ya uno hace la 795 00:30:32,450 --> 00:30:33,690 función como le dé la gana 796 00:30:33,690 --> 00:30:42,019 ¿vale? esta función es 797 00:30:42,019 --> 00:30:42,759 otra versión 798 00:30:42,759 --> 00:30:46,099 que nos saluda 799 00:30:46,099 --> 00:30:47,380 Todas las veces que 800 00:30:47,380 --> 00:30:49,460 Nosotros queramos 801 00:30:49,460 --> 00:30:51,319 Tiene dos datos de entrada 802 00:30:51,319 --> 00:30:53,880 Y como veis la función se hace por libres 803 00:30:53,880 --> 00:30:54,900 Independientemente del main 804 00:30:54,900 --> 00:30:56,559 La función tiene unos requisitos 805 00:30:56,559 --> 00:30:57,880 Función que haces 806 00:30:57,880 --> 00:31:00,680 Pues tú haces la función y ya está 807 00:31:00,680 --> 00:31:03,599 Y luego ya el main la usará 808 00:31:03,599 --> 00:31:06,420 Vale, pues ya tenemos esta otra versión 809 00:31:06,420 --> 00:31:09,680 Venga, pues vamos a decirle ahora 810 00:31:09,680 --> 00:31:10,640 Que nos salude 811 00:31:10,640 --> 00:31:12,839 27 veces 812 00:31:12,839 --> 00:31:17,880 Pues venga, ya está 813 00:31:17,880 --> 00:31:22,140 Ahora ya nos va a saludar 27 veces 814 00:31:22,140 --> 00:31:25,119 Entonces, como veis 815 00:31:25,119 --> 00:31:26,900 En el momento de la llamada 816 00:31:26,900 --> 00:31:30,380 Tenemos que pasar tantos datos de entrada 817 00:31:30,380 --> 00:31:32,960 Como la función tenga declarados 818 00:31:32,960 --> 00:31:37,900 Entonces, como necesita un string y un int 819 00:31:37,900 --> 00:31:40,980 Yo le tengo que pasar un string y un int 820 00:31:40,980 --> 00:31:44,000 ¿Vale? Un string y un int 821 00:31:44,000 --> 00:31:49,849 Y ahí ya sí que le paso los valores concretos 822 00:31:49,849 --> 00:31:52,009 Pasamos los valores concretos 823 00:31:52,009 --> 00:31:53,109 Los que sean 824 00:31:53,109 --> 00:31:55,470 En el momento de la llamada 825 00:31:55,470 --> 00:31:56,690 En el momento de la ejecución 826 00:31:56,690 --> 00:31:59,029 Pasamos los valores concretos que necesita 827 00:31:59,029 --> 00:32:01,269 Pero también si ponemos rollo 828 00:32:01,269 --> 00:32:02,589 En escáner 829 00:32:02,589 --> 00:32:04,130 Podríamos definir el número de veces 830 00:32:04,130 --> 00:32:05,690 Claro, yo podría 831 00:32:05,690 --> 00:32:08,430 Lo he puesto como ejemplo 832 00:32:08,430 --> 00:32:09,769 De que en el momento de la llamada 833 00:32:09,769 --> 00:32:11,470 Tú le pasas un valor concreto 834 00:32:11,470 --> 00:32:13,970 Que ese valor sea que lo has leído 835 00:32:13,970 --> 00:32:14,990 Y lo has guardado en una variable 836 00:32:14,990 --> 00:32:18,029 Pues claro, eso ya da igual 837 00:32:18,029 --> 00:32:20,809 Vale, imagínate 838 00:32:20,809 --> 00:32:22,670 bueno, en lugar de eso 839 00:32:22,670 --> 00:32:25,329 está en la variable n, yo lo he leído por teclado 840 00:32:25,329 --> 00:32:26,509 pues da igual 841 00:32:26,509 --> 00:32:29,309 da igual lo que le pases, lo que importa 842 00:32:29,309 --> 00:32:31,029 es que tú le pases ya 843 00:32:31,029 --> 00:32:33,210 un número entero, ¿de dónde ha venido 844 00:32:33,210 --> 00:32:35,430 ese número entero? ya dependerá del main, de lo que tú quieras hacer 845 00:32:35,430 --> 00:32:37,329 dependerá de como tú quieras 846 00:32:37,329 --> 00:32:38,789 pero lo que importa es que 847 00:32:38,789 --> 00:32:41,289 en el momento de llamarla hay que pasarle 848 00:32:41,289 --> 00:32:42,809 un número entero, tal cual 849 00:32:42,809 --> 00:32:44,730 ¿vale? 850 00:32:51,799 --> 00:32:52,640 vale, pues ya está 851 00:32:52,640 --> 00:32:54,660 nos ha saludado las 78 veces 852 00:32:54,660 --> 00:33:01,279 vale 853 00:33:01,279 --> 00:33:03,559 si yo llamo a una función 854 00:33:03,559 --> 00:33:06,259 pasándole parámetros para los cuales no está diseñada 855 00:33:06,259 --> 00:33:07,819 se quejaría 856 00:33:07,819 --> 00:33:08,740 ¿verdad? 857 00:33:09,599 --> 00:33:11,420 por ejemplo si yo hago esto 858 00:33:11,420 --> 00:33:26,349 si yo hago esto 859 00:33:26,349 --> 00:33:28,849 y le paso por ejemplo dos string 860 00:33:28,849 --> 00:33:37,240 pues aquí el compilador me diría 861 00:33:37,240 --> 00:33:38,359 oye 862 00:33:38,359 --> 00:33:41,079 me he ido a buscar una versión de saludar 863 00:33:41,079 --> 00:33:42,380 que recibe un string 864 00:33:42,380 --> 00:33:44,279 y recibe otro string 865 00:33:44,279 --> 00:33:46,019 Y no la he encontrado 866 00:33:46,019 --> 00:33:48,359 Me dice, oye, perdona, que esta versión no existe 867 00:33:48,359 --> 00:33:51,099 Existe una versión que recibe 868 00:33:51,099 --> 00:33:52,339 Un único string 869 00:33:52,339 --> 00:33:53,759 Vale, esa existe 870 00:33:53,759 --> 00:33:55,759 Existe una que no recibe nada 871 00:33:55,759 --> 00:33:58,640 Existe una que recibe un string y un número 872 00:33:58,640 --> 00:34:00,720 Pero una que reciba un string 873 00:34:00,720 --> 00:34:02,700 Y un string, esa no existe 874 00:34:02,700 --> 00:34:08,699 No existe, entonces aquí el compilador 875 00:34:08,699 --> 00:34:10,840 Dice, oye, que no, que esta función 876 00:34:10,840 --> 00:34:11,340 No existe 877 00:34:11,340 --> 00:34:15,599 luego 878 00:34:15,599 --> 00:34:18,619 la lista de parámetros 879 00:34:18,619 --> 00:34:20,599 tiene que casar 880 00:34:20,599 --> 00:34:21,960 en tipo y en orden 881 00:34:21,960 --> 00:34:23,760 con los que están declarados 882 00:34:23,760 --> 00:34:26,539 aquí por ejemplo, yo no le podría pasar 883 00:34:26,539 --> 00:34:28,119 n, nombre 884 00:34:28,119 --> 00:34:32,199 no, porque la función 885 00:34:32,199 --> 00:34:34,059 está declarada para que primero 886 00:34:34,059 --> 00:34:36,340 reciba el string y luego reciba 887 00:34:36,340 --> 00:34:36,820 el entero 888 00:34:36,820 --> 00:34:40,019 el lenguaje podría ser de otra manera y decir 889 00:34:40,019 --> 00:34:42,400 me has dado un entero y un nombre, me da igual en que orden 890 00:34:42,400 --> 00:34:44,699 bueno, asumo que ese entero es el nombre, podría ser de otra manera 891 00:34:44,699 --> 00:34:46,940 no, pero Java es muy 892 00:34:46,940 --> 00:34:49,000 estricto, a diferencia 893 00:34:49,000 --> 00:34:50,699 de Python, por ejemplo, es muy estricto 894 00:34:50,699 --> 00:34:52,880 si cada uno se usa 895 00:34:52,880 --> 00:34:54,539 para una cosa distinta, tiene sentido 896 00:34:54,539 --> 00:34:56,679 si usas varios del mismo tipo 897 00:34:56,679 --> 00:34:58,019 ¿cómo sabría distinguirlo? 898 00:34:58,739 --> 00:35:00,880 entonces, tienen que pasarse, tienen que 899 00:35:00,880 --> 00:35:02,280 coincidir en 900 00:35:02,280 --> 00:35:05,179 tipo de dato y en orden 901 00:35:05,179 --> 00:35:06,900 ¿se puede poner 902 00:35:06,900 --> 00:35:08,480 una descripción para que te salte ahí 903 00:35:08,480 --> 00:35:10,420 en plan, el orden que tienes que usarlo? 904 00:35:11,579 --> 00:35:12,820 tú puedes comentarlo 905 00:35:12,820 --> 00:35:15,079 bueno, tú puedes hacer aquí 906 00:35:15,079 --> 00:35:16,659 un comentario de javadoc 907 00:35:16,659 --> 00:35:18,980 claro, y ya está 908 00:35:18,980 --> 00:35:22,920 pero luego el comentario este de javadoc te salta 909 00:35:22,920 --> 00:35:23,880 cuando vas a usar esa función 910 00:35:23,880 --> 00:35:25,940 ese comentario de javadoc 911 00:35:25,940 --> 00:35:28,420 te salta cuando tú das aquí 912 00:35:28,420 --> 00:35:30,079 todo lo que tú hayas escrito ahí te salta 913 00:35:30,079 --> 00:35:31,119 vale 914 00:35:31,119 --> 00:35:40,380 vale 915 00:35:40,380 --> 00:35:44,980 bueno, tienes que haber generado el javadoc 916 00:35:44,980 --> 00:35:47,000 es como se documenta las clases 917 00:35:47,000 --> 00:35:48,699 bueno, tienes que haberlo generado 918 00:35:48,699 --> 00:35:50,480 pero vamos, sí, se salta ahí 919 00:35:50,480 --> 00:35:51,559 de todas maneras, si no 920 00:35:51,559 --> 00:35:53,639 él siempre te va a decir 921 00:35:53,639 --> 00:35:56,219 el compilador siempre te va a decir, oye yo me espero 922 00:35:56,219 --> 00:35:58,099 string, string, te va a decir eso sí 923 00:35:58,099 --> 00:35:59,800 para decirle, este string es para una cosa 924 00:35:59,800 --> 00:36:00,739 y este es el segundo string 925 00:36:00,739 --> 00:36:03,840 todo eso hay que documentarlo, para explicarte cada cosa 926 00:36:03,840 --> 00:36:04,400 eso con Javadoc 927 00:36:04,400 --> 00:36:09,980 claro, pues Javadoc, tienes que documentarlo 928 00:36:09,980 --> 00:36:12,059 si no, eso es lo más a lo que llega al compilador 929 00:36:12,059 --> 00:36:12,980 vale 930 00:36:12,980 --> 00:36:14,360 si vamos a una empresa y hacemos un programa 931 00:36:14,360 --> 00:36:15,639 tenemos que documentarlo 932 00:36:15,639 --> 00:36:17,500 sí, claro 933 00:36:17,500 --> 00:36:20,159 en realidad documentalo mal 934 00:36:20,159 --> 00:36:21,519 para que te tengan que llamar a ti siempre 935 00:36:21,519 --> 00:36:24,320 siempre tienes que 936 00:36:24,320 --> 00:36:25,539 no, no arriesgues 937 00:36:25,539 --> 00:36:27,559 documentalo 938 00:36:27,559 --> 00:36:30,579 peor para ellos 939 00:36:30,579 --> 00:36:38,739 explícaselo a ellos cuando te estén dando el finiquito 940 00:36:38,739 --> 00:36:39,579 no, a ver 941 00:36:39,579 --> 00:36:41,539 porque es imprescindible 942 00:36:41,539 --> 00:36:44,019 exacto 943 00:36:44,019 --> 00:36:45,519 no se lo supongan así 944 00:36:45,519 --> 00:36:48,579 No, es que no funcionan así las cosas 945 00:36:48,579 --> 00:36:49,900 ¿Y si se lo documento en chino? 946 00:36:50,039 --> 00:36:50,739 ¿Y ninguno sabe chino? 947 00:36:51,739 --> 00:36:52,940 No funciona así 948 00:36:52,940 --> 00:36:54,960 ChatGPT sabe chino 949 00:36:54,960 --> 00:36:56,960 Bueno 950 00:36:56,960 --> 00:37:01,179 Había otro 951 00:37:01,179 --> 00:37:02,340 ¿Eso quién te lo ha dicho? 952 00:37:05,139 --> 00:37:06,260 Internet es muy de fiar 953 00:37:06,260 --> 00:37:08,820 Bueno 954 00:37:08,820 --> 00:37:11,239 Entendido 955 00:37:11,239 --> 00:37:13,599 Clarísimo clarinete 956 00:37:15,519 --> 00:37:18,360 Pues nada, continuamos después del recreo.