1 00:00:00,880 --> 00:00:02,580 A ver, venga, seguimos. 2 00:00:03,700 --> 00:00:04,339 Vale, pues entonces 3 00:00:04,339 --> 00:00:06,540 este término ya no suena. 4 00:00:07,200 --> 00:00:08,759 Y se puede usar en otros 5 00:00:08,759 --> 00:00:10,800 contextos, no solo para llamar 6 00:00:10,800 --> 00:00:11,800 al constructor. 7 00:00:13,500 --> 00:00:14,779 Se suele, se puede 8 00:00:14,779 --> 00:00:15,560 usar también 9 00:00:15,560 --> 00:00:18,420 en cualquier momento, por ejemplo, 10 00:00:19,420 --> 00:00:20,719 super, si uno pone 11 00:00:20,719 --> 00:00:23,059 super punto, pues se accede 12 00:00:23,059 --> 00:00:24,739 a todo lo que hay 13 00:00:24,739 --> 00:00:26,420 en la superclase, a 14 00:00:26,420 --> 00:00:28,420 métodos, a... 15 00:00:28,420 --> 00:00:28,679 ¿Vale? 16 00:00:30,879 --> 00:00:33,780 Claro, porque es que ya está ahí dentro 17 00:00:33,780 --> 00:00:38,759 Fuera del constructor 18 00:00:38,759 --> 00:00:40,460 ¿Dónde? Fuera del constructor 19 00:00:40,460 --> 00:00:42,420 Si estás fuera de cualquier método 20 00:00:42,420 --> 00:00:43,700 Solamente puedes poner propiedades 21 00:00:43,700 --> 00:00:51,100 Uy, ha podido 22 00:00:51,100 --> 00:00:53,659 Poder puedo, nadie me lo ha impedido 23 00:00:53,659 --> 00:00:55,859 Pero, ¿para qué quiero hacer eso? 24 00:00:56,100 --> 00:00:56,579 ¿Y para qué? 25 00:00:58,500 --> 00:01:00,140 Bueno, pues a mí me molan otras cosas 26 00:01:00,140 --> 00:01:03,119 no pongo esas cosas 27 00:01:03,119 --> 00:01:03,960 venga 28 00:01:03,960 --> 00:01:09,719 vale, pues seguimos 29 00:01:09,719 --> 00:01:10,739 haciendo la aplicación 30 00:01:10,739 --> 00:01:17,900 vale, bueno, pues seguimos haciendo esta aplicación 31 00:01:17,900 --> 00:01:19,900 a ver si la dejamos media avanzada 32 00:01:19,900 --> 00:01:21,519 para que la acabéis o no con otras 33 00:01:21,519 --> 00:01:23,379 parecidas que están abajo o lo que sea 34 00:01:23,379 --> 00:01:25,599 vale, pues empleado y gerente ya tienen 35 00:01:25,599 --> 00:01:27,760 esa relación, resulta 36 00:01:27,760 --> 00:01:29,379 que ahora 37 00:01:29,379 --> 00:01:31,620 mi aplicación también va a gestionar departamentos 38 00:01:31,620 --> 00:01:33,439 y los departamentos 39 00:01:33,439 --> 00:01:35,280 tienen empleados 40 00:01:35,280 --> 00:01:37,939 pues venga, una clase de departamento 41 00:01:37,939 --> 00:01:42,750 que paz 42 00:01:42,750 --> 00:01:47,430 pues venga 43 00:01:47,430 --> 00:01:56,049 una clase de departamento 44 00:01:56,049 --> 00:01:57,250 que la clase de departamento 45 00:01:57,250 --> 00:01:58,370 porque se caracteriza 46 00:01:58,370 --> 00:02:00,349 por su nombre 47 00:02:00,349 --> 00:02:04,230 y por su array de empleados. 48 00:02:06,900 --> 00:02:10,460 Entonces, al tener un array de empleados 49 00:02:10,460 --> 00:02:14,340 y declararlo así, 50 00:02:26,500 --> 00:02:28,979 resulta que este departamento puede tener 51 00:02:28,979 --> 00:02:31,520 tanto gerentes como empleados normales. 52 00:02:31,620 --> 00:02:32,919 Puede tener de todo. 53 00:02:34,740 --> 00:02:36,659 Podría tener un objeto gerente aparte, 54 00:02:36,740 --> 00:02:40,639 pero ese objeto gerente puede estar aquí metido también en empleados. 55 00:02:40,740 --> 00:02:42,759 No hace falta crear una propiedad aparte gerente. 56 00:02:43,020 --> 00:02:50,000 Puede estar metido en el array de empleados y ¿cómo distinguimos cuál es el empleado de este departamento que es gerente? 57 00:02:50,539 --> 00:02:55,979 Pues recorriendo el array instance of, el que esté instanciado como gerente será el gerente, ¿vale? 58 00:02:56,000 --> 00:02:58,500 No hay que tener un objeto gerente aparte. 59 00:02:59,460 --> 00:03:05,500 Por ejemplo, aunque pongamos esa final, ¿no podría cambiar el tamaño del array? 60 00:03:06,280 --> 00:03:06,800 Esta. 61 00:03:08,219 --> 00:03:11,219 A ver, un array final, lo que pasa es que esto es un objeto. 62 00:03:11,219 --> 00:03:13,139 entonces uno 63 00:03:13,139 --> 00:03:15,819 significaría que la dirección de memoria 64 00:03:15,819 --> 00:03:16,620 no la puedes mover 65 00:03:16,620 --> 00:03:23,840 a ver, poder puedes ponerlo 66 00:03:23,840 --> 00:03:25,719 pero lo que significa es que 67 00:03:25,719 --> 00:03:27,680 ahora ya en esta dirección 68 00:03:27,680 --> 00:03:29,639 de memoria no puedes hacer otra asignación 69 00:03:29,639 --> 00:03:31,960 con new, pero el array puede cambiar 70 00:03:31,960 --> 00:03:33,439 porque 71 00:03:33,439 --> 00:03:35,819 lo que es final es esto 72 00:03:35,819 --> 00:03:37,939 y esto lo que contiene es la dirección 73 00:03:37,939 --> 00:03:38,479 de memoria 74 00:03:38,479 --> 00:03:40,979 y la dirección te lleva a un sitio 75 00:03:40,979 --> 00:03:42,719 Pero eso sí que lo podrías modificar 76 00:03:42,719 --> 00:03:44,340 Lo que no puedes es meterle otro new 77 00:03:44,340 --> 00:03:47,000 Es decir, por ejemplo, si yo pongo aquí un método cualquiera 78 00:03:47,000 --> 00:03:48,919 Claro, estoy pensando 79 00:03:48,919 --> 00:03:51,159 Claro, estoy pensando en voz alta 80 00:03:51,159 --> 00:03:51,699 Vale 81 00:03:51,699 --> 00:03:53,860 Yo podría hacer 82 00:03:53,860 --> 00:03:57,740 Empleados de cero 83 00:03:57,740 --> 00:04:00,199 Igual a 84 00:04:00,199 --> 00:04:01,500 A ver, de rollo 85 00:04:01,500 --> 00:04:05,879 Sí 86 00:04:05,879 --> 00:04:07,259 New 87 00:04:07,259 --> 00:04:09,639 Empleado 88 00:04:09,639 --> 00:04:12,099 Y luego a empleados de cero 89 00:04:12,099 --> 00:04:14,139 Darle otro distinto 90 00:04:14,139 --> 00:04:16,160 o sea, volverlo a sobrescribir 91 00:04:16,160 --> 00:04:22,610 ¿vale? y no hay ningún 92 00:04:22,610 --> 00:04:24,689 problema, porque lo que es final 93 00:04:24,689 --> 00:04:26,529 es la referencia, lo que entiendo 94 00:04:26,529 --> 00:04:28,129 que no me va a dejar es a empleados 95 00:04:28,129 --> 00:04:29,810 ahora darle otro array distinto 96 00:04:29,810 --> 00:04:32,649 entiendo que 97 00:04:32,649 --> 00:04:34,689 eso no me dejaría 98 00:04:34,689 --> 00:04:38,149 ¿ves? 99 00:04:38,470 --> 00:04:40,129 eso no, porque es final 100 00:04:40,129 --> 00:04:42,370 y con esto es con lo único con lo que 101 00:04:42,370 --> 00:04:44,529 estoy moviendo esto, que es la 10 de memoria 102 00:04:44,529 --> 00:04:45,250 pero con esto 103 00:04:45,250 --> 00:04:47,269 pero si hago otro array fuera, un auxiliar 104 00:04:47,269 --> 00:04:49,149 y luego empleados igual auxiliar perfectamente 105 00:04:49,149 --> 00:04:51,930 No, porque lo estás cambiando 106 00:04:51,930 --> 00:04:53,589 Es decir, yo me hago aquí 107 00:04:53,589 --> 00:04:55,029 Estás cambiando la dirección de memoria 108 00:04:55,029 --> 00:04:58,990 Empleado aux 109 00:04:58,990 --> 00:05:00,129 Igual a new 110 00:05:00,129 --> 00:05:02,290 Empleado 111 00:05:02,290 --> 00:05:05,470 Y ahora le digo que a este 112 00:05:05,470 --> 00:05:05,990 Aux 113 00:05:05,990 --> 00:05:08,069 No, porque lo estoy variando 114 00:05:08,069 --> 00:05:09,790 Estoy cambiando 115 00:05:09,790 --> 00:05:11,430 Espérate, ¿qué he hecho yo aquí? 116 00:05:11,430 --> 00:05:12,709 New empleado, cero 117 00:05:12,709 --> 00:05:13,689 ¿Ves? 118 00:05:15,209 --> 00:05:16,750 O sea, cualquier cosa que implique 119 00:05:16,750 --> 00:05:18,610 Modificar esta dirección de memoria 120 00:05:18,610 --> 00:05:20,189 venga de donde venga esa modificación 121 00:05:20,189 --> 00:05:22,209 pero la array sí 122 00:05:22,209 --> 00:05:22,930 lo que pasa 123 00:05:22,930 --> 00:05:26,050 claro, es que poner 124 00:05:26,050 --> 00:05:28,449 un objeto cualquiera como final 125 00:05:28,449 --> 00:05:30,370 lo haces tan poco flexible 126 00:05:30,370 --> 00:05:32,410 porque nunca jamás va a moverse la referencia 127 00:05:32,410 --> 00:05:34,589 de sitio, entonces ¿para qué puedes querer hacer eso? 128 00:05:38,110 --> 00:05:38,629 bueno 129 00:05:38,629 --> 00:05:41,670 no, pero está bien 130 00:05:41,670 --> 00:05:44,709 vale, pues todo esto fuera 131 00:05:44,709 --> 00:05:50,079 vale, departamento 132 00:05:50,079 --> 00:05:51,019 ¿qué más cosas tiene? 133 00:05:54,339 --> 00:06:05,639 Se puede hacer el constructor y todo eso y un método, bueno, constructor y propiedad de Getter y Setter y un método para calcular el salario total del departamento, ¿vale? 134 00:06:05,639 --> 00:06:09,079 Es decir, lo que cobran todos los empleados, ¿vale? 135 00:06:11,699 --> 00:06:18,379 Entonces, ponéis los Getter y Setter y ahora haced este método, ¿vale? 136 00:06:18,379 --> 00:06:19,420 Haced este método 137 00:06:19,420 --> 00:06:33,339 Vale, sueldo total de los empleados 138 00:06:33,339 --> 00:06:34,220 Del departamento 139 00:06:34,220 --> 00:06:36,939 Entonces, el sueldo total de los empleados 140 00:06:36,939 --> 00:06:38,959 Del departamento es lo que este departamento 141 00:06:38,959 --> 00:06:40,660 Paga a todos los empleados 142 00:06:40,660 --> 00:06:42,420 Vale, pues venga 143 00:06:42,420 --> 00:06:44,300 Haced este método de aquí 144 00:06:44,300 --> 00:06:45,980 A ver 145 00:06:45,980 --> 00:06:48,540 Venga, departamento 146 00:06:48,540 --> 00:06:49,779 Los métodos que hay que hacer 147 00:06:49,779 --> 00:06:51,319 Se hacen los métodos en las clases 148 00:06:51,319 --> 00:06:53,339 Y luego ya el main que los usa, claro, hemos dicho 149 00:06:53,339 --> 00:06:55,160 Agregar empleado 150 00:06:55,160 --> 00:06:57,360 el eterno de toda la vida 151 00:06:57,360 --> 00:06:59,660 que estamos ya hasta ahí 152 00:06:59,660 --> 00:07:01,699 y por eso necesitamos las colecciones como el comer 153 00:07:01,699 --> 00:07:02,300 pero bueno 154 00:07:02,300 --> 00:07:04,860 a ver 155 00:07:04,860 --> 00:07:07,720 como no me estoy haciendo ni puñetero 156 00:07:07,720 --> 00:07:09,420 caso, nadie me dice que esto está 157 00:07:09,420 --> 00:07:11,079 a ver 158 00:07:11,079 --> 00:07:13,459 vale, pues agregar 159 00:07:13,459 --> 00:07:15,579 empleado, a ver 160 00:07:15,579 --> 00:07:16,040 venga 161 00:07:16,040 --> 00:07:19,860 método agregar empleado 162 00:07:19,860 --> 00:07:21,300 de la clase departamento 163 00:07:21,300 --> 00:07:23,019 lo de siempre y de toda la vida 164 00:07:23,019 --> 00:07:25,759 le pasamos un objeto 165 00:07:25,759 --> 00:07:27,720 empleado, hacemos un array nuevo 166 00:07:27,720 --> 00:07:29,220 con una posición más 167 00:07:29,220 --> 00:07:32,040 copiamos lo que había en el viejo en el nuevo 168 00:07:32,040 --> 00:07:33,759 en la extra copiamos 169 00:07:33,759 --> 00:07:35,100 el empleado nuevo 170 00:07:35,100 --> 00:07:36,600 y ahora ya 171 00:07:36,600 --> 00:07:39,660 la propiedad empleados de mi 172 00:07:39,660 --> 00:07:41,620 departamento, esta 173 00:07:41,620 --> 00:07:43,860 queda sustituida por la nueva 174 00:07:43,860 --> 00:07:45,120 ¿verdad? 175 00:07:45,939 --> 00:07:47,459 luego agregar empleado 176 00:07:47,459 --> 00:07:49,920 habéis hecho lo de siempre una y otra vez ¿verdad que sí? 177 00:07:50,800 --> 00:07:51,079 bueno 178 00:07:51,079 --> 00:07:53,199 A ver, método 179 00:07:53,199 --> 00:07:55,879 Sueldo total de los empleados 180 00:07:55,879 --> 00:07:58,279 A ver, ¿qué? 181 00:07:59,740 --> 00:08:00,540 ¿Lo has hecho bien? 182 00:08:02,019 --> 00:08:03,060 Ah, vale 183 00:08:03,060 --> 00:08:04,699 A ver, yo no digo que esto esté bien, ¿eh? 184 00:08:04,959 --> 00:08:05,579 Me refiero 185 00:08:05,579 --> 00:08:08,060 Sueldo total de los empleados 186 00:08:08,060 --> 00:08:10,060 Este método está en departamento, repito 187 00:08:10,060 --> 00:08:11,459 No perdamos la visión 188 00:08:11,459 --> 00:08:17,139 No, es que departamento no tiene salario 189 00:08:17,139 --> 00:08:17,800 Es departamento 190 00:08:17,800 --> 00:08:19,120 Estoy en la clase departamento 191 00:08:19,120 --> 00:08:22,240 ¿Y tienes una propiedad salario 192 00:08:22,240 --> 00:08:23,199 en departamento? 193 00:08:26,879 --> 00:08:30,459 A ver. 194 00:08:32,960 --> 00:08:34,720 Departamento no tiene una propiedad salario. 195 00:08:34,720 --> 00:08:35,480 No, no, no. 196 00:08:36,919 --> 00:08:40,019 Empleados de ahí. 197 00:08:40,179 --> 00:08:40,580 Punto salario. 198 00:08:41,539 --> 00:08:44,299 Claro, que es justo lo que yo he hecho. 199 00:08:47,299 --> 00:08:48,220 ¿Qué más me da? 200 00:08:49,120 --> 00:08:50,700 salario 201 00:08:50,700 --> 00:08:54,620 vale, pero porque no habrás puesto 202 00:08:54,620 --> 00:08:56,659 private o protected la propiedad 203 00:08:56,659 --> 00:08:57,139 salario 204 00:08:57,139 --> 00:09:00,299 pero departamento no está 205 00:09:00,299 --> 00:09:10,340 salario 206 00:09:17,340 --> 00:09:18,259 sí, sí, sí 207 00:09:18,259 --> 00:09:19,500 No me estaba dejando 208 00:09:19,500 --> 00:09:23,960 Ya, pero departamento 209 00:09:23,960 --> 00:09:25,279 No está heredada 210 00:09:25,279 --> 00:09:26,019 No es hereda 211 00:09:26,019 --> 00:09:27,539 Entonces 212 00:09:27,539 --> 00:09:35,220 Bueno, da igual, es un problema menor 213 00:09:35,220 --> 00:09:37,259 No nos importa, ya entenderemos por qué 214 00:09:37,259 --> 00:09:39,200 Ahora cuando tengamos tiempo, que son las 34 215 00:09:39,200 --> 00:09:41,440 ¿Vale? Pero se queda ahí apuntado 216 00:09:41,440 --> 00:09:42,360 En cualquier caso 217 00:09:42,360 --> 00:09:45,759 Como es feo, para eso están los get y los set 218 00:09:45,759 --> 00:09:47,340 Yo dejo ahí mi get y ya está 219 00:09:47,340 --> 00:09:49,100 ¿El empleado en departamento o el empleado? 220 00:09:51,220 --> 00:09:52,200 Silencio, por favor. 221 00:09:52,960 --> 00:09:54,679 Vale, entonces, método 222 00:09:54,679 --> 00:09:56,899 de empleados. Ya sabemos 223 00:09:56,899 --> 00:09:58,700 que tenemos una RAI de empleados 224 00:09:58,700 --> 00:10:00,960 que lo recorremos 225 00:10:00,960 --> 00:10:02,620 y como va a ser una suma 226 00:10:02,620 --> 00:10:04,919 acumulativa, pues ya está. Vamos sumando 227 00:10:04,919 --> 00:10:06,720 sobre la variable suma acumulativa 228 00:10:06,720 --> 00:10:08,720 todos y cada uno de los RAIs del empleado. 229 00:10:09,340 --> 00:10:09,779 Pero, 230 00:10:10,320 --> 00:10:12,840 este método está incompleto. El jefe nos dirá 231 00:10:12,840 --> 00:10:14,159 oye, ¿no? Porque, ¿y si 232 00:10:14,159 --> 00:10:16,620 alguno de los empleados de la RAI, 233 00:10:16,620 --> 00:10:18,039 alguno o algunos es gerente 234 00:10:18,039 --> 00:10:20,559 su sueldo además tiene el bonus 235 00:10:20,559 --> 00:10:22,779 ¿vale? entonces 236 00:10:22,779 --> 00:10:24,879 este método no está incluyendo 237 00:10:24,879 --> 00:10:26,720 el bonus de los empleados que sean 238 00:10:26,720 --> 00:10:27,200 gerente 239 00:10:27,200 --> 00:10:30,379 claro, entonces decimos, oye 240 00:10:30,379 --> 00:10:32,940 pues para cada empleado tengo que distinguir 241 00:10:32,940 --> 00:10:33,840 si es gerente o no 242 00:10:33,840 --> 00:10:36,879 solo tengo una manera de distinguir si es gerente o no 243 00:10:36,879 --> 00:10:38,940 cada empleado, que es este 244 00:10:38,940 --> 00:10:43,649 ¿vale? 245 00:10:44,269 --> 00:10:46,470 si el empleado en el que 246 00:10:46,470 --> 00:10:47,769 yo estoy en ese momento en el array 247 00:10:47,769 --> 00:10:48,950 es gerente 248 00:10:48,950 --> 00:10:52,110 entonces a la variable acumulativa 249 00:10:52,110 --> 00:10:53,509 sueldo total le tengo que sumar 250 00:10:53,509 --> 00:10:55,149 su salario más 251 00:10:55,149 --> 00:10:57,509 el bonus de ese empleado 252 00:10:57,509 --> 00:10:58,029 ¿vale? 253 00:11:02,179 --> 00:11:05,169 a ver aquí 254 00:11:05,169 --> 00:11:12,850 ¿vale? entonces 255 00:11:12,850 --> 00:11:15,389 el eclipse que ya es muy listo 256 00:11:16,090 --> 00:11:17,409 me ha hecho 257 00:11:17,409 --> 00:11:19,370 el casting a gerente porque si yo 258 00:11:19,370 --> 00:11:21,730 no hago el casting a gerente me pasa lo de siempre 259 00:11:21,730 --> 00:11:23,129 ¿qué? 260 00:11:23,129 --> 00:11:25,210 cuando yo trato de sacar 261 00:11:25,210 --> 00:11:27,529 el bonus de este empleado 262 00:11:27,529 --> 00:11:29,690 el compilador me dice 263 00:11:29,690 --> 00:11:32,090 empleado, de qué clase eres 264 00:11:32,090 --> 00:11:33,669 eres de clase empleado 265 00:11:33,669 --> 00:11:35,409 en empleado no hay get bonus 266 00:11:35,409 --> 00:11:37,110 obviamente no hay get bonus 267 00:11:37,110 --> 00:11:38,950 porque en empleado no hay bonus 268 00:11:38,950 --> 00:11:40,529 pero tú sabes 269 00:11:40,529 --> 00:11:43,830 que este se ha instanciado 270 00:11:43,830 --> 00:11:45,669 como gerente, lo sabes porque esto ha dado true 271 00:11:45,669 --> 00:11:47,750 pues entonces haces el casting 272 00:11:47,750 --> 00:11:50,309 que ya el 273 00:11:50,309 --> 00:11:53,149 haces el casting 274 00:11:53,149 --> 00:11:55,230 Y ahora ya sí, con el casting hecho 275 00:11:55,230 --> 00:11:56,850 Ya puedes acceder al bonus del empleado 276 00:11:56,850 --> 00:11:59,730 Vale, que no, que no está instanciado 277 00:11:59,730 --> 00:12:00,450 Como gerente 278 00:12:00,450 --> 00:12:03,690 Pues entonces es que está instanciado 279 00:12:03,690 --> 00:12:04,429 De la otra manera 280 00:12:04,429 --> 00:12:06,690 Y a sueldo total 281 00:12:06,690 --> 00:12:11,549 Es que son y 37 282 00:12:11,549 --> 00:12:13,309 Pues tranquilidad 283 00:12:13,309 --> 00:12:14,970 Si hay que saltar su labor 284 00:12:14,970 --> 00:12:17,669 Ya, pero es que yo tengo 285 00:12:17,669 --> 00:12:19,090 Clase luego en grado medio 286 00:12:19,090 --> 00:12:19,509 Que 287 00:12:19,509 --> 00:12:23,350 Si se me van todos 288 00:12:23,350 --> 00:12:24,769 Si no llego 289 00:12:24,769 --> 00:12:33,259 Pero, ¿cómo que os habéis perdido? 290 00:12:33,919 --> 00:12:34,539 No os podéis 291 00:12:34,539 --> 00:12:36,820 No os podéis haber perdido 292 00:12:36,820 --> 00:12:37,240 A ver 293 00:12:37,240 --> 00:12:44,919 Pero a ver, ¿el problema cuál es? 294 00:12:44,919 --> 00:12:46,500 Que muevo la pantalla demasiado deprisa 295 00:12:46,500 --> 00:12:53,720 Vale, entonces 296 00:12:53,720 --> 00:12:56,220 si voy más despacio con la 297 00:12:56,220 --> 00:12:58,159 si voy más despacio con la pantalla 298 00:12:58,159 --> 00:12:59,059 lo seguís 299 00:12:59,059 --> 00:13:00,919 vale 300 00:13:00,919 --> 00:13:04,179 hombre, no hagas cambios de repente 301 00:13:04,179 --> 00:13:05,399 rapidísimo a otra clase 302 00:13:05,399 --> 00:13:07,860 yo entiendo 303 00:13:07,860 --> 00:13:10,580 porque en el bonus no me va a hacer 304 00:13:10,580 --> 00:13:12,059 estás aquí 305 00:13:12,059 --> 00:13:14,299 y de repente cambias 306 00:13:14,299 --> 00:13:15,600 a otro sin avisar 307 00:13:15,600 --> 00:13:18,100 ya, lo que pasa es que bueno, que asumo que esto ya lo tenéis 308 00:13:18,100 --> 00:13:20,399 vosotros escrito, porque lo habéis trabajado antes 309 00:13:20,399 --> 00:13:20,879 entonces 310 00:13:20,879 --> 00:13:28,159 Entonces, bueno, este método de sueldo total empleados ahora está medio claro. 311 00:13:28,600 --> 00:13:35,580 Es una variable acumulativa, sueldo total sobre la que vamos acumulando, el sueldo de cada uno de los empleados que hay en el array. 312 00:13:36,080 --> 00:13:41,879 Pero claro, cada uno de los empleados que hay en el array puede haberse creado como gerente o no. 313 00:13:42,720 --> 00:13:49,320 Y si se ha creado como gerente, lo que tenemos que sumar a sueldo total no es solo el salario, sino también su bono. 314 00:13:49,320 --> 00:13:51,620 Y para sacar su bonus 315 00:13:51,620 --> 00:13:54,879 Hay que hacerle el casting a gerente 316 00:13:54,879 --> 00:13:56,279 Porque si no el compilador 317 00:13:56,279 --> 00:13:57,519 No me deja sacar el bonus 318 00:13:57,519 --> 00:14:00,039 Porque el bonus está solo en la clase gerente 319 00:14:00,039 --> 00:14:01,580 Solo en la clase gerente 320 00:14:01,580 --> 00:14:02,960 ¿Vale? 321 00:14:03,940 --> 00:14:04,419 Entonces 322 00:14:04,419 --> 00:14:08,840 De todas maneras 323 00:14:08,840 --> 00:14:10,879 Seguramente me reconozcáis 324 00:14:10,879 --> 00:14:13,080 Que si fuerais estudiando al día 325 00:14:13,080 --> 00:14:15,000 Luego al día siguiente 326 00:14:15,000 --> 00:14:15,840 No os perderíais tanto 327 00:14:15,840 --> 00:14:17,559 Porque la gran parte de lo que hago 328 00:14:17,559 --> 00:14:18,899 Es repetir y repetir y repetir 329 00:14:18,899 --> 00:14:20,279 lo vimos una y otra vez, una y otra vez, una y otra vez 330 00:14:20,279 --> 00:14:22,899 ya, me repito 331 00:14:22,899 --> 00:14:24,820 muchísimo, pero 332 00:14:24,820 --> 00:14:26,059 pero mejor 333 00:14:26,059 --> 00:14:28,940 estoy repitiendo todo el rato 334 00:14:28,940 --> 00:14:31,000 bueno, pues entonces 335 00:14:31,000 --> 00:14:31,740 efectivamente 336 00:14:31,740 --> 00:14:34,720 aquí os vais a quedar, porque es que 337 00:14:34,720 --> 00:14:37,360 el siguiente 338 00:14:37,360 --> 00:14:38,840 método, sueldo total 339 00:14:38,840 --> 00:14:40,559 y ahora ya, una vez hecho este 340 00:14:40,559 --> 00:14:42,320 método, tendríamos, bueno no 341 00:14:42,320 --> 00:14:44,559 no os quedáis aquí, estos dos métodos ya están 342 00:14:44,559 --> 00:14:46,659 en la clase departamento, sueldo 343 00:14:46,659 --> 00:14:48,779 total del departamento y agregar 344 00:14:48,779 --> 00:14:50,440 empleado del departamento, esos dos están 345 00:14:50,440 --> 00:14:52,820 y ahora ya vamos a hacer un main 346 00:14:52,820 --> 00:14:54,720 pues yo el main 347 00:14:54,720 --> 00:14:56,299 que luego lo subo 348 00:14:56,299 --> 00:14:58,340 mi main ya trabaja 349 00:14:58,340 --> 00:15:00,759 espera que me he equivocado cuando he dicho que no nos íbamos 350 00:15:00,759 --> 00:15:01,720 no nos íbamos, un momento 351 00:15:01,720 --> 00:15:04,460 un segundín para que veáis el main 352 00:15:04,460 --> 00:15:06,440 porque lo voy a subir y así seguís trabajando 353 00:15:06,440 --> 00:15:08,340 a partir de él, para hacer el ejercicio 354 00:15:08,340 --> 00:15:10,480 ¿está bien descrito en el ejercicio? 355 00:15:10,600 --> 00:15:11,259 ¿en el nombre del ejercicio? 356 00:15:12,159 --> 00:15:13,700 ¿este ejercicio está escrito en algún lado? 357 00:15:14,519 --> 00:15:16,000 sí, en el listado, es este primero 358 00:15:16,000 --> 00:15:17,600 lo que pasa es que este main que yo he hecho 359 00:15:17,600 --> 00:15:20,120 este main me lo he sacado de la manga para hacer las pruebas 360 00:15:20,120 --> 00:15:22,299 vale, entonces este main 361 00:15:22,299 --> 00:15:24,220 instancia 362 00:15:24,220 --> 00:15:25,639 que haya un segundo 363 00:15:25,639 --> 00:15:28,120 ahora ya el main para hacer las pruebas, vamos a trabajar 364 00:15:28,120 --> 00:15:29,740 con un departamento 365 00:15:29,740 --> 00:15:32,620 pues venga, instanciamos un departamento 366 00:15:32,620 --> 00:15:33,659 y le damos su nombre 367 00:15:33,659 --> 00:15:36,080 departamento solo tiene esas propiedades 368 00:15:36,080 --> 00:15:37,740 tiene el 369 00:15:37,740 --> 00:15:39,600 nombre y el array 370 00:15:39,600 --> 00:15:41,620 yo inicialmente le pongo solo el nombre 371 00:15:41,620 --> 00:15:44,139 los empleados se los voy a ir agregando después 372 00:15:44,139 --> 00:15:46,320 vale, pues me hago un departamento 373 00:15:46,320 --> 00:15:47,220 que es este 374 00:15:47,220 --> 00:16:06,700 Y ahora ya me voy a hacer mi bucle. Para las opciones, agregar empleado a este departamento y mostrar sueldo total. Vale. Opción 1, para agregar un empleado, lo primero que le pregunto es, ¿qué tipo de empleado quieres? ¿Un gerente o un empleado normal? Distingo el tipo. Vale. 375 00:16:06,700 --> 00:16:31,220 Aquí voy a guardar el empleado a crear, que será o gerente o normal, ¿vale? En el caso de que el tipo leído sea G, o sea, estoy anidando un switch dentro del case, no pasa nada, en el caso de que sea G, le digo, pues méteme todos los datos del gerente, que son nombre, salario, fecha de contratación y bonos. 376 00:16:31,220 --> 00:16:53,919 Le digo, mételos todos, para hacer yo el new, le digo, mételos todos, nombre, salario, fecha en este formato y bonus. Y ahora me instancio el objeto new gerente con el nombre que él me habrá metido, el salario que él me habrá metido y la fecha, porque la fecha necesita un objeto date, necesita un date. 377 00:16:53,919 --> 00:16:58,620 bueno pues vamos a hacernos un método auxiliar en el main 378 00:16:58,620 --> 00:17:02,000 que a partir de un string 379 00:17:02,000 --> 00:17:03,480 día, mes y año 380 00:17:03,480 --> 00:17:05,519 me devuelvo un objeto date 381 00:17:05,519 --> 00:17:06,680 con esos datos 382 00:17:06,680 --> 00:17:08,519 entonces me echo yo un método 383 00:17:08,519 --> 00:17:10,019 le fecha aquí abajo 384 00:17:10,019 --> 00:17:12,119 le fecha 385 00:17:12,119 --> 00:17:15,859 y aquí ya sí que le pregunto a HRGPT 386 00:17:15,859 --> 00:17:17,839 oye recuérdame el código 387 00:17:17,839 --> 00:17:19,400 y tengo aquí la preguntita hecha 388 00:17:19,400 --> 00:17:20,859 le digo 389 00:17:20,859 --> 00:17:28,940 Oye, ¿me recuerdas el código para leer un objeto date de Java desde la consola? 390 00:17:29,940 --> 00:17:36,099 Y él me lo ha recordado, pero con el escáner y yo ya lo he adaptado a lo mío, porque ya sé lo que quiero y lo que me interesa 391 00:17:36,099 --> 00:17:46,460 Y él me ha dicho, vale, pues te creas un dateformat donde le dices cómo lo tiene que meter 392 00:17:46,460 --> 00:17:48,500 y luego ya pues 393 00:17:48,500 --> 00:17:51,039 lo lees con el escáner 394 00:17:51,039 --> 00:17:53,079 y se acabó, me dice eso y yo he copiado 395 00:17:53,079 --> 00:17:55,039 y pegado quedándome con lo que 396 00:17:55,039 --> 00:17:55,700 me interesa 397 00:17:55,700 --> 00:17:57,640 ¿y qué me interesa? 398 00:17:58,440 --> 00:18:01,059 me interesa, me cree un sí 399 00:18:01,059 --> 00:18:02,220 en uno de estos 400 00:18:02,220 --> 00:18:06,519 con este formato de día, mes y año 401 00:18:06,519 --> 00:18:07,200 y ahora ya 402 00:18:07,200 --> 00:18:10,859 llamo a leer cadena, para que meta la cadena 403 00:18:10,859 --> 00:18:12,920 y ahora ya esta cadena 404 00:18:12,920 --> 00:18:16,220 se la paso al método parse 405 00:18:16,220 --> 00:18:18,220 de este y ya tengo 406 00:18:18,220 --> 00:18:20,579 el objeto date, y el objeto date lo devuelvo 407 00:18:20,579 --> 00:18:22,059 vale 408 00:18:22,059 --> 00:18:24,240 entonces ya esta cosa concreta 409 00:18:24,240 --> 00:18:25,420 se la puedo decir a 410 00:18:25,420 --> 00:18:27,279 chat GPT que me la recuerde 411 00:18:27,279 --> 00:18:31,500 y ahora lo que pasa es que 412 00:18:31,500 --> 00:18:33,720 me ha dicho lo de tantas veces 413 00:18:33,720 --> 00:18:36,079 cuida con la excepción, pues la propagamos 414 00:18:36,079 --> 00:18:38,359 y se acabó, y ahora ya tengo un método 415 00:18:38,359 --> 00:18:40,680 le fecha que solicita 416 00:18:40,680 --> 00:18:42,480 una cadena y me la devuelve 417 00:18:42,480 --> 00:18:43,200 en objeto date 418 00:18:43,200 --> 00:18:45,960 pues ahora ya ese método le fecha 419 00:18:45,960 --> 00:18:48,400 es el que yo estoy llamando aquí 420 00:18:48,400 --> 00:18:50,880 para que la fecha 421 00:18:50,880 --> 00:18:52,119 que me introduzca el tío 422 00:18:52,119 --> 00:18:53,640 ya la pase directamente 423 00:18:53,640 --> 00:18:54,440 al constructor 424 00:18:54,440 --> 00:18:55,539 para crear el gerente. 425 00:18:56,500 --> 00:18:56,940 ¿Vale? 426 00:18:57,000 --> 00:18:57,880 Y luego ya el bonus. 427 00:18:59,019 --> 00:19:00,119 Y luego en el caso 428 00:19:00,119 --> 00:19:01,059 de que sea empleado, 429 00:19:01,359 --> 00:19:02,380 pues el bonus no lo leo, 430 00:19:02,480 --> 00:19:03,259 leo solamente esto. 431 00:19:05,779 --> 00:19:06,599 Bueno, pues ahora ya 432 00:19:06,599 --> 00:19:07,819 ese empleado creado, 433 00:19:07,940 --> 00:19:08,559 ese empleado 434 00:19:08,559 --> 00:19:09,339 que será uno 435 00:19:09,339 --> 00:19:10,240 o será otro 436 00:19:10,240 --> 00:19:11,099 o será gerente 437 00:19:11,099 --> 00:19:11,720 o será empleado 438 00:19:11,720 --> 00:19:12,359 o uno u otro, 439 00:19:13,019 --> 00:19:15,059 se lo paso al departamento 440 00:19:15,059 --> 00:19:16,200 a través del método 441 00:19:16,200 --> 00:19:16,819 agregar empleado 442 00:19:16,819 --> 00:19:17,440 que he hecho antes. 443 00:19:17,720 --> 00:19:19,380 se lo paso y se acabó 444 00:19:19,380 --> 00:19:21,579 y luego ya la funcionalidad 2 445 00:19:21,579 --> 00:19:23,220 es simplemente 446 00:19:23,220 --> 00:19:25,480 vale, sueldo total, pues llamo al método 447 00:19:25,480 --> 00:19:27,539 sueldo total para mi objeto 448 00:19:27,539 --> 00:19:29,259 y listo 449 00:19:29,259 --> 00:19:29,539 vale 450 00:19:29,539 --> 00:19:32,259 ¿a dónde? 451 00:19:37,180 --> 00:19:40,700 vale