1 00:00:00,000 --> 00:00:03,060 vamos a utilizar este ejercicio 2 00:00:03,060 --> 00:00:06,440 para incorporar otra cosa más 3 00:00:06,440 --> 00:00:08,640 que podemos meter en la declaración de una clase. 4 00:00:09,279 --> 00:00:11,779 Fundamental, los métodos constructores. 5 00:00:12,660 --> 00:00:12,859 ¿Vale? 6 00:00:12,960 --> 00:00:15,820 Entonces, nosotros leemos esta aplicación. 7 00:00:16,239 --> 00:00:17,579 Pues llegamos un poco a la conclusión, 8 00:00:17,679 --> 00:00:18,980 no nos detenemos mucho por encima, 9 00:00:19,179 --> 00:00:20,359 que hay una única entidad, 10 00:00:20,600 --> 00:00:22,539 hay una única cosa de la que se ocupa la aplicación, 11 00:00:22,539 --> 00:00:23,320 que es una cafetera. 12 00:00:23,820 --> 00:00:26,199 Una cafetera que lo único que necesitamos saber 13 00:00:26,199 --> 00:00:27,600 para trabajar con ella es 14 00:00:27,600 --> 00:00:29,960 Lo máximo que le cabe 15 00:00:29,960 --> 00:00:31,920 Y lo que tiene en cada momento 16 00:00:31,920 --> 00:00:34,020 Con esas dos propiedades 17 00:00:34,020 --> 00:00:35,759 Ya los métodos 18 00:00:35,759 --> 00:00:36,899 Pues harán lo que tengan que hacer 19 00:00:36,899 --> 00:00:39,539 Sacar la cantidad necesaria 20 00:00:39,539 --> 00:00:40,560 Para llenar una taza 21 00:00:40,560 --> 00:00:43,340 Llenarla, vaciarla, lo que sea 22 00:00:43,340 --> 00:00:45,780 Pues venga 23 00:00:45,780 --> 00:00:47,460 Vamos a hacer entonces la clase cafetera 24 00:00:47,460 --> 00:00:49,659 Porque ya sabemos que solo necesitamos esa clase 25 00:00:49,659 --> 00:00:51,700 Y con las propiedades que nos hacen falta 26 00:00:51,700 --> 00:00:53,759 Pues venga 27 00:00:53,759 --> 00:00:55,159 Hacemos 28 00:00:55,159 --> 00:01:01,939 Clase cafetera 29 00:01:01,939 --> 00:01:03,659 y le quito el public 30 00:01:03,659 --> 00:01:05,959 propiedades 31 00:01:05,959 --> 00:01:07,939 ya sabemos cuáles porque la tarea de análisis 32 00:01:07,939 --> 00:01:09,120 y diseño ya la tenemos hecha 33 00:01:09,120 --> 00:01:10,280 que es 34 00:01:10,280 --> 00:01:13,120 la cantidad 35 00:01:13,120 --> 00:01:16,400 máxima 36 00:01:16,400 --> 00:01:17,040 que tiene 37 00:01:17,040 --> 00:01:19,680 llamémosle capacidad 38 00:01:19,680 --> 00:01:22,079 si la haces con internet 39 00:01:22,079 --> 00:01:23,939 si, da igual 40 00:01:23,939 --> 00:01:24,599 vale 41 00:01:24,599 --> 00:01:27,459 y luego otra propiedad 42 00:01:27,459 --> 00:01:30,060 va a ser lo que tenga en cada 43 00:01:30,060 --> 00:01:35,170 momento, vale 44 00:01:35,170 --> 00:01:37,069 con esas dos propiedades ya lo tenemos todo 45 00:01:37,069 --> 00:01:39,250 y ahora lo siguiente que hemos hecho nosotros 46 00:01:39,250 --> 00:01:41,409 es, vale, ¿qué métodos le interesan 47 00:01:41,409 --> 00:01:43,530 a la aplicación? pues le interesan 48 00:01:43,530 --> 00:01:44,290 a la aplicación 49 00:01:44,290 --> 00:01:47,530 uno, dos, tres y cuatro métodos 50 00:01:47,530 --> 00:01:49,310 uno, llenarla 51 00:01:49,310 --> 00:01:50,549 vale 52 00:01:50,549 --> 00:01:53,129 cuando le demos al botón de llenar 53 00:01:53,129 --> 00:01:54,790 pasarán cosas, se abrirá un sensor, 54 00:01:55,030 --> 00:01:56,189 empezará a entrar agua, 55 00:01:56,950 --> 00:01:58,870 entrará lo que sea, yo que sé 56 00:01:58,870 --> 00:02:01,090 pero la parte 57 00:02:01,090 --> 00:02:03,189 de software, lo único que tiene que hacer 58 00:02:03,189 --> 00:02:05,989 es poner la cantidad actual 59 00:02:05,989 --> 00:02:09,250 con el mismo valor que tenga la capacidad. 60 00:02:09,889 --> 00:02:11,229 La capacidad se supone 61 00:02:11,229 --> 00:02:14,590 que en lugar de llamar la capacidad máxima, 62 00:02:14,629 --> 00:02:16,729 la he llamado capacidad para que la variable sea más corta 63 00:02:16,729 --> 00:02:17,810 y no tener que escribirla todo el rato. 64 00:02:18,229 --> 00:02:20,069 Pero bueno, me refiero a lo máximo que cabe. 65 00:02:21,110 --> 00:02:23,629 Vale, pues eso cuando una cafetera exista, 66 00:02:24,330 --> 00:02:25,849 capacidad tendrá un valor, el que sea. 67 00:02:26,409 --> 00:02:28,069 Cuando creemos una cafetera 68 00:02:28,069 --> 00:02:29,990 cuya capacidad máxima sea en 27, 69 00:02:30,169 --> 00:02:31,389 pues capacidad tendrá 27. 70 00:02:31,389 --> 00:02:34,830 cuando creemos una cafetera cuya capacidad máxima sea 13 71 00:02:34,830 --> 00:02:36,810 pues esta variable tendrá 13 72 00:02:36,810 --> 00:02:41,090 no podemos saber lo que tiene hasta que no exista una cafetera en concreto 73 00:02:41,090 --> 00:02:44,030 pero lo que sí que sabemos es que habrá un método 74 00:02:44,030 --> 00:02:46,669 llenar cafetera 75 00:02:46,669 --> 00:02:49,449 que cuando ese método sea invocado 76 00:02:49,449 --> 00:02:53,699 ¿qué va a hacer ese método cuando sea invocado? 77 00:02:54,180 --> 00:02:56,419 pues la cantidad actual de la cafetera 78 00:02:56,419 --> 00:03:00,099 ponerla con el valor de la capacidad 79 00:03:00,099 --> 00:03:10,099 Entonces, las preguntas que nos hacemos. ¿Necesita algún dato desde fuera este método para trabajar? No, porque... 80 00:03:11,719 --> 00:03:23,280 Por eso te van a poder acusar durante mucho tiempo. 81 00:03:23,280 --> 00:03:28,300 Bueno, ¿necesita alguna información desde fuera? 82 00:03:28,379 --> 00:03:30,979 No, porque lo único que tiene que hacer este método es 83 00:03:30,979 --> 00:03:33,560 La propiedad cantidad actual 84 00:03:33,560 --> 00:03:35,080 Y es una propiedad en la que tiene acceso 85 00:03:35,080 --> 00:03:36,020 Porque está ahí arriba 86 00:03:36,020 --> 00:03:38,819 La propiedad cambiarla 87 00:03:38,819 --> 00:03:42,479 Para que se ponga con lo que vale la capacidad 88 00:03:42,479 --> 00:03:44,659 Es lo único que tiene que hacer ese método 89 00:03:44,659 --> 00:03:47,900 Con lo cual no necesita ninguna información desde fuera 90 00:03:47,900 --> 00:03:49,099 Luego esto vacío 91 00:03:49,099 --> 00:03:50,580 ¿Tiene que devolver algo? 92 00:03:50,680 --> 00:03:52,539 No, su efecto queda reflejado 93 00:03:52,539 --> 00:03:54,979 Porque la cantidad actual se ve modificada 94 00:03:54,979 --> 00:03:56,039 Se ve modificada 95 00:03:56,039 --> 00:03:57,539 No tiene que devolver nada 96 00:03:57,539 --> 00:03:59,039 Pues entonces aquí voy 97 00:03:59,039 --> 00:04:00,180 Ya está 98 00:04:00,180 --> 00:04:03,439 Vale, pues este método ya estaría 99 00:04:03,439 --> 00:04:06,020 ¿Qué más métodos, qué más botones tiene la cafetera 100 00:04:06,020 --> 00:04:07,139 Para hacer cosas con ella? 101 00:04:07,979 --> 00:04:09,099 Pues tiene un botoncito 102 00:04:09,099 --> 00:04:12,349 Servir taza 103 00:04:12,349 --> 00:04:14,770 Entonces cuando se da el botoncito 104 00:04:14,770 --> 00:04:16,110 Servir taza 105 00:04:16,110 --> 00:04:22,490 Cuando se da el botoncito 106 00:04:22,490 --> 00:04:24,089 De servir la taza 107 00:04:24,089 --> 00:04:27,980 ¿Qué es lo que va a ocurrir? 108 00:04:27,980 --> 00:04:29,660 Que habrá una taza puesta ahí 109 00:04:29,660 --> 00:04:30,720 Con un volumen 110 00:04:30,720 --> 00:04:33,000 Y entonces la cantidad actual 111 00:04:33,000 --> 00:04:35,160 Se va a ver disminuida 112 00:04:35,160 --> 00:04:37,000 En lo que ocupe la taza 113 00:04:37,000 --> 00:04:39,339 ¿Lo que ocupa la taza 114 00:04:39,339 --> 00:04:41,360 Es un dato de la cafetera? 115 00:04:41,560 --> 00:04:42,420 En absoluto 116 00:04:42,420 --> 00:04:45,180 Luego no tiene sentido agregar aquí una propiedad 117 00:04:45,180 --> 00:04:46,639 Que sea lo que cabe en la taza 118 00:04:46,639 --> 00:04:49,639 Vete a saber, cada vez yo lleno tazas de diferente volumen 119 00:04:49,639 --> 00:04:51,199 Bueno, pues entonces 120 00:04:51,199 --> 00:04:52,079 Ahí, eh 121 00:04:52,079 --> 00:04:55,680 No, es una información 122 00:04:55,680 --> 00:04:57,279 Que me tiene que llegar desde el exterior 123 00:04:57,279 --> 00:05:06,079 Tú quieres que yo te sirva una taza, ¿vale? Pues tendrás que decirme qué volumen tiene esa taza para yo saber hasta dónde tengo que estar aquí girando la mano. 124 00:05:07,139 --> 00:05:08,740 Ahí podría haber objeto taza. 125 00:05:12,120 --> 00:05:14,660 No lies, no lies. Poco a poco. 126 00:05:15,600 --> 00:05:21,899 Entonces, lo que necesita este método para trabajar es, ¿cuál va a ser el resultado de este método? 127 00:05:21,899 --> 00:05:30,300 Pues la cantidad actual se va a ver disminuida por lo que ocupe la taza, por el volumen de la taza, ¿verdad? 128 00:05:30,620 --> 00:05:32,139 Se va a ver disminuida por lo que ocupe la taza. 129 00:05:32,259 --> 00:05:33,300 ¿Y cuánto ocupa la taza? 130 00:05:33,459 --> 00:05:35,220 Pues depende de la taza que me pasen. 131 00:05:35,720 --> 00:05:37,699 Es una información que me tienes que dar, no lo sé. 132 00:05:38,019 --> 00:05:43,060 Pues ¿dónde está el sitio de meter la información que te tienen que dar desde fuera para trabajar? 133 00:05:43,560 --> 00:05:47,000 El sitio para meter la información que tienen que dar desde fuera para trabajar, 134 00:05:47,079 --> 00:05:48,540 tú aquí dentro está aquí en los parámetros. 135 00:05:48,540 --> 00:05:50,920 Vale, pues me tendrás que dar aquí 136 00:05:50,920 --> 00:05:54,199 Lo que cabe en la taza 137 00:05:54,199 --> 00:05:55,860 ¿Qué es esto? 138 00:05:57,910 --> 00:06:00,089 Eso, lo que cabe en la taza me lo tendrás que dar 139 00:06:00,089 --> 00:06:02,149 Entonces cuando ya me lo hayas dado 140 00:06:02,149 --> 00:06:03,829 Pues yo ya podré quitarle 141 00:06:03,829 --> 00:06:05,870 A la cantidad actual 142 00:06:05,870 --> 00:06:07,870 Ya le podré quitar lo que me has pasado 143 00:06:07,870 --> 00:06:11,230 ¿Tengo que devolver algo? No 144 00:06:11,230 --> 00:06:13,970 Porque el efecto se queda en la propiedad 145 00:06:13,970 --> 00:06:15,750 Pues entonces aquí voy 146 00:06:15,750 --> 00:06:18,500 Ya está 147 00:06:18,500 --> 00:06:19,899 ¿Puedo poner si se queda en negativo? 148 00:06:19,899 --> 00:06:23,000 Sí, porque 149 00:06:23,000 --> 00:06:25,279 vale, se me ha olvidado, aquí dice 150 00:06:25,279 --> 00:06:27,699 si como resultado de servir 151 00:06:27,699 --> 00:06:29,860 la taza, claro, puede ocurrir que la taza 152 00:06:29,860 --> 00:06:31,779 sea más grande que la cantidad que queda 153 00:06:31,779 --> 00:06:33,879 entonces si la taza es más grande 154 00:06:33,879 --> 00:06:35,660 la cafetera se queda a cero 155 00:06:35,660 --> 00:06:37,199 pero nunca se queda a negativo 156 00:06:37,199 --> 00:06:39,579 el software se estaría funcionando mal 157 00:06:39,579 --> 00:06:42,240 si yo pongo, uy, se me ha quedado a menos 7 litros 158 00:06:42,240 --> 00:06:43,779 pues no, pedazo 159 00:06:43,779 --> 00:06:44,759 cafetera, no, sí 160 00:06:44,759 --> 00:06:47,300 entonces, claro 161 00:06:47,300 --> 00:06:49,360 aquí tenemos que poner 162 00:06:49,360 --> 00:06:52,379 bueno, lo podríamos hacer en una única línea 163 00:06:52,379 --> 00:06:54,300 con operador ternario, como sea, pero bueno 164 00:06:54,300 --> 00:06:56,279 si la cantidad 165 00:06:56,279 --> 00:06:58,319 actual que me ha quedado después 166 00:06:58,319 --> 00:07:00,560 de hacer la resta resulta que es menor que cero 167 00:07:00,560 --> 00:07:02,160 pues entonces ponla cero 168 00:07:02,160 --> 00:07:04,420 porque si no la información que estás dejando en la cafetera 169 00:07:04,420 --> 00:07:05,000 es errónea 170 00:07:05,000 --> 00:07:08,649 este método ya estaría 171 00:07:08,649 --> 00:07:15,509 por ejemplo, claro 172 00:07:15,509 --> 00:07:17,790 capacidad taza mayor que cantidad 173 00:07:17,790 --> 00:07:19,629 actual, cantidad actual cero 174 00:07:19,629 --> 00:07:20,769 Es decir 175 00:07:20,769 --> 00:07:23,269 Podríamos hacer en una sola línea 176 00:07:23,269 --> 00:07:24,430 Algo mucho más bonito 177 00:07:24,430 --> 00:07:26,629 Que sería esto 178 00:07:26,629 --> 00:07:27,689 Vamos a suponer que esto 179 00:07:27,689 --> 00:07:30,370 Eso comentado porque es 180 00:07:30,370 --> 00:07:33,230 Nosotros ya estamos por encima de todo esto 181 00:07:33,230 --> 00:07:35,430 Entonces podríamos hacer aquí 182 00:07:35,430 --> 00:07:36,410 Cantidad actual 183 00:07:36,410 --> 00:07:39,310 Capacidad 184 00:07:39,310 --> 00:07:41,509 Taza es mayor 185 00:07:41,509 --> 00:07:43,569 Que la cantidad 186 00:07:43,569 --> 00:07:45,889 Actual 187 00:07:45,889 --> 00:07:49,370 ¿Eh? ¿Qué pasa? 188 00:07:49,569 --> 00:07:50,329 Interrogación 189 00:07:50,329 --> 00:07:52,529 Pues entonces me quedo a cero 190 00:07:52,529 --> 00:07:54,290 Entonces me quedo a cero 191 00:07:54,290 --> 00:07:56,829 Y pongo cantidad actual a cero 192 00:07:56,829 --> 00:07:57,790 No he llenado la taza 193 00:07:57,790 --> 00:07:59,110 Uy, perdón, pongo cero 194 00:07:59,110 --> 00:08:04,480 Que no, pues pongo cantidad actual 195 00:08:04,480 --> 00:08:05,839 Menos capacidad taza 196 00:08:05,839 --> 00:08:13,589 Ya, pero 197 00:08:13,589 --> 00:08:16,189 Bueno, o sea 198 00:08:16,189 --> 00:08:19,350 Ese mismo método lo podemos hacer así, ya está, ¿no? 199 00:08:19,610 --> 00:08:20,230 ¿Eso qué es? 200 00:08:20,410 --> 00:08:23,089 Lo de hace dos meses y medio 201 00:08:23,089 --> 00:08:31,470 Decírselo por mí 202 00:08:31,470 --> 00:08:35,309 Es el operador ternario 203 00:08:35,309 --> 00:08:37,330 En función de una condición 204 00:08:37,330 --> 00:08:39,110 Lo que pasa es que, a ver, me he bajado la línea de abajo 205 00:08:39,110 --> 00:08:40,029 Para que se vea 206 00:08:40,029 --> 00:08:42,970 Existen los entes 207 00:08:42,970 --> 00:08:46,120 Ahora lo entiendes, ¿no? 208 00:08:46,360 --> 00:08:47,100 Vale, pues ya está 209 00:08:47,100 --> 00:08:48,440 Lo pillas 210 00:08:48,440 --> 00:08:51,820 Hacemos el otro método y ahora ya 211 00:08:51,820 --> 00:08:54,639 incorporamos esa maravilla de los constructores 212 00:08:54,639 --> 00:08:56,120 constructores, vale 213 00:08:56,120 --> 00:08:57,000 el siguiente método 214 00:08:57,000 --> 00:09:00,500 vamos a vaciar la cafetera, ese método es facilísimo 215 00:09:00,500 --> 00:09:02,419 poner la cantidad de café 216 00:09:02,419 --> 00:09:06,110 a cero, entonces 217 00:09:06,110 --> 00:09:08,330 ya ni pongo las interrogaciones 218 00:09:08,330 --> 00:09:10,370 porque ya sabemos que no va a devolver nada 219 00:09:10,370 --> 00:09:12,169 porque el efecto 220 00:09:12,169 --> 00:09:14,330 se queda, ¿necesita algo? no, para vaciar 221 00:09:14,330 --> 00:09:16,389 la cafetera no necesito ninguna información desde fuera 222 00:09:16,389 --> 00:09:18,250 vaciar la cafetera 223 00:09:18,250 --> 00:09:19,350 será esto 224 00:09:19,350 --> 00:09:24,250 capacidad actual igual a cero 225 00:09:24,250 --> 00:09:27,629 Algo escrito mal 226 00:09:27,629 --> 00:09:29,509 Es porque me falta 227 00:09:29,509 --> 00:09:31,090 Capacidad actual igual 228 00:09:31,090 --> 00:09:34,389 Ah, porque es cantidad actual 229 00:09:34,389 --> 00:09:34,970 Eso 230 00:09:34,970 --> 00:09:38,360 Perdón, cantidad actual 231 00:09:38,360 --> 00:09:40,820 Juan ha dado un salto de aprendizaje 232 00:09:40,820 --> 00:09:43,179 En la vida se va, se envejece 233 00:09:43,179 --> 00:09:44,340 Y se aprende a saltos 234 00:09:44,340 --> 00:09:45,899 Pues 235 00:09:45,899 --> 00:09:49,019 Hacer un ejercicio entero 236 00:09:49,019 --> 00:09:51,659 Uno solito es un salto de aprendizaje 237 00:09:51,659 --> 00:09:55,759 Bueno, a ver, espera 238 00:09:55,759 --> 00:09:57,279 Tampoco te pases 239 00:09:57,279 --> 00:10:03,360 Y eso 240 00:10:03,360 --> 00:10:06,279 Tenemos un siguiente examen para demostrarlo 241 00:10:06,279 --> 00:10:07,379 Agregar café 242 00:10:07,379 --> 00:10:12,019 Venga, confianza en uno mismo 243 00:10:18,799 --> 00:10:20,820 Que yo he dicho que mierda de código 244 00:10:20,820 --> 00:10:22,600 ¿Cuándo he dicho yo eso? 245 00:10:23,299 --> 00:10:25,080 Pero lo has pensado en general 246 00:10:25,080 --> 00:10:26,000 Ah, no hombre 247 00:10:26,000 --> 00:10:29,700 Siempre os he dicho en los dos exámenes que salí contenta 248 00:10:29,700 --> 00:10:30,919 De corregir 249 00:10:30,919 --> 00:10:31,879 Vale, a ver 250 00:10:31,879 --> 00:10:35,019 Yo creo que sí 251 00:10:35,019 --> 00:10:37,139 A ver, en los últimos 252 00:10:37,139 --> 00:10:39,399 Ha habido hasta la pandemia 253 00:10:39,399 --> 00:10:40,179 Más o menos 254 00:10:40,179 --> 00:10:42,419 Desde la pandemia hasta acá no sé por qué 255 00:10:42,419 --> 00:10:44,879 Han coincidido grupos 256 00:10:44,879 --> 00:10:46,379 Muy regulares 257 00:10:46,379 --> 00:10:47,799 Y este año yo qué sé 258 00:10:47,799 --> 00:10:49,299 Yo creo que hay un poco de 259 00:10:49,299 --> 00:10:51,519 Estáis viendo las orejas al lobo 260 00:10:51,519 --> 00:10:52,500 Estáis viendo que el futuro 261 00:10:52,500 --> 00:10:55,679 Y queréis vivir bajo techado 262 00:10:55,679 --> 00:10:56,919 Y comer caliente 263 00:10:56,919 --> 00:10:59,259 Y entonces igual os estáis poniendo las pilas 264 00:10:59,259 --> 00:11:06,639 Hombre, todos queréis, ¿no? 265 00:11:06,700 --> 00:11:08,600 Tener las necesidades básicas resueltas 266 00:11:08,600 --> 00:11:11,639 Bueno 267 00:11:11,639 --> 00:11:14,700 Agregar café 268 00:11:14,700 --> 00:11:16,740 Agregar café será 269 00:11:16,740 --> 00:11:18,240 A la cantidad actual 270 00:11:18,240 --> 00:11:21,200 le sumas 271 00:11:21,200 --> 00:11:22,700 lo que tú 272 00:11:22,700 --> 00:11:24,240 agregues 273 00:11:24,240 --> 00:11:27,299 ¿cuánto le sumas? me lo tendrás que decir 274 00:11:27,299 --> 00:11:29,799 me tendrás que decir cuánto quieres que le sume 275 00:11:29,799 --> 00:11:31,480 luego el sitio para decirme 276 00:11:31,480 --> 00:11:33,279 cuánto café quieres que le sume 277 00:11:33,279 --> 00:11:33,940 a la cafetera 278 00:11:33,940 --> 00:11:37,100 es este, este es el sitio 279 00:11:37,100 --> 00:11:38,059 para decirle 280 00:11:38,059 --> 00:11:40,259 cuánto quieres 281 00:11:40,259 --> 00:11:45,120 vale, ¿tiene que devolver 282 00:11:45,120 --> 00:11:46,200 algo el método? no voy 283 00:11:46,200 --> 00:11:49,820 Bueno 284 00:11:49,820 --> 00:11:52,840 Y si se pasa 285 00:11:52,840 --> 00:11:55,000 Se queda 286 00:11:55,000 --> 00:11:56,940 El otro ha desbordado 287 00:11:56,940 --> 00:11:58,240 Entonces lo mismo 288 00:11:58,240 --> 00:12:10,110 Si la cantidad actual 289 00:12:10,110 --> 00:12:11,029 Es mayor 290 00:12:11,029 --> 00:12:12,909 Que la capacidad 291 00:12:12,909 --> 00:12:18,820 Es mayor que la capacidad 292 00:12:18,820 --> 00:12:20,919 pues entonces 293 00:12:20,919 --> 00:12:22,960 cantidad actual igual a capacidad 294 00:12:22,960 --> 00:12:25,159 y el otro ha desbordado 295 00:12:25,159 --> 00:12:26,259 nos da igual donde ha ido a parar 296 00:12:26,259 --> 00:12:28,059 pero nunca va a caber más 297 00:12:28,059 --> 00:12:30,840 esto lo podréis hacer con un operador ternario 298 00:12:30,840 --> 00:12:32,960 también como aquí arriba, como os dé la gana 299 00:12:32,960 --> 00:12:37,200 a ver tu jefe 300 00:12:37,200 --> 00:12:37,799 que prefiere 301 00:12:37,799 --> 00:12:40,659 bueno 302 00:12:40,659 --> 00:12:42,799 vale, pues ya está, ahora 303 00:12:42,799 --> 00:12:44,840 este es el software de la cafetera 304 00:12:44,840 --> 00:12:46,779 entonces cuando se den los botoncitos 305 00:12:46,779 --> 00:12:49,320 Esos botoncitos abrirán y cerrarán 306 00:12:49,320 --> 00:12:51,220 Sensores y aparte 307 00:12:51,220 --> 00:12:52,240 Cambiarán los datos 308 00:12:52,240 --> 00:12:55,360 ¿Vale? Luego este software 309 00:12:55,360 --> 00:12:57,360 Mínimo, pero es un software real 310 00:12:57,360 --> 00:12:57,899 En realidad 311 00:12:57,899 --> 00:13:01,580 Se abrirán y cerrarán sensores, pero esto cambiará 312 00:13:01,580 --> 00:13:03,440 Luego esto pasa 313 00:13:03,440 --> 00:13:05,320 Dentro de una 314 00:13:05,320 --> 00:13:05,980 Cafetera 315 00:13:05,980 --> 00:13:11,080 Claro, tú tienes todos tus 316 00:13:11,080 --> 00:13:13,179 Sensores, células, lo que sea 317 00:13:13,179 --> 00:13:14,860 Claro 318 00:13:14,860 --> 00:13:17,879 Sí, pero un software que actualiza 319 00:13:17,879 --> 00:13:19,740 Los datos, tiene que haber 320 00:13:19,740 --> 00:13:20,600 Claro 321 00:13:20,600 --> 00:13:23,539 Bueno, pues entonces 322 00:13:23,539 --> 00:13:25,980 Ahora ya vamos a hacer la aplicación 323 00:13:25,980 --> 00:13:27,779 La que arranca cuando le damos 324 00:13:27,779 --> 00:13:29,279 El on a la cafetera 325 00:13:29,279 --> 00:13:31,019 Porque ahora mismo no hay ningún 326 00:13:31,019 --> 00:13:33,779 No existe ninguna cafetera, ni le hemos dado el on a nada 327 00:13:33,779 --> 00:13:35,320 Ahora vamos a 328 00:13:35,320 --> 00:13:37,779 Tener ya una cafetera real 329 00:13:37,779 --> 00:13:40,059 A la que le damos el on, para que empiecen a pasar cosas 330 00:13:40,059 --> 00:13:40,960 Dime 331 00:13:40,960 --> 00:13:45,899 Agregar este 332 00:13:45,899 --> 00:13:52,769 Y ahora es cuando ya nos importan los constructores 333 00:13:52,769 --> 00:13:54,149 Vale 334 00:13:54,149 --> 00:13:59,500 Venga, ya está 335 00:13:59,500 --> 00:14:02,419 Vale, ya 336 00:14:02,419 --> 00:14:06,200 Venga, pues hacemos el main 337 00:14:06,200 --> 00:14:06,820 Ahora 338 00:14:06,820 --> 00:14:08,879 ¿Eh? 339 00:14:08,879 --> 00:14:10,919 La parte divertida 340 00:14:10,919 --> 00:14:12,620 Que es cuando pasan cosas 341 00:14:12,620 --> 00:14:14,559 Cafetera 342 00:14:14,559 --> 00:14:18,120 Vale, pues aquí 343 00:14:18,120 --> 00:14:19,820 Arrancamos la aplicación 344 00:14:19,820 --> 00:14:21,919 Aquí 345 00:14:21,919 --> 00:14:23,700 Desde el momento en que entramos en el main 346 00:14:23,700 --> 00:14:24,740 Ya hemos dado el on 347 00:14:24,740 --> 00:14:27,039 Al cacharro, a la cafetera 348 00:14:27,039 --> 00:14:29,320 Pues que es lo primero que tenemos que hacer 349 00:14:29,320 --> 00:14:31,539 Crear el objeto cafetera 350 00:14:31,539 --> 00:14:33,059 Con los datos concretos 351 00:14:33,059 --> 00:14:35,919 Entonces, nosotros que hemos hecho hasta ahora 352 00:14:35,919 --> 00:14:37,759 Pues esta es mi cafetera 353 00:14:37,759 --> 00:14:38,580 Esta de aquí 354 00:14:38,580 --> 00:14:41,840 Declaramos la variable cafetera 355 00:14:41,840 --> 00:14:43,679 Y instanciamos el objeto 356 00:14:43,679 --> 00:14:47,279 Vale, entonces que hemos hecho 357 00:14:47,279 --> 00:14:49,279 Nosotros hasta ahora, el objeto creado 358 00:14:49,279 --> 00:14:51,379 Cafetera, todavía no 359 00:14:51,379 --> 00:14:52,620 Tiene los valores 360 00:14:52,620 --> 00:14:56,139 ¿Cómo vamos a inicializar la cafetera? 361 00:14:56,580 --> 00:14:57,480 Pues se supone que 362 00:14:57,480 --> 00:14:59,340 Aquí no nos lo dice 363 00:14:59,340 --> 00:15:00,519 Con propiedades de tabas por teclado 364 00:15:00,519 --> 00:15:01,840 Vamos a olvidarnos 365 00:15:01,840 --> 00:15:05,419 Bueno, no, venga 366 00:15:05,419 --> 00:15:07,600 Vamos a pedir la capacidad máxima 367 00:15:07,600 --> 00:15:09,860 Es que claro, en una aplicación real 368 00:15:09,860 --> 00:15:11,100 Cada vez que daslo a la cafetera 369 00:15:11,100 --> 00:15:12,620 No te estará preguntando 370 00:15:12,620 --> 00:15:15,860 Oye, ¿cuál es la capacidad máxima que tengo? 371 00:15:16,320 --> 00:15:17,860 ¿Cuánto es la cantidad 372 00:15:17,860 --> 00:15:18,940 Que tengo en este momento? 373 00:15:19,379 --> 00:15:21,179 Lo normal es que lo registre con sensores 374 00:15:21,179 --> 00:15:22,179 Y lo inicialice 375 00:15:22,179 --> 00:15:24,700 pero como en nuestro caso 376 00:15:24,700 --> 00:15:26,700 no hay sensores que vean 377 00:15:26,700 --> 00:15:28,159 cuál es la capacidad que tiene 378 00:15:28,159 --> 00:15:29,519 y lo que tiene en ese momento 379 00:15:29,519 --> 00:15:32,360 en lugar de pedirlo por teclado 380 00:15:32,360 --> 00:15:34,659 que es un rollo, se lo voy a poner a capón 381 00:15:34,659 --> 00:15:35,259 aquí directamente 382 00:15:35,259 --> 00:15:38,200 eso es muy irregular porque el café se evapora 383 00:15:38,200 --> 00:15:40,179 hay pequeños cambios 384 00:15:40,179 --> 00:15:41,460 que te va a descuadrar 385 00:15:41,460 --> 00:15:44,799 pero como no podemos meterle un sensor 386 00:15:44,799 --> 00:15:45,700 pues vamos a 387 00:15:45,700 --> 00:15:47,559 metérselos directamente 388 00:15:47,559 --> 00:15:50,379 y la cafetera cuando le damos salón 389 00:15:50,379 --> 00:15:54,019 arranca siempre con una capacidad máxima de 100 390 00:15:54,019 --> 00:15:56,340 porque esta aplicación es para las cafeteras 391 00:15:56,340 --> 00:15:57,899 Roventa modelo tal 392 00:15:57,899 --> 00:15:59,399 que tienen capacidad de 100 393 00:15:59,399 --> 00:16:02,080 con lo cual cuando el software arranca 394 00:16:02,080 --> 00:16:06,039 cafetera.capacidad 395 00:16:06,039 --> 00:16:07,399 es igual a 100, no hay alternativa 396 00:16:07,399 --> 00:16:08,480 porque todas tienen 100 397 00:16:08,480 --> 00:16:11,720 y además estas cafeteras 398 00:16:11,720 --> 00:16:13,720 antes de apagarla te obliga 399 00:16:13,720 --> 00:16:14,779 a haberla dejado vacía 400 00:16:14,779 --> 00:16:17,500 con lo cual cuando tú la enciendes no hay tutía 401 00:16:17,500 --> 00:16:19,539 la cantidad actual 402 00:16:19,539 --> 00:16:21,299 siempre a cero 403 00:16:21,299 --> 00:16:23,080 esto lo estoy haciendo solo para ahorrarme 404 00:16:23,080 --> 00:16:25,080 leerlo por teclado, ya está 405 00:16:25,080 --> 00:16:27,820 bueno, pues esto es lo que hemos hecho hasta ahora 406 00:16:27,820 --> 00:16:29,519 para inicializar las propiedades 407 00:16:29,519 --> 00:16:31,220 del objeto una vez creado 408 00:16:31,220 --> 00:16:33,240 y esto está bien 409 00:16:33,240 --> 00:16:34,779 pero es 410 00:16:34,779 --> 00:16:38,019 muy feo, horroroso, nunca lo vais a ver así 411 00:16:38,019 --> 00:16:39,919 vale, vamos a aprovechar 412 00:16:39,919 --> 00:16:41,879 entonces esta aplicación 413 00:16:41,879 --> 00:16:46,059 para introducir los constructores 414 00:16:46,059 --> 00:16:53,409 para 415 00:16:53,409 --> 00:16:55,870 introducir los 416 00:16:55,870 --> 00:16:57,990 métodos 417 00:16:57,990 --> 00:17:00,149 constructores 418 00:17:00,149 --> 00:17:02,639 bueno 419 00:17:02,639 --> 00:17:05,279 vamos a volver al momento en el cual 420 00:17:05,279 --> 00:17:06,900 hemos hecho esta sentencia 421 00:17:06,900 --> 00:17:08,519 que yo lo único que he dicho hasta ahora es 422 00:17:08,519 --> 00:17:10,839 que esa sentencia lo único que hace 423 00:17:10,839 --> 00:17:13,119 es crear un espacio en memoria 424 00:17:13,119 --> 00:17:14,920 y ahora ya 425 00:17:14,920 --> 00:17:17,259 ese espacio en memoria dejarlo apuntado 426 00:17:17,259 --> 00:17:19,259 por esta variable 427 00:17:19,259 --> 00:17:20,819 es lo que he dicho 428 00:17:20,819 --> 00:17:21,660 que es lo único que hace 429 00:17:21,660 --> 00:17:23,880 pero 430 00:17:23,880 --> 00:17:25,740 os he mentido 431 00:17:25,740 --> 00:17:27,880 como os miento mucho 432 00:17:27,880 --> 00:17:30,500 porque os tengo que ir ocultando información 433 00:17:30,500 --> 00:17:31,880 no os puedo dar toda la información de golpe 434 00:17:31,880 --> 00:17:34,599 esto es como cuando vas a dejar a tu pareja 435 00:17:34,599 --> 00:17:35,259 vas poco a poco 436 00:17:35,259 --> 00:17:38,619 hasta que al final le dices, te llevo poniendo los cuernos 20 años 437 00:17:38,619 --> 00:17:39,640 pues igual 438 00:17:39,640 --> 00:17:42,720 pues esto es igual 439 00:17:42,720 --> 00:17:44,960 yo voy dándoles la información poco a poco 440 00:17:44,960 --> 00:17:46,279 pues a ver, os he mentido 441 00:17:46,279 --> 00:17:47,500 esto hace algo más 442 00:17:47,500 --> 00:17:50,559 esto llama a un método 443 00:17:50,559 --> 00:17:51,819 de la clase 444 00:17:51,819 --> 00:17:54,099 que es el método que se llama 445 00:17:54,099 --> 00:17:54,900 constructor 446 00:17:54,900 --> 00:17:57,140 y ahora me diréis 447 00:17:57,140 --> 00:17:59,519 pero si aquí no hay más métodos que esto 448 00:17:59,519 --> 00:18:02,599 vale, es que hay un oculto 449 00:18:02,599 --> 00:18:04,299 que no vemos, que está siempre 450 00:18:04,299 --> 00:18:06,519 por defecto, un oculto que no vemos 451 00:18:06,519 --> 00:18:08,160 y es el método 452 00:18:08,160 --> 00:18:10,200 constructor, me explico 453 00:18:10,200 --> 00:18:12,099 vamos a ponerlo aquí y así se queda 454 00:18:12,099 --> 00:18:13,319 recogido en el ejercicio 455 00:18:13,319 --> 00:18:15,920 por si habéis visto el proyecto y lo veis 456 00:18:15,920 --> 00:18:18,299 que es un método 457 00:18:18,299 --> 00:18:19,000 constructor 458 00:18:19,000 --> 00:18:21,599 ¿cómo se declara un método constructor? 459 00:18:21,819 --> 00:18:42,480 Aunque no, un método constructor es un método que obligatoriamente se llama igual que la clase, se llama igual a lo que tú quieras. 460 00:18:42,480 --> 00:18:44,720 a ver, el método constructor 461 00:18:44,720 --> 00:18:47,539 se llama igual que la clase, obligatorio 462 00:18:47,539 --> 00:18:49,460 entonces solo hay dos tipos 463 00:18:49,460 --> 00:18:51,539 de métodos, los normales que hago yo 464 00:18:51,539 --> 00:18:52,400 como me dé la gana 465 00:18:52,400 --> 00:18:54,660 y se hacen con las reglas que hemos dicho 466 00:18:54,660 --> 00:18:57,680 parámetros opcionales 467 00:18:57,680 --> 00:18:59,460 siempre tipo de retorno 468 00:18:59,460 --> 00:19:01,019 o void si no devuelve nada 469 00:19:01,019 --> 00:19:03,799 todo eso aplica a todos los métodos 470 00:19:03,799 --> 00:19:05,720 salvo a los métodos 471 00:19:05,720 --> 00:19:07,259 constructores que es una excepción 472 00:19:07,259 --> 00:19:08,980 los métodos constructores 473 00:19:08,980 --> 00:19:10,619 a ver, espera, ahora vamos a entender para qué sirven 474 00:19:10,619 --> 00:19:12,799 primero, se llaman igual que la clase 475 00:19:12,799 --> 00:19:14,980 luego, mi método constructor 476 00:19:14,980 --> 00:19:16,500 se tiene que llamar cafetera 477 00:19:16,500 --> 00:19:18,640 este empieza por mayúscula 478 00:19:18,640 --> 00:19:20,680 ya es una excepción, si la clase se llama 479 00:19:20,680 --> 00:19:22,720 cafetera con mayúscula, este tiene que llamar 480 00:19:22,720 --> 00:19:24,660 cafetera con mayúscula, porque Java es 481 00:19:24,660 --> 00:19:26,259 sensible a mayúsculas y minúsculas 482 00:19:26,259 --> 00:19:28,839 vale, el método constructor se llama igual que la clase 483 00:19:28,839 --> 00:19:30,299 tiene 484 00:19:30,299 --> 00:19:33,119 sus paréntesis aquí, como todos los métodos 485 00:19:33,119 --> 00:19:34,500 ahora veremos 486 00:19:34,500 --> 00:19:35,940 que se ponen estos paréntesis 487 00:19:35,940 --> 00:19:38,279 ¿qué valor de retorno devuelve? 488 00:19:38,279 --> 00:19:41,720 El método constructor no puede devolver nada nunca. 489 00:19:42,519 --> 00:19:45,119 Entonces, tanto es así que ni siquiera se le pone el void. 490 00:19:45,819 --> 00:19:48,240 Es el único al que no se le pone nada delante. 491 00:19:48,359 --> 00:19:50,039 Y si yo pongo un void, ¿vale? 492 00:19:51,240 --> 00:19:53,440 Pues, a ver, no es que me dé error. 493 00:19:53,660 --> 00:19:58,140 Es que, claro, me va a decir, este método, cuidado, es un constructor. 494 00:19:58,339 --> 00:19:59,259 Es que no pongas el void. 495 00:19:59,339 --> 00:20:00,319 Esto no se hace nunca así. 496 00:20:01,700 --> 00:20:02,819 No se pone nada. 497 00:20:03,079 --> 00:20:03,680 No se pone nada. 498 00:20:05,019 --> 00:20:06,259 Entonces, no devuelve nada. 499 00:20:06,960 --> 00:20:08,180 Obligatoriamente, no devuelve nada. 500 00:20:08,279 --> 00:20:10,359 vale, pues ya he hecho un método constructor 501 00:20:10,359 --> 00:20:12,680 este método constructor que yo he hecho 502 00:20:12,680 --> 00:20:14,220 estaba oculto 503 00:20:14,220 --> 00:20:16,400 aunque vosotros no lo estuviéramos viendo 504 00:20:16,400 --> 00:20:18,319 estaba oculto 505 00:20:18,319 --> 00:20:19,619 entonces yo lo he escrito 506 00:20:19,619 --> 00:20:22,480 y lo que estoy haciendo es como hacerlo ahí patente 507 00:20:22,480 --> 00:20:24,559 y visible, para que se vea, pero ya estaba 508 00:20:24,559 --> 00:20:26,599 vale, pues ahora volvemos 509 00:20:26,599 --> 00:20:28,400 al new, ¿qué hace el new? 510 00:20:29,920 --> 00:20:31,059 instancia el objeto 511 00:20:31,059 --> 00:20:32,980 el espacio 512 00:20:32,980 --> 00:20:34,579 de memoria se queda apuntado 513 00:20:34,579 --> 00:20:35,599 por esta variable 514 00:20:35,599 --> 00:20:37,440 y ahora llama 515 00:20:37,440 --> 00:20:40,119 al método constructor que esté aquí. 516 00:20:40,900 --> 00:20:42,099 El método constructor 517 00:20:42,099 --> 00:20:44,019 que está oculto, que es el método constructor 518 00:20:44,019 --> 00:20:46,039 por defecto, no hacía nada adentro. 519 00:20:46,500 --> 00:20:48,200 Pero si yo lo sobrescribo, 520 00:20:48,539 --> 00:20:50,119 como dices tú, yo lo sobrescribo, 521 00:20:50,660 --> 00:20:52,059 ahora ya puedo hacer aquí 522 00:20:52,059 --> 00:20:52,960 lo que me dé la gana. 523 00:20:53,940 --> 00:20:54,779 Por ejemplo, 524 00:20:58,140 --> 00:21:00,740 bienvenido a 525 00:21:00,740 --> 00:21:10,720 Inexpreso. 526 00:21:12,420 --> 00:21:12,859 Vale, 527 00:21:13,000 --> 00:21:14,619 pues entonces yo meto en el método 528 00:21:14,619 --> 00:21:16,960 constructor lo que me dé la gana, lo que yo quiera. 529 00:21:18,259 --> 00:21:23,400 Y este método se va a ejecutar cuando se llama al new. 530 00:21:23,799 --> 00:21:25,400 Luego el new hace tres cosas. 531 00:21:26,539 --> 00:21:27,539 Crear el espacio en memoria. 532 00:21:28,259 --> 00:21:29,539 La dirección donde se ha creado, 533 00:21:30,200 --> 00:21:32,299 guardarla en esta variable para que se quede apuntado. 534 00:21:32,519 --> 00:21:34,559 Y luego llamar al método constructor. 535 00:21:35,140 --> 00:21:36,960 Que yo no he hecho un método constructor. 536 00:21:37,680 --> 00:21:38,299 No pasa nada. 537 00:21:38,400 --> 00:21:42,240 Hay un oculto que no hace nada al que se llama por defecto. 538 00:21:42,380 --> 00:21:43,839 Luego es como no llamarlo, pero lo llama. 539 00:21:46,039 --> 00:21:47,400 Y luego, vale. 540 00:21:47,400 --> 00:21:54,799 Y si yo lo he hecho visible, entonces ya el que estaba oculto por defecto ya no existe, porque yo lo he sobrescrito. 541 00:21:55,299 --> 00:21:57,819 Y entonces al que llama es a este, porque yo lo he sobrescrito. 542 00:21:59,019 --> 00:21:59,259 ¿Vale? 543 00:21:59,799 --> 00:22:12,509 Entonces, ahora si nosotros ejecutáramos este main, si ejecutáramos este main, ¿qué va a ocurrir? 544 00:22:12,509 --> 00:22:14,809 Pues vamos a ver 545 00:22:14,809 --> 00:22:20,190 Efectivamente 546 00:22:20,190 --> 00:22:21,450 Me saluda 547 00:22:21,450 --> 00:22:24,569 Porque llama al constructor 548 00:22:24,569 --> 00:22:25,730 Me ha saludado 549 00:22:25,730 --> 00:22:27,089 Porque ha llamado al constructor 550 00:22:27,089 --> 00:22:28,869 Y luego ya 551 00:22:28,869 --> 00:22:32,210 Y luego ya ha hecho esto de aquí 552 00:22:32,210 --> 00:22:33,529 Luego ya ha hecho esto 553 00:22:33,529 --> 00:22:35,529 Esto no lo hemos visto nosotros 554 00:22:35,529 --> 00:22:36,250 Pero lo ha hecho 555 00:22:36,250 --> 00:22:37,049 ¿Vale? 556 00:22:39,710 --> 00:22:44,299 Luego, repitiendo 557 00:22:44,299 --> 00:22:46,920 El método constructor es un método especial 558 00:22:46,920 --> 00:22:48,599 Que obligatoriamente 559 00:22:48,599 --> 00:22:50,180 tiene el nombre de la clase 560 00:22:50,180 --> 00:22:52,259 ¿vale? 561 00:22:52,500 --> 00:22:54,259 si no lo tengo yo escrito 562 00:22:54,259 --> 00:22:56,880 habrá uno oculto, aunque yo no lo vea 563 00:22:56,880 --> 00:22:58,720 como este, pero que no tiene nada 564 00:22:58,720 --> 00:23:00,579 dentro, y si yo 565 00:23:00,579 --> 00:23:02,339 lo hago patente porque lo escribo 566 00:23:02,339 --> 00:23:04,380 piso el que estaba oculto 567 00:23:04,380 --> 00:23:06,140 lo piso y ahora es este el válido 568 00:23:06,140 --> 00:23:08,619 y este método cuando se llama 569 00:23:08,619 --> 00:23:10,559 cuando se hace el new, entonces es un método 570 00:23:10,559 --> 00:23:12,440 especial porque no se llama nunca 571 00:23:12,440 --> 00:23:14,059 por su nombre como los demás 572 00:23:14,059 --> 00:23:15,880 yo aquí podría hacer ahora 573 00:23:15,880 --> 00:23:18,440 pues vamos a servir, vamos a llenar la 574 00:23:18,440 --> 00:23:20,279 cafetera lo primero, porque como me la he 575 00:23:20,279 --> 00:23:21,319 inicializado vacía, 576 00:23:22,480 --> 00:23:24,420 cafetera, lo primero 577 00:23:24,420 --> 00:23:25,440 que vamos a hacer va a ser llenarla. 578 00:23:26,460 --> 00:23:28,160 Pues venga, lo primero que hago es llenarla. 579 00:23:28,299 --> 00:23:29,819 Entonces, el resto de métodos 580 00:23:29,819 --> 00:23:31,839 siempre se hacen 581 00:23:31,839 --> 00:23:33,980 asociados a un objeto. 582 00:23:33,980 --> 00:23:36,240 Un objeto creado llama el método. 583 00:23:37,000 --> 00:23:38,299 Pero los constructores 584 00:23:38,299 --> 00:23:39,779 no se llaman nunca así. 585 00:23:40,000 --> 00:23:41,980 Los constructores son métodos que se llaman 586 00:23:41,980 --> 00:23:43,980 solo cuando se crea un 587 00:23:43,980 --> 00:23:45,819 objeto al momento de construir con el new. 588 00:23:45,900 --> 00:23:47,940 Por eso se llaman constructores. No es un 589 00:23:47,940 --> 00:23:50,000 método que luego yo pueda llamar aquí haciendo 590 00:23:50,000 --> 00:23:52,160 cafetera 591 00:23:52,160 --> 00:23:53,019 punto 592 00:23:53,019 --> 00:23:58,549 cafetera. No puedo. 593 00:23:59,089 --> 00:24:00,490 No me ha dejado, de hecho. Yo no puedo 594 00:24:00,490 --> 00:24:02,509 hacer esto. No puedo 595 00:24:02,509 --> 00:24:04,029 llamar al método constructor 596 00:24:04,029 --> 00:24:07,809 con un objeto. 597 00:24:08,109 --> 00:24:10,410 Aunque ese método está dentro. 598 00:24:10,910 --> 00:24:12,509 Entonces uno podría decir, hombre, es un método que está 599 00:24:12,509 --> 00:24:13,970 dentro, ¿puedo llamarle con el objeto? Pues no. 600 00:24:14,390 --> 00:24:15,910 Este método solo vale 601 00:24:15,910 --> 00:24:18,589 para ser llamado en el momento 602 00:24:18,589 --> 00:24:19,650 del new y va asociado al new. 603 00:24:19,650 --> 00:24:21,230 por eso se le llama constructor 604 00:24:21,230 --> 00:24:23,250 bueno 605 00:24:23,250 --> 00:24:25,170 hasta aquí está claro 606 00:24:25,170 --> 00:24:26,970 vale, pues entonces 607 00:24:26,970 --> 00:24:30,210 ¿qué ocurre? yo he dicho que yo aquí meto lo que me dé la gana 608 00:24:30,210 --> 00:24:31,970 vale, pues hombre 609 00:24:31,970 --> 00:24:33,470 meter mensajitos está muy bien 610 00:24:33,470 --> 00:24:35,089 pero ya de paso 611 00:24:35,089 --> 00:24:38,250 ya de paso que tengo un constructor 612 00:24:38,250 --> 00:24:40,150 ¿para qué se suelen usar? 613 00:24:40,349 --> 00:24:42,170 ¿cuál es el uso habitual de los constructores? 614 00:24:42,930 --> 00:24:44,089 pues oye, ya que tienes 615 00:24:44,089 --> 00:24:46,349 aquí unos paréntesis maravillosos 616 00:24:46,349 --> 00:24:47,369 no los desperdicies 617 00:24:47,369 --> 00:24:49,569 usa esos paréntesis 618 00:24:49,569 --> 00:24:51,190 para pasar unos valores 619 00:24:51,190 --> 00:24:54,029 y úsalos para inicializar 620 00:24:54,029 --> 00:24:56,190 las propiedades, y ya en el momento 621 00:24:56,190 --> 00:24:58,089 de crear el objeto, a la vez que lo 622 00:24:58,089 --> 00:24:59,930 creas, le das un primer valor 623 00:24:59,930 --> 00:25:02,009 a las propiedades, y te ahorras esto 624 00:25:02,009 --> 00:25:03,990 que queda horroroso, y no lo vais a ver 625 00:25:03,990 --> 00:25:06,049 nunca, entonces 626 00:25:06,049 --> 00:25:07,690 vamos a hacer eso 627 00:25:07,690 --> 00:25:08,809 decimos, oye pues 628 00:25:08,809 --> 00:25:11,930 voy a hacer un 629 00:25:11,930 --> 00:25:12,470 constructor 630 00:25:12,470 --> 00:25:15,849 que me muestre el mensajito, el mensaje 631 00:25:15,849 --> 00:25:17,990 lo dejo, y además de mostrarme 632 00:25:17,990 --> 00:25:18,710 el mensajito 633 00:25:18,710 --> 00:25:21,730 que reciba dos parámetros 634 00:25:21,730 --> 00:25:23,809 por aquí, porque yo 635 00:25:23,809 --> 00:25:25,710 en estos paréntesis del constructo puedo poner lo que quiera 636 00:25:25,710 --> 00:25:27,450 y soy libre, aquí delante no 637 00:25:27,450 --> 00:25:29,730 aquí delante no puedo poner nada, eso tiene que estar 638 00:25:29,730 --> 00:25:31,829 vacío, pero 639 00:25:31,829 --> 00:25:34,109 aquí puedo poner lo que yo quiera, tengo libertad 640 00:25:34,109 --> 00:25:35,950 pues vamos a pasarle 641 00:25:35,950 --> 00:25:37,789 dos valores 642 00:25:37,789 --> 00:25:40,710 capacidad 643 00:25:40,710 --> 00:25:46,430 y dos parámetros 644 00:25:46,430 --> 00:25:47,549 cantidad 645 00:25:47,549 --> 00:25:51,009 actual, que los estoy llamando 646 00:25:51,009 --> 00:25:52,089 igual a propósito 647 00:25:52,089 --> 00:25:57,410 no, no, son parámetros 648 00:25:57,410 --> 00:25:58,750 entonces tengo que dar el tipo de dato 649 00:25:58,750 --> 00:26:01,069 claro 650 00:26:01,069 --> 00:26:03,069 sí, sí, sí, entonces yo le voy a pasar 651 00:26:03,069 --> 00:26:04,009 dos parámetros double 652 00:26:04,009 --> 00:26:07,509 porque yo aquí en los paréntesis meto lo que quiera 653 00:26:07,509 --> 00:26:08,789 claro 654 00:26:08,789 --> 00:26:10,950 y ahora, ¿para qué voy a usar esos parámetros double 655 00:26:10,950 --> 00:26:11,549 que yo le paso? 656 00:26:12,329 --> 00:26:14,950 pues para inicializar, dar un primer valor 657 00:26:14,950 --> 00:26:16,950 a esas propiedades y así en el momento 658 00:26:16,950 --> 00:26:18,009 en el que lo construyo 659 00:26:18,009 --> 00:26:20,490 ya de paso le doy un primer valor 660 00:26:20,490 --> 00:26:22,410 vale, pues entonces 661 00:26:22,410 --> 00:26:23,829 ¿qué voy a hacer con estos parámetros? 662 00:26:25,089 --> 00:26:26,490 pues capacidad 663 00:26:26,490 --> 00:26:29,029 igual a este 664 00:26:29,029 --> 00:26:30,730 parámetro, uy me viene la ambigüedad 665 00:26:30,730 --> 00:26:31,789 del otro día, ¿os acordáis? 666 00:26:32,470 --> 00:26:33,890 ojo que aquí capacidad 667 00:26:33,890 --> 00:26:36,329 sirve para dos cosas 668 00:26:36,329 --> 00:26:38,150 discapacidad 669 00:26:38,150 --> 00:26:40,750 sirve para la propiedad 670 00:26:40,750 --> 00:26:42,609 del objeto y para el parámetro 671 00:26:42,609 --> 00:26:44,890 pues aquí sí que me viene 672 00:26:44,890 --> 00:26:45,849 estupendo el dis 673 00:26:45,849 --> 00:26:50,250 eso 674 00:26:50,250 --> 00:26:52,990 vale, entonces con esta sentencia 675 00:26:52,990 --> 00:26:55,430 a la propiedad capacidad del objeto 676 00:26:55,430 --> 00:26:57,549 le asigno esta 677 00:26:57,549 --> 00:26:59,569 y ahora 678 00:26:59,569 --> 00:27:00,089 lo mismo 679 00:27:00,089 --> 00:27:02,569 a la propiedad 680 00:27:02,569 --> 00:27:05,009 dis cantidad actual 681 00:27:05,009 --> 00:27:06,910 le asigno 682 00:27:06,910 --> 00:27:08,369 cantidad 683 00:27:08,369 --> 00:27:10,250 actual 684 00:27:10,250 --> 00:27:12,130 vale 685 00:27:12,130 --> 00:27:15,690 pues este es uno del constructo de la propiedad de la gana 686 00:27:15,690 --> 00:27:18,769 pero este es el uso habitual de los constructores 687 00:27:18,769 --> 00:27:20,650 aprovecharse 688 00:27:20,650 --> 00:27:22,329 de que cuando son llamados 689 00:27:22,329 --> 00:27:24,230 los constructores, ahora tenemos que cambiar 690 00:27:24,230 --> 00:27:25,529 aquí algo, pero bueno, ahora lo cambiamos 691 00:27:25,529 --> 00:27:28,250 aprovecharse de que en el momento de 692 00:27:28,250 --> 00:27:30,210 construirlo, que es cuando se llama 693 00:27:30,210 --> 00:27:32,210 el constructor, vamos a aprovechar el momento de 694 00:27:32,210 --> 00:27:34,250 construirlo para darle 695 00:27:34,250 --> 00:27:36,250 unos primeros valores, vamos a aprovecharlo 696 00:27:36,250 --> 00:27:37,309 ¿vale? 697 00:27:38,210 --> 00:27:40,150 no es que sea obligatorio usar el constructor 698 00:27:40,150 --> 00:27:42,190 para esto, pero bueno, tiene 699 00:27:42,190 --> 00:27:43,829 sentido, entonces 700 00:27:43,829 --> 00:27:45,930 y repito, estamos 701 00:27:45,930 --> 00:27:48,769 como siempre, no olvidéis 702 00:27:48,769 --> 00:27:50,490 memorizar todo lo que decimos 703 00:27:50,490 --> 00:27:52,589 lo que es el dis, en los casos en los que 704 00:27:52,589 --> 00:27:54,650 hemos usado, todo, todo, todo en la memoria 705 00:27:54,650 --> 00:27:56,549 no se puede olvidar una cosa de una para otra 706 00:27:56,549 --> 00:27:58,890 porque esto va a ser una incorporación 707 00:27:58,890 --> 00:28:00,710 de cosas una tras otra, una tras otra, una tras otra 708 00:28:00,710 --> 00:28:02,329 si olvidamos esta 709 00:28:02,329 --> 00:28:04,269 las cosas posteriores 710 00:28:04,269 --> 00:28:06,150 ya no tienen ningún sentido 711 00:28:06,150 --> 00:28:08,890 y no quiero que baje el nivel de suspenso 712 00:28:08,890 --> 00:28:09,430 uy, perdón 713 00:28:09,430 --> 00:28:11,569 me ha traicionado el subconsciente 714 00:28:11,569 --> 00:28:13,809 me ha traído el sufrimiento 715 00:28:13,809 --> 00:28:19,230 no quiero 716 00:28:19,230 --> 00:28:20,609 que suba 717 00:28:20,609 --> 00:28:22,230 la cantidad de su pelo 718 00:28:22,230 --> 00:28:25,210 un segundo que completemos esto y ya me haces la pregunta 719 00:28:25,210 --> 00:28:27,210 a menos que sea muy urgentísima 720 00:28:27,210 --> 00:28:28,849 vale, pues si no es urgente 721 00:28:28,849 --> 00:28:30,309 y Mario igual, esperamos un momento 722 00:28:30,309 --> 00:28:31,430 vale, entonces 723 00:28:31,430 --> 00:28:34,029 yo he cambiado el constructor 724 00:28:34,029 --> 00:28:36,690 he cambiado y le he dicho 725 00:28:36,690 --> 00:28:37,990 que va a recibir dos parámetros 726 00:28:37,990 --> 00:28:40,349 hombre, pues entonces 727 00:28:40,349 --> 00:28:43,190 cuando yo haga esto 728 00:28:43,190 --> 00:28:44,910 ¿para qué estaban aquí estos parámetros? 729 00:28:45,490 --> 00:28:46,329 pues estaban para algo 730 00:28:46,329 --> 00:28:49,430 estaban para poner los posibles 731 00:28:49,430 --> 00:28:51,450 valores que uno 732 00:28:51,450 --> 00:28:53,369 quiere poner en el caso de que 733 00:28:53,369 --> 00:28:54,490 el constructor reciba 734 00:28:54,490 --> 00:28:57,390 yo he hecho un constructor que recibe 735 00:28:57,390 --> 00:28:59,329 valores, porque me ha dado la gana a mí hacerlo 736 00:28:59,329 --> 00:29:00,630 para que reciba valores 737 00:29:00,630 --> 00:29:02,650 y los use para inicializar 738 00:29:02,650 --> 00:29:04,910 pues entonces va a tener que ponerlos aquí 739 00:29:04,910 --> 00:29:06,869 porque ya el compilador se te está quejando, está diciendo 740 00:29:06,869 --> 00:29:09,390 oye, perdona, que al constructor le has dicho que va a recibir 741 00:29:09,390 --> 00:29:11,769 dos de Abel, pues tendrás que pasárselos 742 00:29:11,769 --> 00:29:13,430 vale, pues el primero 743 00:29:13,430 --> 00:29:14,529 que es la capacidad 744 00:29:14,529 --> 00:29:16,769 y el segundo la cantidad actual 745 00:29:16,769 --> 00:29:19,349 pues ala, estas líneas 746 00:29:19,349 --> 00:29:21,369 ya me sobran completamente 747 00:29:21,369 --> 00:29:24,630 no, pero no, esto bien 748 00:29:24,630 --> 00:29:25,789 lo que pasa es que estoy empezando a bailar 749 00:29:25,789 --> 00:29:27,089 para hacer más cosas 750 00:29:27,089 --> 00:29:29,430 claro, pues frena 751 00:29:29,430 --> 00:29:30,509 o no, pero bueno 752 00:29:30,509 --> 00:29:32,410 vale, entonces entendido 753 00:29:32,410 --> 00:29:34,789 ahora que hemos hecho con New Cafetera 754 00:29:34,789 --> 00:29:37,569 hemos creado el objeto, lo hemos dejado apuntado 755 00:29:37,569 --> 00:29:39,490 por cafetera y hemos llamado 756 00:29:39,490 --> 00:29:41,210 a este método 757 00:29:41,210 --> 00:29:43,210 y este método que ha hecho 758 00:29:43,210 --> 00:29:45,269 ha cogido el 100 759 00:29:45,269 --> 00:29:47,589 lo ha guardado 760 00:29:47,589 --> 00:29:49,690 en capacidad, ha cogido 761 00:29:49,690 --> 00:29:51,630 el 0, lo ha guardado 762 00:29:51,630 --> 00:29:53,529 en cantidad actual, luego 763 00:29:53,529 --> 00:29:55,609 ha hecho precisamente esto que íbamos a hacer 764 00:29:55,609 --> 00:29:57,509 luego nosotros, luego esto ya no sobra 765 00:29:57,509 --> 00:29:59,250 ya no nos hace falta 766 00:29:59,250 --> 00:30:01,329 ¿no? 767 00:30:01,329 --> 00:30:03,450 o sea, con la llamada 768 00:30:03,450 --> 00:30:04,150 al constructor 769 00:30:04,150 --> 00:30:13,140 ya inicializamos 770 00:30:13,140 --> 00:30:14,720 las propiedades 771 00:30:14,720 --> 00:30:17,339 porque lo hemos programado así nosotros 772 00:30:17,339 --> 00:30:19,539 y entonces nos viene muy bien 773 00:30:19,539 --> 00:30:21,619 ¿vale? 774 00:30:23,579 --> 00:30:23,980 ¿entendido? 775 00:30:24,859 --> 00:30:26,680 a ver, tú ibas a preguntar algo 776 00:30:26,680 --> 00:30:31,720 si los parámetros no se llamasen 777 00:30:31,720 --> 00:30:33,160 igual que los atributos de cafetera 778 00:30:33,160 --> 00:30:34,160 el dis no te hace falta 779 00:30:34,160 --> 00:30:37,160 no te hace falta, pero lo habitual 780 00:30:37,160 --> 00:30:38,000 es que se llamen igual 781 00:30:38,000 --> 00:30:40,440 Claro, es que se llamen igual porque significan eso. 782 00:30:41,119 --> 00:30:44,799 Entonces, el que te ve el código, pues ve que esto es para inicializar la capacidad, 783 00:30:45,039 --> 00:30:46,119 luego tiene sentido que se llame capacidad, 784 00:30:46,880 --> 00:30:48,759 y esto es para inicializar la cantidad actual, 785 00:30:48,880 --> 00:30:52,259 tiene sentido que se llame así, entonces este es el uso habitual. 786 00:30:52,859 --> 00:30:54,759 Queda más claro que si tú llamas a esto X e Y. 787 00:30:55,059 --> 00:30:56,839 Queda un constructor muy feo si lo llamas X e Y. 788 00:30:57,319 --> 00:30:58,279 Mario, ¿vas a preguntar algo? 789 00:30:59,920 --> 00:31:01,019 Ah, que ya lo has arreglado. 790 00:31:01,599 --> 00:31:04,480 Vale, entonces esto es el uso habitual de los constructores. 791 00:31:04,480 --> 00:31:06,079 de hecho es tan así 792 00:31:06,079 --> 00:31:08,720 que no debería 793 00:31:08,720 --> 00:31:10,240 decirlo desde ya 794 00:31:10,240 --> 00:31:12,200 pero como vosotros otra cosa no 795 00:31:12,200 --> 00:31:14,339 pero las gilipolleces se os dan fenomenal 796 00:31:14,339 --> 00:31:16,259 pues vamos a 797 00:31:16,259 --> 00:31:17,339 es verdad 798 00:31:17,339 --> 00:31:19,640 o sea cual que las cosas 799 00:31:19,640 --> 00:31:22,519 no pero me refiero que para las 800 00:31:22,519 --> 00:31:23,700 pejiguerías 801 00:31:23,700 --> 00:31:25,319 sois buenísimos 802 00:31:25,319 --> 00:31:28,160 entonces si vosotros 803 00:31:28,160 --> 00:31:28,640 de hecho 804 00:31:28,640 --> 00:31:30,460 vamos a 805 00:31:30,460 --> 00:31:31,099 a 806 00:31:31,099 --> 00:31:34,279 a comentar 807 00:31:34,279 --> 00:31:34,940 este constructor 808 00:31:34,940 --> 00:31:37,859 entonces, el Eclipse 809 00:31:37,859 --> 00:31:40,099 este, tiene un montón 810 00:31:40,099 --> 00:31:41,839 de ayudas sobre la marcha 811 00:31:41,839 --> 00:31:44,319 obviamente, pues para refactorizar 812 00:31:44,319 --> 00:31:45,700 para formatear código 813 00:31:45,700 --> 00:31:47,759 para hacer mil tonterías 814 00:31:47,759 --> 00:31:48,579 entonces para 815 00:31:48,579 --> 00:31:50,960 fijaos, imagina 816 00:31:50,960 --> 00:31:52,799 estamos haciendo la clase 817 00:31:52,799 --> 00:31:54,880 la clase cafetera 818 00:31:54,880 --> 00:31:57,859 ya, me he dado cuenta 819 00:31:57,859 --> 00:31:59,180 pero ahora lo vais a agradecer 820 00:31:59,180 --> 00:32:00,519 estamos haciendo la clase 821 00:32:00,519 --> 00:32:01,220 que si 822 00:32:01,220 --> 00:32:06,259 claro 823 00:32:06,259 --> 00:32:08,160 está la clase y ahora 824 00:32:08,160 --> 00:32:10,640 nosotros ya a partir de ahora cada vez que hagamos 825 00:32:10,640 --> 00:32:12,980 clases vamos a hacer estos constructores 826 00:32:12,980 --> 00:32:14,660 porque nos van a facilitar 827 00:32:14,660 --> 00:32:16,359 la vida cuando instanciemos los objetos 828 00:32:16,359 --> 00:32:18,660 hacemos new con los primeros valores y ya lo 829 00:32:18,660 --> 00:32:20,579 tenemos, lo vamos a hacer ya por 830 00:32:20,579 --> 00:32:22,640 sistema, pues como Eclipse se sabe 831 00:32:22,640 --> 00:32:25,019 que por sistema vamos a usar estos constructores 832 00:32:25,019 --> 00:32:26,559 porque son muy útiles para 833 00:32:26,559 --> 00:32:28,640 luego en el main crear el objeto y darle 834 00:32:28,640 --> 00:32:30,819 valores iniciales, pues él nos 835 00:32:30,819 --> 00:32:32,799 dice, venga, botón 836 00:32:32,799 --> 00:32:35,180 derecho, source, 837 00:32:36,200 --> 00:32:37,160 genera constructor 838 00:32:37,160 --> 00:32:39,119 usando campos. 839 00:32:39,539 --> 00:32:40,880 ¿Qué campos quiere usar el constructor? 840 00:32:41,220 --> 00:32:42,519 Capacidad cantidad actual, 841 00:32:43,539 --> 00:32:44,259 géneralo 842 00:32:44,259 --> 00:32:46,059 y 843 00:32:46,059 --> 00:32:51,339 géneralo. 844 00:32:51,980 --> 00:32:53,000 ¿Y qué te ha hecho 845 00:32:53,000 --> 00:32:53,400 el tío? 846 00:32:54,460 --> 00:32:56,700 Pues te ha creado él el mismo 847 00:32:56,700 --> 00:32:58,059 constructor que hemos hecho nosotros. 848 00:32:58,059 --> 00:33:00,920 ya, esto está relacionado con la herencia 849 00:33:00,920 --> 00:33:02,900 super ahora mismo es como 850 00:33:02,900 --> 00:33:03,359 nada 851 00:33:03,359 --> 00:33:06,180 lo puedes quitar, a ver 852 00:33:06,180 --> 00:33:09,039 super es, estás llamando al constructor de la super clase 853 00:33:09,039 --> 00:33:10,559 la super clase de cafeteras object 854 00:33:10,559 --> 00:33:13,059 llamas al constructor de object que no te hace nada 855 00:33:13,059 --> 00:33:14,779 vale, vale, vale 856 00:33:14,779 --> 00:33:15,200 claro 857 00:33:15,200 --> 00:33:21,160 y te pone el public también que todos nos lo hemos puesto 858 00:33:21,160 --> 00:33:24,980 eso es una clase, pero una subclase 859 00:33:24,980 --> 00:33:26,500 ¿cómo se hace? 860 00:33:26,500 --> 00:33:28,779 ¿Cómo haríamos la cafetera roventa? 861 00:33:29,880 --> 00:33:31,000 Cafetera roventa, 862 00:33:31,220 --> 00:33:32,559 estens, cafetera. 863 00:33:35,349 --> 00:33:36,329 Pondrías aquí 864 00:33:36,329 --> 00:33:38,829 estens 865 00:33:38,829 --> 00:33:40,190 de la cafetera que tú eres. 866 00:33:40,309 --> 00:33:42,710 Cafetera general, genérica, 867 00:33:42,890 --> 00:33:43,309 lo que sea. 868 00:33:45,150 --> 00:33:45,710 Vale. 869 00:33:47,990 --> 00:33:48,809 Vale, pues 870 00:33:48,809 --> 00:33:50,829 entonces, como veis, 871 00:33:51,049 --> 00:33:52,890 este es el uso habitual de los constructores 872 00:33:52,890 --> 00:33:54,589 y es tan así que el propio Eclipse 873 00:33:54,589 --> 00:33:56,490 te permite generar esto 874 00:33:56,490 --> 00:33:58,829 automáticamente, como hemos visto que se hace 875 00:33:58,829 --> 00:34:00,730 te pone el super, el super 876 00:34:00,730 --> 00:34:02,589 lo podéis borrar, no hace nada, ya entenderemos 877 00:34:02,589 --> 00:34:04,609 que es el super, esto es lo que se llama 878 00:34:04,609 --> 00:34:06,589 el constructor con parámetros 879 00:34:06,589 --> 00:34:08,329 porque tiene un constructor 880 00:34:08,329 --> 00:34:10,730 con parámetros que sirven para inicializar 881 00:34:10,730 --> 00:34:11,730 las propiedades 882 00:34:11,730 --> 00:34:14,610 y veis el eclipse 883 00:34:14,610 --> 00:34:16,510 ya esos parámetros se los da con este 884 00:34:16,510 --> 00:34:18,710 nombre, con lo cual luego tiene que poner el dis, etc 885 00:34:18,710 --> 00:34:20,409 y queda todo estupendo 886 00:34:20,409 --> 00:34:25,190 constructores 887 00:34:25,190 --> 00:34:32,079 cuidado con las generaciones de 888 00:34:32,079 --> 00:34:33,940 código que uno ya se acostuma a generar 889 00:34:33,940 --> 00:34:35,960 el código automáticamente y llega un momento que ya no saben lo que está haciendo. 890 00:34:36,599 --> 00:34:36,840 Pues no. 891 00:34:39,360 --> 00:34:39,760 Constructores 892 00:34:39,760 --> 00:34:41,639 puede haber más de uno. 893 00:34:42,980 --> 00:34:44,519 ¿En qué se van a diferenciar? 894 00:34:44,659 --> 00:34:45,300 Ya lo vimos 895 00:34:45,300 --> 00:34:48,139 cuando vimos funciones en la 896 00:34:48,139 --> 00:34:49,059 lista de parámetros. 897 00:34:49,980 --> 00:34:51,800 Puede ser que yo en mi aplicación 898 00:34:51,800 --> 00:34:53,960 no quiera crear siempre las 899 00:34:53,960 --> 00:34:56,219 cafeteras dándole valores. A lo mejor 900 00:34:56,219 --> 00:34:57,360 esta es la cafetera 1. 901 00:34:57,820 --> 00:34:59,440 Pero mi aplicación, por lo que sea, 902 00:35:00,500 --> 00:35:01,780 yo quiero hacer otra cafetera 903 00:35:01,780 --> 00:35:06,079 quiero hacer otra, la cafetera 2 904 00:35:06,079 --> 00:35:09,579 vamos a ver lo que pasa 905 00:35:09,579 --> 00:35:12,739 quiero hacer la cafetera 2 906 00:35:12,739 --> 00:35:14,659 pero a esta no quiero 907 00:35:14,659 --> 00:35:19,219 no quiero darle valores iniciales 908 00:35:19,219 --> 00:35:20,719 no quiero darle valores iniciales 909 00:35:20,719 --> 00:35:23,179 quiero que se cree sin valores y luego yo los inicializo 910 00:35:23,179 --> 00:35:26,699 pues el compilador me va a decir, ojo pero no 911 00:35:26,699 --> 00:35:30,780 tú has sobrescrito el constructor 912 00:35:30,780 --> 00:35:32,760 que había, lo has sobrescrito 913 00:35:32,760 --> 00:35:34,179 y le has puesto parámetros. 914 00:35:34,400 --> 00:35:36,260 Bueno, de repente es un mi país y ya está. 915 00:35:36,860 --> 00:35:38,019 No, más fácil que eso. 916 00:35:38,219 --> 00:35:39,000 Entonces el comercio te dice, 917 00:35:39,079 --> 00:35:40,679 lo has sobrescrito y le has puesto parámetros. 918 00:35:41,440 --> 00:35:42,760 Luego lo siento mucho, 919 00:35:43,320 --> 00:35:44,900 pero vas a tener que ponerle parámetros. 920 00:35:45,800 --> 00:35:46,300 No hay tu tía. 921 00:35:46,579 --> 00:35:47,000 Ah, no. 922 00:35:47,559 --> 00:35:49,900 Es que podemos hacer varios constructores. 923 00:35:50,500 --> 00:35:51,659 Uno con parámetros, 924 00:35:52,059 --> 00:35:53,059 otro sin parámetros, 925 00:35:53,400 --> 00:35:54,880 otro con 20.000 parámetros 926 00:35:54,880 --> 00:35:56,059 para que te haga 1.000 cosas. 927 00:35:56,719 --> 00:35:58,800 Podemos hacer tantos constructores como queramos. 928 00:35:58,800 --> 00:36:00,300 El orden de capacidad y cantidad 929 00:36:00,300 --> 00:36:01,780 siempre va a tener que tener el mismo orden. 930 00:36:01,780 --> 00:36:03,920 si pones dos parámetros 931 00:36:03,920 --> 00:36:05,280 y luego en la siguiente pones tres parámetros 932 00:36:05,280 --> 00:36:08,159 Sí, sí, sí, sí, claro, eso es como las funciones 933 00:36:08,159 --> 00:36:09,280 el orden tiene, claro 934 00:36:09,280 --> 00:36:11,199 claro, entonces yo podría 935 00:36:11,199 --> 00:36:13,000 hacer aquí un constructor 936 00:36:13,000 --> 00:36:15,860 cafetera 937 00:36:15,860 --> 00:36:17,480 cafetera 938 00:36:17,480 --> 00:36:19,280 que se limitará a saludar 939 00:36:19,280 --> 00:36:21,519 es que como lo he generado se me ha quitado el saludo 940 00:36:21,519 --> 00:36:22,840 lo tenía yo aquí puesto 941 00:36:22,840 --> 00:36:25,059 podría hacerme yo un constructor 942 00:36:25,059 --> 00:36:27,460 que se limitará a saludar 943 00:36:27,460 --> 00:36:28,460 sin más, este 944 00:36:28,460 --> 00:36:31,239 y no pasa nada 945 00:36:31,239 --> 00:36:33,659 y los dos pueden coexistir perfectamente 946 00:36:33,659 --> 00:36:34,860 porque 947 00:36:34,860 --> 00:36:37,059 se distinguen perfectamente 948 00:36:37,059 --> 00:36:39,000 a cuál estoy llamando, depende de los parámetros 949 00:36:39,000 --> 00:36:41,119 que pase, esto lo vimos cuando hicimos 950 00:36:41,119 --> 00:36:43,000 funciones, puede haber dos funciones 951 00:36:43,000 --> 00:36:45,199 que se llamen igual, cuando sé si estoy llamando 952 00:36:45,199 --> 00:36:47,019 a una o a la otra, depende 953 00:36:47,019 --> 00:36:48,079 de la lista de parámetros 954 00:36:48,079 --> 00:36:50,619 pues aquí no hay ambigüedad 955 00:36:50,619 --> 00:36:53,059 se llaman igual, esto es lo que se llama 956 00:36:53,059 --> 00:36:55,480 sobrecarga de métodos 957 00:36:55,480 --> 00:36:56,599 overload 958 00:36:56,599 --> 00:36:58,920 o como lo queráis llamar 959 00:36:58,920 --> 00:37:00,519 vale, es decir 960 00:37:00,519 --> 00:37:03,480 El constructor este está sobrecargado. 961 00:37:04,320 --> 00:37:06,300 Sobrecargado significa que tiene un huevo de trabajo. 962 00:37:06,800 --> 00:37:08,059 Es decir, aparece muchas veces. 963 00:37:08,159 --> 00:37:09,360 El pobre está sobrecargado. 964 00:37:09,900 --> 00:37:12,300 Tiene dos trabajos, este y este, tiene dos. 965 00:37:12,400 --> 00:37:14,480 Por eso está sobrecargado de trabajo. 966 00:37:15,539 --> 00:37:19,780 ¿Cuándo distingue el constructor si le han pedido este trabajo o le han pedido este? 967 00:37:19,860 --> 00:37:20,639 ¿Cuándo lo distingue? 968 00:37:21,280 --> 00:37:23,519 Pues si le han pasado parámetros o no le han pasado. 969 00:37:23,519 --> 00:37:29,659 Así distingue el constructor si tiene que hacer este trabajo o tiene que hacer este de los dos que le sobrecargan. 970 00:37:29,659 --> 00:37:30,920 entonces aquí 971 00:37:30,920 --> 00:37:33,039 aquí no hay duda 972 00:37:33,039 --> 00:37:35,519 de que constructor le han pedido 973 00:37:35,519 --> 00:37:36,840 el de arriba 974 00:37:36,840 --> 00:37:40,139 aquí no hay duda de cual le han pedido 975 00:37:40,139 --> 00:37:41,599 el de abajo 976 00:37:41,599 --> 00:37:43,019 vale 977 00:37:43,019 --> 00:37:46,039 aquí estará haciendo el de abajo, aquí el de arriba 978 00:37:46,039 --> 00:37:48,079 entonces constructores puede haber 979 00:37:48,079 --> 00:37:48,659 muchos 980 00:37:48,659 --> 00:37:51,780 pero tienen que cambiar, tienen que variar 981 00:37:51,780 --> 00:37:52,679 en los parámetros 982 00:37:52,679 --> 00:37:54,699 porque es la forma de distinguir 983 00:37:54,699 --> 00:37:59,329 vale, que me calle ya 984 00:37:59,329 --> 00:38:00,269 lo que quiero decir 985 00:38:00,269 --> 00:38:07,219 Bueno 986 00:38:07,219 --> 00:38:10,099 Ya todo el mundo se ha aprendido en la cabeza 987 00:38:10,099 --> 00:38:12,119 Lo que es un constructor, cómo se usa, etc 988 00:38:12,119 --> 00:38:13,699 Y ya no se le va a olvidar nunca jamás 989 00:38:13,699 --> 00:38:15,099 Y si prevé que se le va a olvidar 990 00:38:15,099 --> 00:38:16,659 Se lo va a mirar esta tarde, ¿no? 991 00:38:19,280 --> 00:38:19,639 Vale 992 00:38:19,639 --> 00:38:21,719 Bueno, pues ahora ya 993 00:38:21,719 --> 00:38:24,000 Esta aplicación tampoco merece la pena que hagamos mucho más 994 00:38:24,000 --> 00:38:25,280 Pues uno aquí podría hacer un menú 995 00:38:25,280 --> 00:38:26,920 ¿Qué quieres? ¿Llenarla? ¿Servir taza? 996 00:38:27,340 --> 00:38:28,659 Pues ya, llamar a los métodos 997 00:38:28,659 --> 00:38:30,440 Vamos a servir una taza 998 00:38:30,440 --> 00:38:33,960 en la cafetera 999 00:38:33,960 --> 00:38:38,199 la cafetera 2 1000 00:38:38,199 --> 00:38:38,980 que está vacía 1001 00:38:38,980 --> 00:38:41,820 porque no le hemos inicializado las propiedades 1002 00:38:41,820 --> 00:38:44,219 pues podemos servir una taza 1003 00:38:44,219 --> 00:38:48,039 que tenga capacidad 45 1004 00:38:48,039 --> 00:38:49,639 pues si miramos la 1005 00:38:49,639 --> 00:38:51,719 cantidad actual va a seguir a 0 1006 00:38:51,719 --> 00:38:52,659 no hemos podido servirla 1007 00:38:52,659 --> 00:38:54,739 bueno, ya aquí se trata de probar 1008 00:38:54,739 --> 00:38:56,480 los métodos, hacer un mail, lo que queráis 1009 00:38:56,480 --> 00:38:57,980 para, ya está 1010 00:38:57,980 --> 00:39:01,119 Para ver como, aquí ya podéis hacer un main y probar 1011 00:39:01,119 --> 00:39:02,920 Servirla 1012 00:39:02,920 --> 00:39:04,940 Una taza, mirar después la cantidad 1013 00:39:04,940 --> 00:39:07,119 Que tiene, para ver si realmente 1014 00:39:07,119 --> 00:39:08,820 La ha servido esa cantidad o no 1015 00:39:08,820 --> 00:39:10,760 Pues ya nada, este main ya lo hacéis 1016 00:39:10,760 --> 00:39:11,320 Probáis 1017 00:39:11,320 --> 00:39:14,480 Y para ver que funciona 1018 00:39:14,480 --> 00:39:17,119 Vale, pues nos vamos al recreo