1 00:00:00,240 --> 00:00:03,379 Este enunciado es un enunciado feo, para mi gusto. 2 00:00:07,099 --> 00:00:23,320 Esto tiene, vale, esto tiene, esto tiene, no, esto, que coño, no quiero esto. 3 00:00:30,719 --> 00:00:31,839 Ahí, vale. 4 00:00:33,399 --> 00:00:40,520 Ahora, pues a ver, nos hacemos una primera lectura, que esa lectura ya os la habéis hecho, porque estáis trabajando con él. 5 00:00:40,520 --> 00:00:43,159 ¿Qué tenemos? Clases 6 00:00:43,159 --> 00:00:45,240 Ya nos dicen lo que tenemos 7 00:00:45,240 --> 00:00:46,659 Las clases que tenemos que hacer 8 00:00:46,659 --> 00:00:49,200 Bueno, pues nada, la clase de habitación 9 00:00:49,200 --> 00:00:50,380 O el que ver de más 10 00:00:50,380 --> 00:00:52,799 Vale, con propiedades 11 00:00:52,799 --> 00:00:55,000 El número de la habitación, cuántas camas tiene 12 00:00:55,000 --> 00:00:56,079 Lo que cuesta cada noche 13 00:00:56,079 --> 00:00:59,000 Y las plazas totales 14 00:00:59,000 --> 00:01:01,340 Las plazas totales en principio uno podría pensar 15 00:01:01,340 --> 00:01:03,020 Que es una por cama, pero bueno 16 00:01:03,020 --> 00:01:04,840 Depende, a lo mejor una cama cabe en tres o cuatro 17 00:01:04,840 --> 00:01:06,159 Entonces 18 00:01:06,159 --> 00:01:09,280 Habitación familiar 19 00:01:09,280 --> 00:01:13,719 es una cama en la cual 20 00:01:13,719 --> 00:01:15,519 además de camas normales 21 00:01:15,519 --> 00:01:16,540 tiene camas dobles 22 00:01:16,540 --> 00:01:19,439 entonces plazas totales aquí es distinto 23 00:01:19,439 --> 00:01:21,340 porque en la habitación 24 00:01:21,340 --> 00:01:22,060 normal 25 00:01:22,060 --> 00:01:26,040 las plazas totales 26 00:01:26,040 --> 00:01:27,700 te devolverá 27 00:01:27,700 --> 00:01:29,260 te hará el retorno 28 00:01:29,260 --> 00:01:31,180 del número de camas 29 00:01:31,180 --> 00:01:33,599 y sin embargo 30 00:01:33,599 --> 00:01:34,739 en la habitación familiar 31 00:01:34,739 --> 00:01:37,359 te tendrá que multiplicar por dos 32 00:01:37,359 --> 00:01:40,040 las camas dobles y sumarlas a las otras 33 00:01:40,040 --> 00:01:52,980 Entonces, habrá que sobreescribir ese método, pero lo demás en principio, salvo añadir esto y eso implica automáticamente sobreescribir esto, este método, pues en principio por ahora parece que nada más. 34 00:01:52,980 --> 00:02:08,900 Vale, habitaciones ya estaría esto de aquí. ¿Qué más tiene? Además de habitaciones se pueden hacer reservas. Vale, pues la reserva tiene la fecha, un date, un local date, lo que sea, fecha. 35 00:02:10,039 --> 00:02:12,439 la fecha, las habitaciones 36 00:02:12,439 --> 00:02:14,439 que hemos reservado en esa 37 00:02:14,439 --> 00:02:16,300 reserva, esto es lo que está 38 00:02:16,300 --> 00:02:18,159 muy mal especificado, habitaciones 39 00:02:18,159 --> 00:02:20,120 a qué se refiere, al número de habitaciones 40 00:02:20,120 --> 00:02:22,460 a las habitaciones reales 41 00:02:22,460 --> 00:02:24,159 a lo que sea, entonces 42 00:02:24,159 --> 00:02:26,599 aquí cómo podríamos hacerla, bueno pues podríamos hacer 43 00:02:26,599 --> 00:02:30,379 un array, por ejemplo 44 00:02:30,379 --> 00:02:32,039 de números, vale 45 00:02:32,039 --> 00:02:34,180 un array de números, y ya está 46 00:02:34,180 --> 00:02:35,520 entonces, las 47 00:02:35,520 --> 00:02:38,439 habitaciones reservadas en esta reserva 48 00:02:38,439 --> 00:02:40,740 son las que yo tenga en mi array de números. 49 00:02:40,879 --> 00:02:47,280 Esto tiene sentido si número de habitación es clave primaria de habitación 50 00:02:47,280 --> 00:02:51,139 y si es la clave primaria, la identifica de forma única. 51 00:02:51,599 --> 00:02:53,680 La identifica de forma única, es clave primaria. 52 00:02:54,539 --> 00:02:59,580 Luego, en habitaciones reservadas, pues esto debería ser un array. 53 00:03:00,560 --> 00:03:03,460 Podría ser un array directamente de objetos habitación, 54 00:03:03,599 --> 00:03:05,240 pero es quizás complejo. 55 00:03:05,900 --> 00:03:08,400 No hay necesidad, puede ser un array con el número 56 00:03:08,400 --> 00:03:10,099 y a través de los números 57 00:03:10,099 --> 00:03:13,060 pues ya podemos tirar, localizar 58 00:03:13,060 --> 00:03:14,939 la habitación que sea o algo así 59 00:03:14,939 --> 00:03:17,360 vale, a ver 60 00:03:17,360 --> 00:03:19,219 la reserva solamente tiene 61 00:03:19,219 --> 00:03:21,240 eso, las habitaciones que tengo en la reserva 62 00:03:21,240 --> 00:03:22,479 ah bueno, sí, las personas 63 00:03:22,479 --> 00:03:26,229 lo que pasa es que 64 00:03:26,229 --> 00:03:28,729 el número de personas 65 00:03:28,729 --> 00:03:29,810 es que va a ser 66 00:03:29,810 --> 00:03:32,870 en realidad es una información 67 00:03:32,870 --> 00:03:34,810 redundante, porque lo podría 68 00:03:34,810 --> 00:03:36,729 sacar yéndome a cada 69 00:03:36,729 --> 00:03:38,729 habitación y sumando las plazas totales 70 00:03:38,729 --> 00:03:40,330 Bueno, no, no es redundante porque si podéis 71 00:03:40,330 --> 00:03:41,810 emplear una habitación no se ocupa la ciudad. 72 00:03:42,229 --> 00:03:43,969 Vale, entonces no es redundante. Vale, vale. 73 00:03:44,729 --> 00:03:46,490 Vale. Y luego, ¿qué más entidades 74 00:03:46,490 --> 00:03:48,629 tenemos? Pues el hotel. 75 00:03:49,069 --> 00:03:50,590 Entonces, el hotel es el que tiene 76 00:03:50,590 --> 00:03:52,449 un montón de 77 00:03:52,449 --> 00:03:53,009 habitaciones 78 00:03:53,009 --> 00:03:56,169 y tiene un montón de reservas. 79 00:03:56,909 --> 00:03:58,370 Vale. Y las 80 00:03:58,370 --> 00:04:00,289 reservas, pues, son las que tienen dentro un 81 00:04:00,289 --> 00:04:02,349 array que a su vez me puede conducir 82 00:04:02,349 --> 00:04:04,569 a mí a los datos de la habitación. 83 00:04:06,819 --> 00:04:06,979 Y 84 00:04:06,979 --> 00:04:09,599 ya está. Entonces, el 85 00:04:09,599 --> 00:04:10,240 modelo es ese. 86 00:04:12,039 --> 00:04:13,460 Un poco raro, a lo mejor. 87 00:04:14,259 --> 00:04:15,520 Seguramente, para gestionar 88 00:04:15,520 --> 00:04:17,439 un hotel, reservas y habitaciones 89 00:04:17,439 --> 00:04:19,180 se podría hacer un modelo 90 00:04:19,180 --> 00:04:21,279 un poquito más claro y mejor que este. 91 00:04:21,980 --> 00:04:23,660 Pero bueno, con este es con el que vamos a trabajar 92 00:04:23,660 --> 00:04:24,860 porque es el que nos dicen aquí. 93 00:04:26,480 --> 00:04:27,240 Vale, y ahora 94 00:04:27,240 --> 00:04:29,360 la clase hotel tiene 95 00:04:29,360 --> 00:04:30,100 un método 96 00:04:30,100 --> 00:04:31,680 que 97 00:04:31,680 --> 00:04:35,199 recibes un número de personas 98 00:04:35,199 --> 00:04:37,160 el día en el que quieres ir 99 00:04:37,160 --> 00:04:39,319 y te tiene que buscar a ver 100 00:04:39,319 --> 00:04:41,000 si hay habitaciones libres 101 00:04:41,000 --> 00:04:42,500 suficientes para alojar 102 00:04:42,500 --> 00:04:43,839 a todo el mundo 103 00:04:43,839 --> 00:04:50,329 entonces, aquí 104 00:04:50,329 --> 00:04:52,550 esto en principio ya lo vemos un poco complicado 105 00:04:52,550 --> 00:04:54,709 porque tendríamos que ir 106 00:04:54,709 --> 00:04:56,189 habitación por habitación 107 00:04:56,189 --> 00:04:58,930 cada habitación ver si está reservada 108 00:04:58,930 --> 00:04:59,769 aquí 109 00:04:59,769 --> 00:05:02,689 esto ya se complica, con lo cual no pasa nada 110 00:05:02,689 --> 00:05:04,430 lo hago un método auxiliar 111 00:05:04,430 --> 00:05:05,910 un método auxiliar que sea 112 00:05:05,910 --> 00:05:08,470 que ponga, está reservada 113 00:05:08,470 --> 00:05:09,750 y le paso un objeto a habitación 114 00:05:09,750 --> 00:05:11,910 pues habitación por habitación, llamo a ese método 115 00:05:11,910 --> 00:05:14,029 está reservada, que a su vez implicará 116 00:05:14,029 --> 00:05:15,290 un buitrear por aquí. 117 00:05:16,389 --> 00:05:18,170 Si no está reservada, 118 00:05:18,829 --> 00:05:20,209 la incorporo. Así hasta 119 00:05:20,209 --> 00:05:21,990 que incorpore tantas 120 00:05:21,990 --> 00:05:23,990 como necesito para alojar 121 00:05:23,990 --> 00:05:25,129 a todas estas personas. 122 00:05:25,930 --> 00:05:28,310 Si lo consigo, fenomenal. 123 00:05:28,589 --> 00:05:29,149 Disponibilidad 124 00:05:29,149 --> 00:05:33,829 devolverá 125 00:05:33,829 --> 00:05:36,310 una reserva creada con esas habitaciones 126 00:05:36,310 --> 00:05:37,930 y esa fecha. Y si no, devolverlo. 127 00:05:38,649 --> 00:05:39,910 Entonces, bueno, este método 128 00:05:39,910 --> 00:05:41,389 Es un poco extraño 129 00:05:41,389 --> 00:05:42,649 Y luego aquí abajo había 130 00:05:42,649 --> 00:05:46,350 Luego se puede hacer un main con gestiones de cosas 131 00:05:46,350 --> 00:05:47,870 Imagino 132 00:05:47,870 --> 00:05:50,750 Es que yo no sé si abajo 133 00:05:50,750 --> 00:05:52,170 Aquí había main o había algo 134 00:05:52,170 --> 00:05:53,269 Yo creo que no había nada 135 00:05:53,269 --> 00:05:56,110 Uy 136 00:05:56,110 --> 00:05:57,589 Había aquí un montón de cosas 137 00:05:57,589 --> 00:05:59,709 Sí 138 00:05:59,709 --> 00:06:01,129 Había 139 00:06:01,129 --> 00:06:01,470 ¿Eh? 140 00:06:03,769 --> 00:06:04,970 ¿Cómo que esto es hospital? 141 00:06:05,709 --> 00:06:06,850 Crear una clase 142 00:06:06,850 --> 00:06:08,170 Reserva larga 143 00:06:08,170 --> 00:06:09,810 Primer día atributo de disponibilidad 144 00:06:09,810 --> 00:06:11,910 ¿Qué es esto? 145 00:06:12,870 --> 00:06:13,850 Ah, pero este sí que es 146 00:06:13,850 --> 00:06:14,629 O sea, esta 147 00:06:14,629 --> 00:06:17,009 Esto sí que es 148 00:06:17,009 --> 00:06:18,970 Vale, pero bueno 149 00:06:18,970 --> 00:06:21,790 Con que nos quedamos con ese de ahí 150 00:06:21,790 --> 00:06:23,170 Suficiente 151 00:06:23,170 --> 00:06:31,310 Vale 152 00:06:31,310 --> 00:06:32,449 Entonces aquí 153 00:06:32,449 --> 00:06:34,730 Sugiere 154 00:06:34,730 --> 00:06:37,490 Usar el objeto local date en lugar de date 155 00:06:37,490 --> 00:06:39,029 Que está en el paquete java time 156 00:06:39,029 --> 00:06:40,910 Que está más actualizado que java útil 157 00:06:40,910 --> 00:06:42,230 Que es el que tiene el date normal 158 00:06:42,230 --> 00:06:44,870 con métodos para crear la fecha, 159 00:06:44,990 --> 00:06:46,310 comprar unas con otras, etc. 160 00:06:46,550 --> 00:06:46,930 Pero bueno. 161 00:06:48,350 --> 00:06:49,449 Vale, pues entonces, 162 00:06:50,870 --> 00:06:52,930 ese podría ser un enfoque de esta aplicación 163 00:06:52,930 --> 00:06:53,529 y de ese método. 164 00:06:54,230 --> 00:06:56,029 Que es el que habéis empezado a hacer 165 00:06:56,029 --> 00:06:57,269 o incluso hecho. 166 00:06:58,310 --> 00:06:58,550 ¿Vale? 167 00:06:59,370 --> 00:06:59,810 Entonces, 168 00:07:00,430 --> 00:07:01,629 tú lo has hecho, 169 00:07:01,750 --> 00:07:02,769 pero no te funciona 170 00:07:02,769 --> 00:07:04,569 o no acabas de ver por qué no te funciona, ¿no? 171 00:07:04,629 --> 00:07:05,089 No, a ver, 172 00:07:05,569 --> 00:07:06,670 lo he hecho exactamente lo que he querido, 173 00:07:06,670 --> 00:07:07,029 lo he hecho, 174 00:07:07,250 --> 00:07:08,910 me he empezado un poco a reír, 175 00:07:09,069 --> 00:07:09,629 por así decirlo. 176 00:07:10,389 --> 00:07:10,829 Pero... 177 00:07:10,829 --> 00:07:12,810 Pero el método buscar disponibilidad lo has hecho 178 00:07:12,810 --> 00:07:13,750 Sí, eso sí 179 00:07:13,750 --> 00:07:17,490 Pues venga, vamos a revisártelo y vamos a ver si te lo aprobamos o no te lo aprobamos 180 00:07:17,490 --> 00:07:21,970 No sufras, no sufras 181 00:07:21,970 --> 00:07:23,449 Que te lo vamos a aprobar 182 00:07:23,449 --> 00:07:25,009 Tú tranquilo 183 00:07:25,009 --> 00:07:35,220 ¿Tú estás seguro que me lo has subido? 184 00:07:35,939 --> 00:07:36,220 Sí 185 00:07:36,220 --> 00:07:42,009 No, no, no, solo se lo he subido 186 00:07:42,009 --> 00:07:43,649 A ver 187 00:07:43,649 --> 00:07:48,120 Ah, que tengo que entrar aquí 188 00:07:49,980 --> 00:07:55,019 Vale, pero no me aparece un listado 189 00:07:55,019 --> 00:07:56,620 Tengo que ir así, no me lo puedo creer 190 00:07:56,620 --> 00:07:58,879 Habrá un listado aquí en las tareas 191 00:07:58,879 --> 00:08:00,579 Ver todos los envíos 192 00:08:00,579 --> 00:08:01,579 Ah, vale, vale 193 00:08:01,579 --> 00:08:03,060 Vale, aquí está 194 00:08:03,060 --> 00:08:04,220 Entonces 195 00:08:04,220 --> 00:08:12,569 Eres tú y eres este 196 00:08:12,569 --> 00:08:14,750 Vale, espera, vamos a 197 00:08:14,750 --> 00:08:18,990 Habitación 198 00:08:18,990 --> 00:08:20,370 Número de habitación 199 00:08:20,370 --> 00:08:22,629 El número de camas 200 00:08:22,629 --> 00:08:24,350 Y lo que cuesta por noche 201 00:08:24,350 --> 00:08:25,250 Muy bien 202 00:08:25,250 --> 00:08:27,370 Constructor con los tres parámetros 203 00:08:27,370 --> 00:08:34,610 Y luego aparte has sobrescrito equals, muy bien, a través del número de habitación porque es la clave primaria. 204 00:08:35,309 --> 00:08:36,509 Puede ser útil ese método. 205 00:08:37,490 --> 00:08:42,370 Has sobrescrito toStream y camas de personas disponibles. 206 00:08:45,639 --> 00:08:47,720 Spot, aparte de mancha, ¿qué significa? 207 00:08:48,340 --> 00:08:51,179 Spot significa hueco. 208 00:08:51,700 --> 00:08:52,259 Hueco, vale. 209 00:08:52,919 --> 00:08:54,700 Vale, número de camas, muy bien. 210 00:08:56,000 --> 00:08:57,100 La familia room. 211 00:08:57,100 --> 00:09:04,759 añade esto, con lo cual sobrescribe, más que sobrescribe, hace su nuevo constructor 212 00:09:04,759 --> 00:09:09,139 y luego efectivamente sobrescribe este método, método sobrescrito. 213 00:09:10,039 --> 00:09:18,419 Ala, la reserva, la reserva, fecha en la que he reservado, 214 00:09:19,799 --> 00:09:22,360 número de habitaciones, o sea, habitaciones reservadas. 215 00:09:22,740 --> 00:09:28,399 Vale, en lugar de optar por el array de números enteros, que podría ser, 216 00:09:28,399 --> 00:09:30,919 directamente toda la habitación 217 00:09:30,919 --> 00:09:31,919 entera en el array. 218 00:09:32,840 --> 00:09:35,000 También estará dentro su número, lógicamente, 219 00:09:35,080 --> 00:09:36,779 porque está dentro del objeto. Bueno, vale, pues 220 00:09:36,779 --> 00:09:38,519 todas las habitaciones de la reserva, ahí. 221 00:09:40,379 --> 00:09:40,860 Inicialmente, 222 00:09:41,259 --> 00:09:43,139 cuando tú 223 00:09:43,139 --> 00:09:44,840 crees una reserva nueva, tal y como 224 00:09:44,840 --> 00:09:46,679 lo has hecho, inicialmente, cuando 225 00:09:46,679 --> 00:09:49,059 creamos una reserva, se va a crear 226 00:09:49,059 --> 00:09:51,100 sin ninguna habitación, 227 00:09:51,440 --> 00:09:52,460 sin ninguna todavía, 228 00:09:52,779 --> 00:09:54,259 se supone que habrá que irlas introduciendo, 229 00:09:55,100 --> 00:09:56,600 pero al menos el array existe. 230 00:09:56,600 --> 00:09:59,840 aunque no tenga espacio para ninguna habitación 231 00:09:59,840 --> 00:10:00,700 al menos no es null 232 00:10:00,700 --> 00:10:02,740 lo cual es recomendable 233 00:10:02,740 --> 00:10:05,139 y esto 234 00:10:05,139 --> 00:10:06,860 la reserva tenía 235 00:10:06,860 --> 00:10:08,840 fecha, número de habitaciones 236 00:10:08,840 --> 00:10:10,539 y dice aquí 237 00:10:10,539 --> 00:10:12,580 que alguna otra 238 00:10:12,580 --> 00:10:19,919 reserva, ¿dónde está reserva? 239 00:10:20,759 --> 00:10:21,320 fecha 240 00:10:21,320 --> 00:10:23,700 y número de personas de la reserva 241 00:10:23,700 --> 00:10:25,700 ya te estaba yo regañando 242 00:10:25,700 --> 00:10:27,600 ¿por qué te inventas propiedades? eso es lo peor 243 00:10:27,600 --> 00:10:30,320 que se puede hacer, inventarte una propiedad 244 00:10:30,320 --> 00:10:32,559 O sea, que no sea necesaria 245 00:10:32,559 --> 00:10:33,799 Que no identifique al objeto 246 00:10:33,799 --> 00:10:36,440 Porque entonces automáticamente pierde 247 00:10:36,440 --> 00:10:38,179 Su sentido el modelo 248 00:10:38,179 --> 00:10:39,200 Pero no te lo has inventado 249 00:10:39,200 --> 00:10:42,279 El número de habitaciones, perdón, el número de personas de la reserva 250 00:10:42,279 --> 00:10:44,340 Vale, ay, que feo 251 00:10:44,340 --> 00:10:46,440 Este asterisco, ya sé que a ChaGPT 252 00:10:46,440 --> 00:10:47,559 Le gustan mucho los asteriscos 253 00:10:47,559 --> 00:10:50,360 Ah, bueno, pues quien sea 254 00:10:50,360 --> 00:10:51,600 Que feo 255 00:10:51,600 --> 00:10:54,019 Te daba pereza 256 00:10:54,019 --> 00:10:56,200 Pero si solamente era para importar room 257 00:10:56,200 --> 00:11:00,460 Bueno 258 00:11:00,460 --> 00:11:02,179 Solo por esto, dime 259 00:11:02,179 --> 00:11:13,250 para que sea única 260 00:11:13,250 --> 00:11:22,129 Sí, porque para 261 00:11:22,129 --> 00:11:24,149 el método de comprobar disponibilidad 262 00:11:24,149 --> 00:11:25,690 en particular no hace falta 263 00:11:25,690 --> 00:11:28,750 pero efectivamente, claro, para comprobar disponibilidad 264 00:11:28,750 --> 00:11:28,990 no 265 00:11:28,990 --> 00:11:32,769 pero si la reserva la dejamos así 266 00:11:32,769 --> 00:11:34,870 lo único 267 00:11:34,870 --> 00:11:36,610 que se queda como clave primaria 268 00:11:36,610 --> 00:11:37,909 en la reserva ahora mismo 269 00:11:37,909 --> 00:11:41,009 sería la combinación 270 00:11:41,009 --> 00:11:41,610 de estas dos 271 00:11:41,610 --> 00:11:44,389 luego se queda una clave primaria muy complicada 272 00:11:44,389 --> 00:11:46,950 porque para identificar una reserva 273 00:11:46,950 --> 00:11:48,850 lo que la distingue de otra es 274 00:11:48,850 --> 00:11:51,070 o sea, si dos reservas 275 00:11:51,070 --> 00:11:51,470 tienen 276 00:11:51,470 --> 00:11:55,110 comparten 277 00:11:55,110 --> 00:11:56,590 una habitación en la misma fecha 278 00:11:56,590 --> 00:11:57,830 entonces son la misma 279 00:11:57,830 --> 00:12:00,370 efectivamente se queda un equals muy raro 280 00:12:00,370 --> 00:12:02,750 y un código, una clave primaria muy rara 281 00:12:02,750 --> 00:12:04,049 entonces efectivamente 282 00:12:04,049 --> 00:12:07,230 tienes toda la razón que este modelo 283 00:12:07,230 --> 00:12:10,429 es bastante feo, como ya os he dicho al principio 284 00:12:10,429 --> 00:12:12,629 no el tuyo, el del enunciado 285 00:12:12,629 --> 00:12:14,629 ya he dicho desde el principio 286 00:12:14,629 --> 00:12:16,149 que ese enunciado era muy feo 287 00:12:16,149 --> 00:12:17,389 estaba muy mal analizado 288 00:12:17,389 --> 00:12:18,809 y efectivamente 289 00:12:18,809 --> 00:12:21,610 por esto es una de las cosas 290 00:12:21,610 --> 00:12:23,809 vamos a dejarlo bonito 291 00:12:23,809 --> 00:12:26,090 por si luego lo subimos, por si alguien lo necesita 292 00:12:26,090 --> 00:12:27,750 o lo usa, pues ya está 293 00:12:27,750 --> 00:12:29,009 un código de reserva 294 00:12:29,009 --> 00:12:33,909 código de reserva para que lo identifique 295 00:12:33,909 --> 00:12:35,710 fecha, número de habitaciones y patatín 296 00:12:35,710 --> 00:12:37,470 Y ya está 297 00:12:37,470 --> 00:12:40,450 Y le ponemos aquí el código de reserva 298 00:12:40,450 --> 00:12:49,909 Pero sí, muy bien visto 299 00:12:49,909 --> 00:12:52,169 Soy muy espabiloso 300 00:12:52,169 --> 00:12:56,779 Vale 301 00:12:56,779 --> 00:12:59,340 Vale, constructor 302 00:12:59,340 --> 00:13:02,620 Constructor con número de habitaciones 303 00:13:02,620 --> 00:13:05,960 Has hecho un montón de constructores 304 00:13:05,960 --> 00:13:07,399 Vale, no pasa nada 305 00:13:07,399 --> 00:13:09,809 Eh 306 00:13:09,809 --> 00:13:12,529 Uno sin la 307 00:13:12,529 --> 00:13:13,190 Sí 308 00:13:13,190 --> 00:13:16,070 Vale 309 00:13:16,070 --> 00:13:18,750 Constructor sin el array 310 00:13:18,750 --> 00:13:20,990 Ahora, las fechas 311 00:13:20,990 --> 00:13:22,750 No sé qué 312 00:13:22,750 --> 00:13:23,710 El equals 313 00:13:23,710 --> 00:13:26,830 Lo has hecho por 314 00:13:26,830 --> 00:13:28,409 Habitaciones reservadas, ¿verdad? 315 00:13:28,730 --> 00:13:30,570 Se coincide solo una habitación 316 00:13:30,570 --> 00:13:32,909 Pero si es en diferente fecha 317 00:13:32,909 --> 00:13:34,730 Ah, la fecha, también la has tenido en cuenta 318 00:13:34,730 --> 00:13:37,029 Claro, era justo lo que decíamos 319 00:13:37,029 --> 00:13:38,970 Que el equals se basa en fecha 320 00:13:38,970 --> 00:13:40,549 Y una de las habitaciones 321 00:13:40,549 --> 00:13:41,909 Un equals que se complica mucho 322 00:13:41,909 --> 00:13:44,289 poniendo el código, que es como realmente 323 00:13:44,289 --> 00:13:45,629 habría que hacerlo poniendo el código 324 00:13:45,629 --> 00:13:48,210 pues este equals te lo vamos a pisar, no te molesta 325 00:13:48,210 --> 00:13:52,690 no es que haga falta o no haga falta 326 00:13:52,690 --> 00:13:53,809 no sobra 327 00:13:53,809 --> 00:13:56,470 no sobra un equals 328 00:13:56,470 --> 00:13:59,049 le da mucha semántica 329 00:13:59,049 --> 00:13:59,750 al modelo 330 00:13:59,750 --> 00:14:02,450 le da mucha semántica porque le da un criterio de igualdad 331 00:14:02,450 --> 00:14:04,190 y a lo mejor 332 00:14:04,190 --> 00:14:06,269 en el código en particular 333 00:14:06,269 --> 00:14:08,250 que te he hecho en tu mail, no lo usas 334 00:14:08,250 --> 00:14:10,309 pero en cualquier ampliación sí que empiezas 335 00:14:10,309 --> 00:14:12,289 a usarlo, sobre todo como lo empieces a 336 00:14:12,289 --> 00:14:13,309 meter en colecciones 337 00:14:13,309 --> 00:14:16,389 ahí ya es imprescindible, como ya veremos 338 00:14:16,389 --> 00:14:18,090 a partir del lunes, pero 339 00:14:18,090 --> 00:14:20,090 no te estoy contestando a la última pregunta 340 00:14:20,090 --> 00:14:21,629 que me querías preguntar 341 00:14:21,629 --> 00:14:23,830 ¿por qué hace falta el for en un igual? 342 00:14:24,509 --> 00:14:25,470 ¿por qué hace falta el qué? 343 00:14:26,450 --> 00:14:27,570 es que he ido buscando 344 00:14:27,570 --> 00:14:29,330 si no recuerdo mal 345 00:14:29,330 --> 00:14:31,230 un segundito, es que no lo he oído 346 00:14:31,230 --> 00:14:34,049 yo cuando voy sobre escrito de igual 347 00:14:34,049 --> 00:14:35,429 no hago for 348 00:14:35,429 --> 00:14:38,289 a ver, el ha hecho for 349 00:14:38,289 --> 00:14:40,070 pues ha hecho for porque en su caso 350 00:14:40,070 --> 00:14:42,129 quería identificar si había alguna 351 00:14:42,129 --> 00:14:44,070 habitación compartida entre el DIS y este 352 00:14:44,070 --> 00:14:45,909 otro, solo una, entonces para eso 353 00:14:45,909 --> 00:14:46,509 pues ha hecho un for 354 00:14:46,509 --> 00:14:56,009 Claro, no compara directamente una RAI 355 00:14:56,009 --> 00:14:58,049 con el otro, compara que al menos 356 00:14:58,049 --> 00:14:59,889 una de estas y al menos una de estas 357 00:14:59,889 --> 00:15:01,669 sean iguales, entonces tiene que hacer un for 358 00:15:01,669 --> 00:15:04,250 pero efectivamente esto 359 00:15:04,250 --> 00:15:07,250 vamos a 360 00:15:07,250 --> 00:15:10,009 cambiarlo 361 00:15:10,009 --> 00:15:19,580 a return this.código 362 00:15:19,580 --> 00:15:22,379 igual a 363 00:15:22,379 --> 00:15:37,649 resurrection de o obj.código. 364 00:15:41,279 --> 00:15:41,480 ¡Hala! 365 00:15:42,840 --> 00:15:44,200 Este igual es más cómodo. 366 00:15:44,480 --> 00:15:45,340 Ahora, vale. 367 00:15:45,519 --> 00:15:46,840 Has sobrescrito tu string. 368 00:15:49,950 --> 00:15:52,870 Este método es para devolver la fecha de la reserva 369 00:15:53,710 --> 00:16:10,250 No, perdón, para comprobar si la reserva, este método que has puesto aquí es un método útil, un método útil que es para comprobar si la reserva, bueno, aparte luego pedí el anunciado, si esta reserva es para el día que le pasemos. 370 00:16:10,250 --> 00:16:12,029 nos va a ser muy útil luego en los if 371 00:16:12,029 --> 00:16:14,309 para ver si hay alguna rehabilitación reservada en ese día 372 00:16:14,309 --> 00:16:14,610 o no 373 00:16:14,610 --> 00:16:16,690 bueno 374 00:16:16,690 --> 00:16:20,289 pero puede ser útil, le pasamos una fecha 375 00:16:20,289 --> 00:16:21,710 y 376 00:16:21,710 --> 00:16:23,750 ¿por qué no 377 00:16:23,750 --> 00:16:25,950 returneas, como diría tu amiga 378 00:16:25,950 --> 00:16:28,649 directamente date.equals 379 00:16:28,649 --> 00:16:29,269 y ya está 380 00:16:29,269 --> 00:16:30,149 ¿no? 381 00:16:31,210 --> 00:16:32,190 ah, sí, también, ¿verdad? 382 00:16:33,529 --> 00:16:40,700 claro, ¿no? devuelves directamente 383 00:16:40,700 --> 00:16:41,259 esto 384 00:16:41,259 --> 00:16:43,639 y ya está 385 00:16:43,639 --> 00:16:48,820 y falta el punto y coma 386 00:16:48,820 --> 00:16:51,700 y sobra 387 00:16:51,700 --> 00:16:52,500 un 388 00:16:52,500 --> 00:16:55,299 vale, pues estupendo 389 00:16:55,299 --> 00:16:58,059 comprobar si una reserva es 390 00:16:58,059 --> 00:17:00,019 de la fecha que le pasamos 391 00:17:00,019 --> 00:17:00,860 es este equals 392 00:17:00,860 --> 00:17:04,059 vale, entonces vosotros 393 00:17:04,059 --> 00:17:05,359 podréis decir 394 00:17:05,359 --> 00:17:06,980 jolines, pero 395 00:17:06,980 --> 00:17:09,579 un método para esta línea 396 00:17:09,579 --> 00:17:12,099 cuando yo en algún momento necesite 397 00:17:12,099 --> 00:17:13,599 comprobar si una reserva 398 00:17:13,599 --> 00:17:15,559 es para una fecha 399 00:17:15,559 --> 00:17:17,039 pues en ese punto 400 00:17:17,039 --> 00:17:18,799 me hago yo el equals y ya está 401 00:17:18,799 --> 00:17:21,940 fecha1.getDate 402 00:17:21,940 --> 00:17:23,200 equals 403 00:17:23,200 --> 00:17:25,519 la fecha que me han pasado 404 00:17:25,519 --> 00:17:26,579 lo pongo ahí y ya está 405 00:17:26,579 --> 00:17:28,720 pues sí, porque no deja de ser una línea 406 00:17:28,720 --> 00:17:29,720 pero 407 00:17:29,720 --> 00:17:33,220 esta versión hace la aplicación 408 00:17:33,220 --> 00:17:35,220 más, de nuevo 409 00:17:35,220 --> 00:17:37,059 repito la palabra, más escalable 410 00:17:37,059 --> 00:17:38,099 porque ahora mismo 411 00:17:38,099 --> 00:17:40,079 la fecha de la reserva 412 00:17:40,079 --> 00:17:43,200 está directamente aquí metida en una propiedad 413 00:17:43,200 --> 00:17:47,859 pero en un momento dado puede que cambiemos la reserva 414 00:17:47,859 --> 00:17:51,720 porque la aplicación ha incorporado algunas funcionalidades 415 00:17:51,720 --> 00:17:53,839 y ahora mi objeto reserva 416 00:17:53,839 --> 00:17:55,700 pues le cambio sus propiedades 417 00:17:55,700 --> 00:17:58,740 y la fecha a lo mejor está metida dentro de otro objeto 418 00:17:58,740 --> 00:17:59,720 de otra propiedad 419 00:17:59,720 --> 00:18:02,140 porque yo he decidido cambiar el diseño 420 00:18:02,140 --> 00:18:04,559 para incorporar esas nuevas funcionalidades 421 00:18:04,559 --> 00:18:06,240 entonces 422 00:18:06,240 --> 00:18:10,960 si yo tengo el comprobar fecha en un método aquí 423 00:18:10,960 --> 00:18:13,940 pues me vengo aquí y cambio 424 00:18:13,940 --> 00:18:15,700 este nuevo equals 425 00:18:15,700 --> 00:18:17,720 que será metiéndose en la otra propiedad 426 00:18:17,720 --> 00:18:19,720 sacando la fecha, lo que sea, lo cambio aquí 427 00:18:19,720 --> 00:18:20,220 y se acabó 428 00:18:20,220 --> 00:18:23,759 si yo no he hecho este método y en las zonas 429 00:18:23,759 --> 00:18:26,019 de mi main o por ahí donde yo compruebo 430 00:18:26,019 --> 00:18:27,859 si una reserva es de una fecha 431 00:18:27,859 --> 00:18:29,779 estoy tirando de esta línea 432 00:18:29,779 --> 00:18:31,960 voy a tenerme que ir a todas partes 433 00:18:31,960 --> 00:18:33,779 a cambiar esa línea, lo cual es un rollo 434 00:18:33,779 --> 00:18:34,880 ¿vale? 435 00:18:35,960 --> 00:18:37,680 entonces, casi todo 436 00:18:37,680 --> 00:18:38,599 tiene su porqué 437 00:18:38,599 --> 00:18:41,539 Vale, y aquí 438 00:18:41,539 --> 00:18:44,019 Esto es 439 00:18:44,019 --> 00:18:46,500 Para meter una habitación en la reserva 440 00:18:46,500 --> 00:18:48,359 Vale, para meter una habitación 441 00:18:48,359 --> 00:18:50,240 En la reserva, que efectivamente también es un método útil 442 00:18:50,240 --> 00:18:51,900 Porque cuando estamos construyendo una reserva 443 00:18:51,900 --> 00:18:53,259 Con habitaciones que están libres 444 00:18:53,259 --> 00:18:54,960 Pues bueno, vale 445 00:18:54,960 --> 00:18:58,119 Entonces, créate 446 00:18:58,119 --> 00:18:59,880 Yo lo llamaría 447 00:18:59,880 --> 00:19:02,240 No os pegaría más 448 00:19:02,240 --> 00:19:03,720 Añadir, porque estás añadiendo 449 00:19:03,720 --> 00:19:06,680 No decías que el cruz 450 00:19:06,680 --> 00:19:07,160 Era como esto 451 00:19:07,160 --> 00:19:13,079 pero aquí no estás haciendo en realidad 452 00:19:13,079 --> 00:19:14,220 un CRUD 453 00:19:14,220 --> 00:19:17,059 porque no estás creando 454 00:19:17,059 --> 00:19:17,839 una habitación 455 00:19:17,839 --> 00:19:20,140 la habitación ya existe, está en el hotel 456 00:19:20,140 --> 00:19:22,119 y estás incorporándola 457 00:19:22,119 --> 00:19:24,000 a tu array de opciones reservadas 458 00:19:24,000 --> 00:19:25,900 es una cosa más propia de la aplicación 459 00:19:25,900 --> 00:19:29,279 es una cosa propia de la aplicación 460 00:19:29,279 --> 00:19:30,859 que es coger de un array 461 00:19:30,859 --> 00:19:32,539 una habitación, la meto aquí 462 00:19:32,539 --> 00:19:34,799 entonces no es que estés haciendo 463 00:19:34,799 --> 00:19:35,980 aparecer una habitación 464 00:19:35,980 --> 00:19:39,779 entonces 465 00:19:39,779 --> 00:19:42,720 bueno 466 00:19:42,720 --> 00:19:45,339 ¿me permites? 467 00:19:46,000 --> 00:19:46,579 sí, sí, sí 468 00:19:46,579 --> 00:19:49,019 no pasa nada 469 00:19:49,019 --> 00:19:50,599 porque ahora te lo vamos a cambiar 470 00:19:50,599 --> 00:19:52,660 vale, añado una habitación 471 00:19:52,660 --> 00:19:54,940 y aquí añadir una habitación 472 00:19:54,940 --> 00:19:57,240 pues lo mismo, te haces una raya auxiliar 473 00:19:57,240 --> 00:19:58,940 con una posición más 474 00:19:58,940 --> 00:20:01,180 copias 475 00:20:01,180 --> 00:20:03,700 el antiguo en el nuevo 476 00:20:03,700 --> 00:20:06,720 copias el este 477 00:20:06,720 --> 00:20:08,980 Pero te falta sustituir 478 00:20:08,980 --> 00:20:10,640 Te falta 479 00:20:10,640 --> 00:20:13,440 Bucket room igual aux 480 00:20:13,440 --> 00:20:16,890 Está bien porque el de primera 481 00:20:16,890 --> 00:20:18,869 Se ha hecho aux igual a book room 482 00:20:18,869 --> 00:20:20,529 Se lo he hecho al revés 483 00:20:20,529 --> 00:20:22,829 Pero, claro, pero es que 484 00:20:22,829 --> 00:20:23,809 Esto no puede ir aquí 485 00:20:23,809 --> 00:20:25,529 Porque si es bucket room 486 00:20:25,529 --> 00:20:27,190 Entonces estás aquí 487 00:20:27,190 --> 00:20:30,970 O sea, es que está aquí 488 00:20:30,970 --> 00:20:35,130 A ver, espérate 489 00:20:35,130 --> 00:20:37,150 Pero a ver 490 00:20:37,150 --> 00:20:38,329 Es que estás pisando 491 00:20:38,329 --> 00:20:40,750 Claro, pero aún se queda con eso 492 00:20:40,750 --> 00:20:42,609 ¿Cómo que se queda con eso? 493 00:20:42,789 --> 00:20:44,309 A ver, estás aquí 494 00:20:44,309 --> 00:20:46,609 Tu array, bucket room 495 00:20:46,609 --> 00:20:48,250 Lo has tirado a la basura 496 00:20:48,250 --> 00:20:50,509 Ha desaparecido, las habitaciones que tenías reservadas 497 00:20:50,509 --> 00:20:51,470 De antes se han ido fuera 498 00:20:51,470 --> 00:20:54,490 No lo copies, es que ya no puedes copiarlo 499 00:20:54,490 --> 00:20:56,569 Ah, que lo tienes en un aux 500 00:20:56,569 --> 00:20:57,390 Vale, vale, vale 501 00:20:57,390 --> 00:20:58,789 Lo tienes en un aux 502 00:20:58,789 --> 00:21:03,170 Vale, vale 503 00:21:03,170 --> 00:21:04,269 Entonces 504 00:21:04,269 --> 00:21:07,130 Este es el bueno, el que queremos que sea bueno 505 00:21:07,130 --> 00:21:09,369 Lo que tenía hasta ahora 506 00:21:09,369 --> 00:21:10,390 Lo has copiado en uno 507 00:21:10,390 --> 00:21:12,890 Te haces uno limpio 508 00:21:12,890 --> 00:21:14,829 En ese limpio 509 00:21:14,829 --> 00:21:17,450 Copias lo antiguo 510 00:21:17,450 --> 00:21:19,069 Y en la añadida 511 00:21:19,069 --> 00:21:20,450 Le copias esto, vale 512 00:21:20,450 --> 00:21:22,730 Vale 513 00:21:22,730 --> 00:21:24,750 Le copias la nueva 514 00:21:24,750 --> 00:21:28,970 Sí, que sí, sí 515 00:21:28,970 --> 00:21:30,589 Lo que pasa es que nosotros, lo pongo aquí 516 00:21:30,589 --> 00:21:31,509 Por si alguien se lía 517 00:21:31,509 --> 00:21:34,170 Nosotros siempre lo habíamos hecho así, ¿no? 518 00:21:35,109 --> 00:21:36,269 Lo pongo aquí, aunque sea 519 00:21:36,269 --> 00:21:37,529 Por si alguien se hace un lío 520 00:21:37,529 --> 00:21:40,490 habíamos hecho, esto siempre lo primero 521 00:21:40,490 --> 00:21:42,329 un array auxiliar 522 00:21:42,329 --> 00:21:43,930 con una posición más 523 00:21:43,930 --> 00:21:45,210 vale 524 00:21:45,210 --> 00:21:48,190 un array con una posición más 525 00:21:48,190 --> 00:21:49,690 ahora 526 00:21:49,690 --> 00:21:51,589 hacíamos la copia 527 00:21:51,589 --> 00:21:57,359 de en este 528 00:21:57,359 --> 00:21:58,539 nuevo array aux 529 00:21:58,539 --> 00:22:00,980 copiábamos 530 00:22:00,980 --> 00:22:02,539 lo que tenía el viejo 531 00:22:02,539 --> 00:22:08,039 ahora en la extra de aux 532 00:22:08,039 --> 00:22:09,859 en la extra, porque aux tiene 533 00:22:09,859 --> 00:22:12,079 una más, en la extra 534 00:22:12,079 --> 00:22:14,140 copiábamos la nueva habitación 535 00:22:14,140 --> 00:22:15,720 que estábamos metiendo, que era R 536 00:22:15,720 --> 00:22:17,759 y ahora el array bueno y bonito 537 00:22:17,759 --> 00:22:20,319 que es aux, sustituye 538 00:22:20,319 --> 00:22:25,700 a bucket room 539 00:22:25,700 --> 00:22:27,579 ¿vale? entonces 540 00:22:27,579 --> 00:22:29,220 lo de arriba y lo de abajo 541 00:22:29,220 --> 00:22:31,660 es lo mismo, pero 542 00:22:31,660 --> 00:22:33,640 hecho de otra manera, entonces 543 00:22:33,640 --> 00:22:37,329 comento uno de los dos 544 00:22:37,329 --> 00:22:39,170 ¿vale? en principio 545 00:22:39,170 --> 00:22:39,789 hacen lo mismo 546 00:22:39,789 --> 00:22:43,559 ¿vale? 547 00:22:44,680 --> 00:22:45,200 vale 548 00:22:45,200 --> 00:22:48,759 bueno, pues esto es, añadir habitación 549 00:22:48,759 --> 00:22:50,400 a la reserva en la que estamos 550 00:22:50,400 --> 00:22:53,160 y ya está, y reserva no tiene nada más 551 00:22:53,160 --> 00:22:55,059 y ahora 552 00:22:55,059 --> 00:22:55,720 vámonos al hotel 553 00:22:55,720 --> 00:22:58,900 el hotel que está aquí 554 00:22:58,900 --> 00:23:02,759 vale 555 00:23:02,759 --> 00:23:05,720 a ver, has llamado al paquete repositorio 556 00:23:05,720 --> 00:23:06,900 en realidad esto no es 557 00:23:06,900 --> 00:23:09,519 esto no son los datos, o sea esto es 558 00:23:09,519 --> 00:23:11,720 la clase hotel, los datos serían 559 00:23:11,720 --> 00:23:13,019 en todo caso el objeto hotel 560 00:23:13,019 --> 00:23:15,460 esto sería una clase 561 00:23:15,460 --> 00:23:17,819 repositorio, en este caso lo más parecido 562 00:23:17,819 --> 00:23:19,519 a simular la situación, una clase repositorio 563 00:23:19,519 --> 00:23:20,839 que tiene su variable estática hotel 564 00:23:20,839 --> 00:23:23,420 que ese ya es el dato real 565 00:23:23,420 --> 00:23:26,059 esto es la clase hotel, aquí todavía no hay ningún dato 566 00:23:26,059 --> 00:23:28,079 esta es la plantilla de lo que va a tener el hotel 567 00:23:28,079 --> 00:23:29,740 vale 568 00:23:29,740 --> 00:23:33,410 entonces, el hotel 569 00:23:33,410 --> 00:23:35,690 que todavía no existe ninguno, esta es la plantilla 570 00:23:35,690 --> 00:23:37,210 para que exista uno habrá que hacer un 571 00:23:37,210 --> 00:23:38,309 new hotel 572 00:23:38,309 --> 00:23:41,410 en un main, en un repositorio de datos 573 00:23:41,410 --> 00:23:42,930 para que se quede ahí donde sea 574 00:23:42,930 --> 00:23:45,670 vale, bueno pues nuestro hotel 575 00:23:45,670 --> 00:23:46,089 tiene 576 00:23:46,089 --> 00:23:48,490 mogollón de habitaciones 577 00:23:48,490 --> 00:23:51,349 y mogollón de reservas 578 00:23:51,349 --> 00:23:53,829 cuando el hotel se cree limpio 579 00:23:53,829 --> 00:23:56,190 inicialmente ninguna, 0 y 0 580 00:23:56,190 --> 00:23:57,150 vale 581 00:23:57,150 --> 00:23:58,829 ahora 582 00:23:58,829 --> 00:24:02,470 este método es para meterle habitaciones 583 00:24:02,470 --> 00:24:04,230 al hotel, ahora lo estamos construyendo 584 00:24:04,230 --> 00:24:06,470 estamos poniendo los ladrillos del hotel 585 00:24:06,470 --> 00:24:08,470 cuando hayamos terminado de poner los ladrillos 586 00:24:09,029 --> 00:24:12,170 no tiene 587 00:24:12,170 --> 00:24:14,130 todavía ni habitaciones ni reservas 588 00:24:14,130 --> 00:24:15,849 tiene sentido que 589 00:24:15,849 --> 00:24:17,509 incorporemos métodos para 590 00:24:17,509 --> 00:24:19,769 construir, poner los ladrillos 591 00:24:19,769 --> 00:24:21,549 de las habitaciones, vamos a poner los 592 00:24:21,549 --> 00:24:23,569 los pladures para hacer las habitaciones 593 00:24:23,569 --> 00:24:25,910 y luego ya a partir de ahí 594 00:24:25,910 --> 00:24:27,890 ya vamos a reservarlas, a hacer lo que sea 595 00:24:27,890 --> 00:24:29,690 pues venga, vamos a poner aquí 596 00:24:29,690 --> 00:24:31,170 los pladures de las habitaciones 597 00:24:31,170 --> 00:24:33,609 ¿qué otra vez lo has hecho a lo raro? 598 00:24:34,109 --> 00:24:36,009 pero bueno, ya, o sea, a tu manera 599 00:24:36,009 --> 00:24:37,970 pero como ya lo hemos entendido de antes 600 00:24:37,970 --> 00:24:39,109 no hay problema 601 00:24:39,109 --> 00:24:41,750 esta es una nueva habitación que se va 602 00:24:41,750 --> 00:24:42,269 al hotel 603 00:24:42,269 --> 00:24:45,369 que ya se reservará en el futuro, ¿no? 604 00:24:45,890 --> 00:24:47,549 ¿vale? entonces 605 00:24:47,549 --> 00:24:49,890 mis habitaciones viejas se van al auxiliar 606 00:24:49,890 --> 00:24:52,450 Mis nuevas habitaciones 607 00:24:52,450 --> 00:24:53,769 Copio las viejas 608 00:24:53,769 --> 00:24:56,150 Y añado la nueva 609 00:24:56,150 --> 00:24:57,569 En la última posición 610 00:24:57,569 --> 00:24:59,049 ¿Vale? 611 00:24:59,349 --> 00:25:05,150 Ponerlo así para que se vea mejor 612 00:25:05,150 --> 00:25:10,740 Vale 613 00:25:10,740 --> 00:25:14,339 Bueno, pues esto es para irle metiendo habitaciones al hotel 614 00:25:14,339 --> 00:25:16,579 Ya que luego serán reservadas o no 615 00:25:16,579 --> 00:25:19,359 Hacer una reserva 616 00:25:19,359 --> 00:25:22,079 Hacer una reserva 617 00:25:22,079 --> 00:25:23,920 Le pasas el objeto enterito 618 00:25:23,920 --> 00:25:25,579 ¿Vale? El objeto enterito 619 00:25:25,579 --> 00:25:27,259 Pues habrá que pedirle los datos al usuario 620 00:25:27,259 --> 00:25:28,940 que fecha, lo que sea 621 00:25:28,940 --> 00:25:30,920 pero ya se lo pasamos hecho 622 00:25:30,920 --> 00:25:32,180 y de nuevo hacemos lo mismo 623 00:25:32,180 --> 00:25:34,920 crear una reserva será 624 00:25:34,920 --> 00:25:36,000 meter esta reserva 625 00:25:36,000 --> 00:25:39,579 en su array 626 00:25:39,579 --> 00:25:40,819 de reservas 627 00:25:40,819 --> 00:25:42,839 este de aquí, en su array de reservas 628 00:25:42,839 --> 00:25:44,380 pues venga 629 00:25:44,380 --> 00:25:46,740 creamos una reserva haciendo lo mismo 630 00:25:46,740 --> 00:25:48,960 guardamos nuestro 631 00:25:48,960 --> 00:25:50,420 array de reservas viejo 632 00:25:50,420 --> 00:25:51,519 aquí 633 00:25:51,519 --> 00:25:54,819 nuestro array de reservas lo hacemos 634 00:25:54,819 --> 00:25:57,079 nuevo, limpio, con una posición más 635 00:25:57,079 --> 00:25:59,339 copiamos las antiguas 636 00:25:59,339 --> 00:26:01,119 y una vez que hemos copiado 637 00:26:01,119 --> 00:26:02,460 las antiguas, copiamos 638 00:26:02,460 --> 00:26:05,299 la que falta, en la última posición 639 00:26:05,299 --> 00:26:11,339 ala, en el hotel 640 00:26:11,339 --> 00:26:13,539 ya tenemos como meter habitaciones 641 00:26:13,539 --> 00:26:15,279 como construirlas ahí con los ladrillos 642 00:26:15,279 --> 00:26:16,200 para que tenga habitaciones 643 00:26:16,200 --> 00:26:18,440 y como incorporarle reservas 644 00:26:18,440 --> 00:26:21,220 reservas que se habrán hecho previamente 645 00:26:21,220 --> 00:26:23,500 claro, reservas que se habrán instanciado previamente 646 00:26:23,500 --> 00:26:25,119 venga, como crearle reservas 647 00:26:25,119 --> 00:26:26,720 vale 648 00:26:26,720 --> 00:26:28,460 y que más métodos tienes 649 00:26:28,460 --> 00:26:32,240 devolver una habitación 650 00:26:32,240 --> 00:26:33,519 dado su número. 651 00:26:35,460 --> 00:26:36,140 Bueno, pues 652 00:26:36,140 --> 00:26:38,400 dado su número, recorremos 653 00:26:38,400 --> 00:26:39,720 el array de habitaciones. 654 00:26:40,400 --> 00:26:42,119 En cuanto encontramos una habitación 655 00:26:42,119 --> 00:26:43,559 con ese número, 656 00:26:43,559 --> 00:26:45,359 lo marcamos 657 00:26:45,359 --> 00:26:46,660 para abandonar el for. 658 00:26:47,240 --> 00:26:48,740 Lo marcamos para abandonar el for. 659 00:26:49,319 --> 00:26:50,519 La guardamos aquí 660 00:26:50,519 --> 00:26:53,700 y cuando ya el for ha terminado, devolvemos 661 00:26:53,700 --> 00:26:54,279 R. 662 00:26:55,119 --> 00:26:57,220 Que podría ser nulo, ¿no? Depende. 663 00:26:57,220 --> 00:26:59,500 depende de si hemos salido del for 664 00:26:59,500 --> 00:27:02,119 a través del found 665 00:27:02,119 --> 00:27:03,920 o si hemos salido 666 00:27:03,920 --> 00:27:05,500 del for 667 00:27:05,500 --> 00:27:09,420 porque se ha acabado ya esto 668 00:27:09,420 --> 00:27:11,440 y no hemos encontrado 669 00:27:11,440 --> 00:27:13,819 bueno, pues este método 670 00:27:13,819 --> 00:27:15,839 de aquí, te devuelve 671 00:27:15,839 --> 00:27:17,740 el objeto enterito, habitación 672 00:27:17,740 --> 00:27:19,680 que se corresponde con un número 673 00:27:19,680 --> 00:27:21,500 en concreto, imagino que lo has hecho 674 00:27:21,500 --> 00:27:23,460 porque lo usarás en algún momento 675 00:27:23,460 --> 00:27:48,750 Pero no va a seguir buscando 676 00:27:48,750 --> 00:27:50,930 Las veces que se hace 677 00:27:50,930 --> 00:27:52,150 Las RAIs son las mismas 678 00:27:52,150 --> 00:27:54,730 Lo pongas así o no lo pongas así 679 00:27:54,730 --> 00:27:58,869 En todo caso 680 00:27:58,869 --> 00:28:00,849 Te refieres para que no pase 681 00:28:00,849 --> 00:28:01,930 A la segunda cláusula 682 00:28:01,930 --> 00:28:04,410 Eso sí, pero las iteraciones 683 00:28:04,410 --> 00:28:08,049 de la raíz van a ser iguales, pero puesto así 684 00:28:08,049 --> 00:28:12,009 cuando encuentres la habitación, esto va a ser true 685 00:28:12,009 --> 00:28:16,369 con lo cual la máquina virtual se ve obligada a entrar aquí, pero aquí ya 686 00:28:16,369 --> 00:28:20,230 será falso, si lo ponemos al revés, cuando encuentres 687 00:28:20,230 --> 00:28:24,029 la habitación, esto ya va a ser falso, con lo cual 688 00:28:24,029 --> 00:28:28,170 ni evalúa esta, entonces es verdad que te ahorras evaluar esto, pero ciclos del 689 00:28:28,170 --> 00:28:30,089 for se hacen los mismos 690 00:28:30,089 --> 00:28:35,369 Vale, pues ya está 691 00:28:35,369 --> 00:28:36,789 Ahora 692 00:28:36,789 --> 00:28:40,710 Esto es construir una reserva 693 00:28:40,710 --> 00:28:43,670 ¿Cómo que buscar? 694 00:28:43,849 --> 00:28:44,990 Así como se veía más real 695 00:28:44,990 --> 00:28:47,789 A buscarla dentro del array 696 00:28:47,789 --> 00:28:50,730 Vale, buscar una reserva 697 00:28:50,730 --> 00:28:52,869 Para esta fecha con esas habitaciones 698 00:28:52,869 --> 00:28:53,990 Claro 699 00:28:53,990 --> 00:28:56,369 Este es el lío de que 700 00:28:56,369 --> 00:28:57,670 Si buscamos por código 701 00:28:57,670 --> 00:28:59,529 Lógicamente es mucho más fácil 702 00:28:59,529 --> 00:29:02,190 Pero tú no tenías código 703 00:29:02,190 --> 00:29:03,329 cuando has hecho esta aplicación 704 00:29:03,329 --> 00:29:05,910 el código de reserva 705 00:29:05,910 --> 00:29:07,490 lo que hemos incorporado 706 00:29:07,490 --> 00:29:09,670 claro, hemos incorporado un código 707 00:29:09,670 --> 00:29:11,410 ¿vale? de reserva 708 00:29:11,410 --> 00:29:12,890 pero bueno, este método 709 00:29:12,890 --> 00:29:14,589 lo que te hace es 710 00:29:14,589 --> 00:29:15,950 te busca 711 00:29:15,950 --> 00:29:19,589 una reserva dentro del array de reservas 712 00:29:19,589 --> 00:29:21,269 que se corresponda con esta fecha 713 00:29:21,269 --> 00:29:23,690 y además se corresponda 714 00:29:23,690 --> 00:29:25,710 con estas habitaciones 715 00:29:25,710 --> 00:29:26,650 exactamente, ¿no? 716 00:29:27,289 --> 00:29:28,950 es lo que has hecho, entonces para eso 717 00:29:28,950 --> 00:29:31,910 has recorrido el array de reservas 718 00:29:31,910 --> 00:29:46,329 Si las habitaciones reservadas 719 00:29:46,329 --> 00:29:59,150 Lo que pasa es que has usado este método 720 00:29:59,150 --> 00:30:03,349 Que no hemos visto aquí 721 00:30:03,349 --> 00:30:06,230 Pero bueno 722 00:30:06,230 --> 00:30:11,630 Aquí el tema es que hay que ir reserva por reserva 723 00:30:11,630 --> 00:30:14,670 Cada reserva tiene todo un array entero. 724 00:30:15,369 --> 00:30:18,829 Entonces, para cada reserva hay que comparar la fecha, 725 00:30:18,930 --> 00:30:20,329 que eso es fácil, con el equals, 726 00:30:21,029 --> 00:30:24,250 y un array de reservas entero con otro array de reservas. 727 00:30:25,650 --> 00:30:28,390 Entonces, ahí uno en principio lo podría hacer 728 00:30:28,390 --> 00:30:33,869 con otro for anidado, que es me voy uno por uno 729 00:30:33,869 --> 00:30:36,009 a ver si son iguales, pero es un rollo. 730 00:30:36,190 --> 00:30:41,170 Entonces, este método equals de la clase arrays 731 00:30:41,170 --> 00:30:45,130 Ya te dice si este array 732 00:30:45,130 --> 00:30:48,230 Tiene exactamente 733 00:30:48,230 --> 00:30:49,829 Lo mismo que este otro 734 00:30:49,829 --> 00:30:52,250 No tenemos que ir nosotros comparando 735 00:30:52,250 --> 00:30:54,069 Habitación por habitación si una está en la otra 736 00:30:54,069 --> 00:30:55,710 Que es un lío 737 00:30:55,710 --> 00:30:59,509 Como cuál 738 00:30:59,509 --> 00:31:00,829 Que no, que es crear una 739 00:31:00,829 --> 00:31:02,369 Una nueva 740 00:31:02,369 --> 00:31:04,930 Un nuevo objeto de reserva 741 00:31:04,930 --> 00:31:06,950 Con los parámetros 742 00:31:06,950 --> 00:31:08,150 Y hacer un ícone 743 00:31:08,150 --> 00:31:11,049 Sí, pero como tienes 744 00:31:11,049 --> 00:31:12,289 un equals en reserva 745 00:31:12,289 --> 00:31:15,009 Claro, como tienes un equals 746 00:31:15,009 --> 00:31:16,849 en reserva, entonces 747 00:31:16,849 --> 00:31:18,970 vamos a hacerlo así porque es que 748 00:31:18,970 --> 00:31:21,009 esto se hace un poco lío 749 00:31:21,009 --> 00:31:22,890 y este a raíz de igual es mejor ahora mismo 750 00:31:22,890 --> 00:31:24,289 ahora mismo todavía no 751 00:31:24,289 --> 00:31:26,869 Vale, entonces 752 00:31:26,869 --> 00:31:35,470 Entonces 753 00:31:35,470 --> 00:31:39,269 Vale, pues entonces 754 00:31:39,269 --> 00:31:41,589 tenemos que ver 755 00:31:41,589 --> 00:31:44,029 si una reserva 756 00:31:44,029 --> 00:31:44,970 con estos datos 757 00:31:44,970 --> 00:31:46,789 es igual 758 00:31:46,789 --> 00:31:48,529 que 759 00:31:48,529 --> 00:31:52,130 a ver, ¿qué querías 760 00:31:52,130 --> 00:31:52,829 hacer con esto? 761 00:31:54,829 --> 00:31:56,170 Ah, vale, entonces 762 00:31:56,170 --> 00:31:59,690 pero 763 00:31:59,690 --> 00:32:01,849 no, no, no, ya, pero 764 00:32:01,849 --> 00:32:03,369 pero con datos 765 00:32:03,369 --> 00:32:11,730 a ver, pero esto es 766 00:32:11,730 --> 00:32:13,289 consultar 767 00:32:13,289 --> 00:32:15,869 una reserva dentro de tu array de reservas 768 00:32:15,869 --> 00:32:16,849 Sí, buscar una reserva 769 00:32:16,849 --> 00:32:18,990 Dentro del array estático de reservas 770 00:32:18,990 --> 00:32:22,509 ¿Cómo que del array estático? 771 00:32:25,349 --> 00:32:27,309 No, es que esto no tiene que ser estático 772 00:32:27,309 --> 00:32:27,650 ¿Por qué no? 773 00:32:28,190 --> 00:32:31,309 No, porque esto caracteriza de forma única el hotel 774 00:32:31,309 --> 00:32:33,250 Lo que tiene que ser estático 775 00:32:33,250 --> 00:32:34,329 ya es el objeto hotel 776 00:32:34,329 --> 00:32:37,589 Claro, es que estás confundiendo 777 00:32:37,589 --> 00:32:38,650 los datos de la aplicación 778 00:32:38,650 --> 00:32:40,329 Ahora mismo no hay datos 779 00:32:40,329 --> 00:32:42,730 Ahora mismo estamos en la descripción de los datos 780 00:32:42,730 --> 00:32:44,269 en la descripción 781 00:32:44,269 --> 00:32:46,210 un hotel tiene 782 00:32:46,210 --> 00:32:49,309 un conjunto de habitaciones y un conjunto de reservas 783 00:32:49,309 --> 00:32:51,089 pero imagínate que ahora queremos 784 00:32:51,089 --> 00:32:52,789 trabajar con cuatro hoteles distintos 785 00:32:52,789 --> 00:32:55,410 cada hotel tiene 786 00:32:55,410 --> 00:32:57,569 la raíz de habitaciones 787 00:32:57,569 --> 00:32:58,609 o la raíz de reservas 788 00:32:58,609 --> 00:33:01,089 entonces no tiene sentido que sea estático 789 00:33:01,089 --> 00:33:03,150 ahora ya sí que 790 00:33:03,150 --> 00:33:04,049 podríamos hacer, vale 791 00:33:04,049 --> 00:33:07,289 yo ahora tengo ya mi aplicación 792 00:33:07,289 --> 00:33:09,329 con mis datos, vamos a añadirle aquí 793 00:33:09,329 --> 00:33:12,170 por ejemplo 794 00:33:12,170 --> 00:33:14,970 un momentito, ahora paramos 795 00:33:14,970 --> 00:33:18,920 y ahora, aquí ya van a estar 796 00:33:18,920 --> 00:33:20,519 mis datos, entonces, mis datos 797 00:33:20,519 --> 00:33:25,059 ahora ya sí estoy hablando de datos 798 00:33:25,059 --> 00:33:27,160 ¿cuáles van a ser mis datos? pues mis datos es 799 00:33:27,160 --> 00:33:29,059 un hotel o 800 00:33:29,059 --> 00:33:30,799 muchos, no lo sé, un hotel o muchos 801 00:33:30,799 --> 00:33:37,410 voy a suponer que es solamente uno, vale 802 00:33:37,410 --> 00:33:39,309 aquí está mi dato 803 00:33:39,309 --> 00:33:46,930 este es mi dato, que podrían ser muchos 804 00:33:46,930 --> 00:33:48,809 si yo trabajara con muchos, pero bueno, en este 805 00:33:48,809 --> 00:33:50,769 caso trabajamos solo con un hotel, este 806 00:33:50,769 --> 00:33:52,730 es mi dato, y aquí es donde yo 807 00:33:52,730 --> 00:33:54,930 ahora podría empezar a plantearme los métodos 808 00:33:54,930 --> 00:33:55,190 de 809 00:33:55,190 --> 00:33:58,630 hacer cosas con este dato. 810 00:33:59,130 --> 00:34:00,670 Pero en este caso es que es un solo 811 00:34:00,670 --> 00:34:02,609 objeto. Entonces el CRUD pierde un poco 812 00:34:02,609 --> 00:34:03,069 el sentido. 813 00:34:05,589 --> 00:34:06,670 Entonces, ahora 814 00:34:06,670 --> 00:34:08,510 mismo no te líes mucho con el tema del CRUD. 815 00:34:08,650 --> 00:34:10,570 Piénsalo como métodos que 816 00:34:10,570 --> 00:34:12,530 hacen las funcionalidades de mi aplicación. 817 00:34:13,190 --> 00:34:14,630 Ya está. No te 818 00:34:14,630 --> 00:34:16,570 líes con el CRUD porque eso te puede llevar a 819 00:34:16,570 --> 00:34:18,489 pensar en nombres que igual no se adaptan bien 820 00:34:18,489 --> 00:34:20,630 o lo que sea. Pero bueno, vamos a parar 821 00:34:20,630 --> 00:34:22,170 unos...