1 00:00:02,930 --> 00:00:28,469 Vale, entonces ahí rápidamente diríamos, hombre, hay tres envíos, todos compartirán cosas. Como dirección, origen, dirección, destino, habrá cosas que tienen todas. Entonces, hay una herencia, tiene que haber sí o sí. No solo una implementación de interfaces, porque también comparten contenido. No solo comparten comportamientos, ser enviados, ser tirados a la basura, también comparten descripción. Entonces, una herencia tiene que haber. 2 00:00:28,469 --> 00:00:31,010 y de hecho, vale, nos dice 3 00:00:31,010 --> 00:00:33,049 todos son envío, muy bien 4 00:00:33,049 --> 00:00:35,070 vale, luego además 5 00:00:35,070 --> 00:00:36,710 habrá envíos 6 00:00:36,710 --> 00:00:38,829 con algunos envíos se tendrá que hacer algunas cosas 7 00:00:38,829 --> 00:00:41,109 y con otros no, por ejemplo 8 00:00:41,109 --> 00:00:42,770 hay envíos que se pueden 9 00:00:42,770 --> 00:00:43,829 asegurar 10 00:00:43,829 --> 00:00:46,710 envíos que se pueden 11 00:00:46,710 --> 00:00:48,630 rastrear y ya está 12 00:00:48,630 --> 00:00:50,990 entonces, no todos 13 00:00:50,990 --> 00:00:52,869 los envíos se tienen que asegurar 14 00:00:52,869 --> 00:00:55,049 solamente se 15 00:00:55,049 --> 00:00:57,289 aseguran los urgentes y los refrigerados 16 00:00:57,289 --> 00:00:59,869 con lo cual esto hay que sacarlo como una interfaz 17 00:00:59,869 --> 00:01:01,549 no podemos meter 18 00:01:01,549 --> 00:01:03,590 calcular coste seguro en la superclase 19 00:01:03,590 --> 00:01:06,189 y rastrear 20 00:01:06,189 --> 00:01:07,969 no todos los envíos 21 00:01:07,969 --> 00:01:10,390 se pueden rastrear, el refrigerado no se puede rastrear 22 00:01:10,390 --> 00:01:12,069 luego obtener estado 23 00:01:12,069 --> 00:01:13,769 y actualizar estado no lo puedo meter 24 00:01:13,769 --> 00:01:14,950 en la superclase envío 25 00:01:14,950 --> 00:01:17,489 porque el refrigerado no lo tiene 26 00:01:17,489 --> 00:01:19,209 entonces me tengo que hacer otra distinta 27 00:01:19,209 --> 00:01:21,090 entonces aquí tenemos 28 00:01:21,090 --> 00:01:23,810 superclase, tres subclases y dos interfaces 29 00:01:23,810 --> 00:01:25,989 y luego ya 30 00:01:25,989 --> 00:01:27,689 una main que lo gestiona 31 00:01:27,689 --> 00:01:29,950 donde ya podemos ver 32 00:01:29,950 --> 00:01:31,390 la flexibilidad 33 00:01:31,390 --> 00:01:33,709 de que haya esas diferentes 34 00:01:33,709 --> 00:01:36,010 jerarquías 35 00:01:36,010 --> 00:01:38,129 pues venga, primero uno haría 36 00:01:38,129 --> 00:01:39,609 la super clase, el envío 37 00:01:39,609 --> 00:01:44,959 una clase normal y corriente 38 00:01:44,959 --> 00:01:48,400 el envío que tiene 39 00:01:48,400 --> 00:01:49,760 el envío tiene 40 00:01:49,760 --> 00:01:53,849 todos los envíos, todos 41 00:01:53,849 --> 00:01:56,290 se caracterizan por 42 00:01:56,290 --> 00:01:57,930 código, peso 43 00:01:57,930 --> 00:01:59,769 origen y destino, todos 44 00:01:59,769 --> 00:02:00,450 tienen eso 45 00:02:00,450 --> 00:02:02,609 pues venga 46 00:02:02,609 --> 00:02:05,569 y luego además todos los envíos 47 00:02:05,569 --> 00:02:07,549 tienen que poder calcular 48 00:02:07,549 --> 00:02:08,270 un coste 49 00:02:08,270 --> 00:02:11,969 pues ahora vamos a hacer esto, con esas restricciones 50 00:02:11,969 --> 00:02:13,349 estas restricciones 51 00:02:13,349 --> 00:02:15,110 aquí nos las han dado escritas 52 00:02:15,110 --> 00:02:16,889 pero claro, estas 53 00:02:16,889 --> 00:02:19,289 vendrían en una situación normal 54 00:02:19,289 --> 00:02:21,090 de haber hecho un análisis previo 55 00:02:21,090 --> 00:02:22,509 con un tío que ha venido y me ha dicho 56 00:02:22,509 --> 00:02:24,729 quiero una aplicación para gestionar los envíos de mi empresa 57 00:02:24,729 --> 00:02:26,050 y así se ha quedado 58 00:02:26,050 --> 00:02:27,909 entonces tienes que empezar, vale 59 00:02:27,909 --> 00:02:30,349 pero, ¿qué envíos tiene? 60 00:02:30,449 --> 00:02:32,969 de qué tipo, qué necesitas saber 61 00:02:32,969 --> 00:02:34,210 de ellos, qué no sé qué 62 00:02:34,210 --> 00:02:36,969 y tú ahí tomando notas, qué no sé cuántos 63 00:02:36,969 --> 00:02:38,590 y después de todo eso 64 00:02:38,590 --> 00:02:40,349 de haber entendido bien lo que necesita 65 00:02:40,349 --> 00:02:42,009 de haberle hecho preguntas 66 00:02:42,009 --> 00:02:44,530 de haberle hecho algún prototipo de aplicación 67 00:02:44,530 --> 00:02:46,409 que todavía no hace nada pero le 68 00:02:46,409 --> 00:02:48,289 muestra las posibilidades 69 00:02:48,289 --> 00:02:49,870 pues después de todo eso 70 00:02:49,870 --> 00:02:51,250 ya uno 71 00:02:51,250 --> 00:02:54,629 deduce que es esto lo que necesita 72 00:02:54,629 --> 00:02:56,389 ahora ahí viene la parte fácil 73 00:02:56,389 --> 00:02:58,289 que es la nuestra, este curso 74 00:02:58,289 --> 00:03:00,210 ahora ya lo escribo 75 00:03:00,210 --> 00:03:11,789 Pero después de haber hecho todo ese proceso anterior, en el cual, en entornos de desarrollo, ¿habéis visto UML y cositas de esas ya? 76 00:03:12,969 --> 00:03:17,449 Vale, pues están relacionadas con eso. 77 00:03:19,819 --> 00:03:26,500 Vale, pues entonces estábamos con que el envío era código, peso, origen y destino. 78 00:03:26,500 --> 00:03:29,280 Pues el envío es 79 00:03:29,280 --> 00:03:34,180 Código 80 00:03:34,180 --> 00:03:40,240 El peso lo voy a poner en entero 81 00:03:40,240 --> 00:03:41,439 Para ahorrarme líneas 82 00:03:41,439 --> 00:03:43,439 Para ahorrarme tiempo de escritura 83 00:03:43,439 --> 00:03:45,560 Y origen y destino 84 00:03:45,560 --> 00:03:56,219 Ahora, normalmente siempre 85 00:03:56,219 --> 00:03:57,879 Hacemos constructor 86 00:03:57,879 --> 00:03:59,159 Con sin parámetros 87 00:03:59,159 --> 00:04:01,939 Porque nos va a facilitar mucho la vida en la aplicación principal 88 00:04:01,939 --> 00:04:03,039 Tener las dos opciones 89 00:04:03,039 --> 00:04:05,520 Y para las subclases también 90 00:04:05,520 --> 00:04:07,800 Generar constructor 91 00:04:07,800 --> 00:04:09,560 Con parámetros 92 00:04:09,560 --> 00:04:13,000 Generar constructor sin parámetros 93 00:04:13,000 --> 00:04:14,900 Total, como no tenemos que hacer nada 94 00:04:14,900 --> 00:04:15,800 Lo hace el todo 95 00:04:15,800 --> 00:04:19,139 Generar getter y setter 96 00:04:19,139 --> 00:04:25,000 ¿Eh? 97 00:04:26,800 --> 00:04:27,639 One moment 98 00:04:27,639 --> 00:04:29,420 Pero si hay botón derecho pa pa pa 99 00:04:29,420 --> 00:04:34,250 Pues ¿qué estabas haciendo? 100 00:04:34,370 --> 00:04:35,810 Porque te he oído hablar con un compañero 101 00:04:35,810 --> 00:04:36,490 Sobre GitHub 102 00:04:36,490 --> 00:04:39,209 Con lo cual estabas hablando de otras cosas 103 00:04:39,209 --> 00:04:45,529 Sí, porque cuando te falla 104 00:04:45,529 --> 00:04:47,069 un sentido, acentúas el otro 105 00:04:47,069 --> 00:04:49,810 entonces si no ves, pues desarrollas el oído 106 00:04:49,810 --> 00:04:53,490 ya está, ya puedo seguir 107 00:04:53,490 --> 00:04:54,350 tengo tu permiso 108 00:04:54,350 --> 00:04:57,449 vale, entonces este decía 109 00:04:57,449 --> 00:04:57,930 el 110 00:04:57,930 --> 00:05:00,250 el toString 111 00:05:00,250 --> 00:05:04,519 venga, vamos a hacer un toString 112 00:05:04,519 --> 00:05:08,139 con todas las propiedades 113 00:05:08,139 --> 00:05:09,040 toString 114 00:05:09,040 --> 00:05:13,860 vale 115 00:05:13,860 --> 00:05:15,980 bueno, por ahora la dejamos así 116 00:05:15,980 --> 00:05:18,459 luego la aplicación principal la voy a 117 00:05:18,459 --> 00:05:20,319 tunear, hoy no nos va a dar tiempo, no 118 00:05:20,319 --> 00:05:22,360 sufráis, la voy a tunear 119 00:05:22,360 --> 00:05:24,519 para que nos pida 120 00:05:24,519 --> 00:05:26,399 meter aquí un equals, que eso del equals 121 00:05:26,399 --> 00:05:28,560 os suena, ya lo hemos mencionado, pero ahora mismo 122 00:05:28,560 --> 00:05:30,439 como yo no he hecho la aplicación principal, todavía no 123 00:05:30,439 --> 00:05:32,300 soy consciente de que tenga necesidad de hacer 124 00:05:32,300 --> 00:05:34,459 aquí un equals, hago lo estándar 125 00:05:34,459 --> 00:05:36,139 getSetToString 126 00:05:36,139 --> 00:05:38,579 y constructores 127 00:05:38,579 --> 00:05:39,759 y ya está, bueno 128 00:05:39,759 --> 00:05:42,259 pues entonces, además aquí 129 00:05:42,259 --> 00:05:44,360 tengo un método que es 130 00:05:44,360 --> 00:05:45,980 calcular coste del envío 131 00:05:45,980 --> 00:05:48,319 y calcular coste 132 00:05:48,319 --> 00:05:50,420 del envío, que eso lo pueden hacer 133 00:05:50,420 --> 00:05:52,399 todos, pues yo me hago 134 00:05:52,399 --> 00:05:54,259 aquí un calcular coste 135 00:05:54,259 --> 00:05:58,060 el 136 00:05:58,060 --> 00:06:00,279 coste del envío, yo que sé 137 00:06:00,279 --> 00:06:02,220 dependerá, el envío refrigerado 138 00:06:02,220 --> 00:06:04,139 tendrá un coste, es que de hecho 139 00:06:04,139 --> 00:06:05,300 no tengo ni la información 140 00:06:05,300 --> 00:06:08,160 yo que sé como se calcula el coste 141 00:06:08,160 --> 00:06:10,220 del envío, no sé que me ha hecho este 142 00:06:10,220 --> 00:06:12,100 si era void o que me ha pedido 143 00:06:12,100 --> 00:06:13,879 que fuera, método abstracto calcular coste 144 00:06:13,879 --> 00:06:15,860 vamos a ponerlo que devuelva el coste 145 00:06:15,860 --> 00:06:17,439 en lugar de mostrarlo con el system out 146 00:06:17,439 --> 00:06:20,759 calcular coste 147 00:06:20,759 --> 00:06:23,430 pues yo que sé 148 00:06:23,430 --> 00:06:26,069 ni idea de cómo calcularlo 149 00:06:26,069 --> 00:06:26,949 pues ahí se queda 150 00:06:26,949 --> 00:06:29,850 ahí se queda vacío 151 00:06:29,850 --> 00:06:32,430 como un método abstracto 152 00:06:32,430 --> 00:06:34,230 porque no tengo ni idea de cómo se calcula 153 00:06:34,230 --> 00:06:36,110 el coste, con lo cual 154 00:06:36,110 --> 00:06:38,170 si no tengo ni idea de cómo se calcula el coste 155 00:06:38,170 --> 00:06:39,189 y lo dejo vacío 156 00:06:39,189 --> 00:06:42,149 automáticamente la clase ya 157 00:06:42,149 --> 00:06:45,649 se convirtió en abstracta 158 00:06:45,649 --> 00:06:48,170 no le queda más remedio 159 00:06:48,170 --> 00:06:52,550 ¿Pasa algo por haberla convertido en abstracta? 160 00:06:52,870 --> 00:06:53,589 No pasa nada 161 00:06:53,589 --> 00:06:56,670 Salvo que mi aplicación no puede tener 162 00:06:56,670 --> 00:06:59,110 No puede trabajar con envíos genéricos 163 00:06:59,110 --> 00:07:00,670 ¿Pasa algo? 164 00:07:00,829 --> 00:07:01,769 Me dice el cliente 165 00:07:01,769 --> 00:07:04,110 No, si yo solamente tengo refrigerados o estándar 166 00:07:04,110 --> 00:07:04,910 O urgentes 167 00:07:04,910 --> 00:07:08,740 Pues entonces, fenomenal 168 00:07:08,740 --> 00:07:10,160 Ala, los otros 169 00:07:10,160 --> 00:07:12,920 Envío urgente 170 00:07:12,920 --> 00:07:24,750 El envío urgente es un envío 171 00:07:24,750 --> 00:07:26,009 Normal y corriente 172 00:07:26,009 --> 00:07:28,170 Entre otras cosas es un envío 173 00:07:28,170 --> 00:07:30,629 Pues ala, envío urgente 174 00:07:30,629 --> 00:07:32,709 hereda de envío, entonces tiene todo lo que 175 00:07:32,709 --> 00:07:33,529 tiene urgente 176 00:07:33,529 --> 00:07:36,769 menos los constructores porque no los 177 00:07:36,769 --> 00:07:38,529 hereda y añade 178 00:07:38,529 --> 00:07:40,389 alguna otra cosa nueva, pues sí 179 00:07:40,389 --> 00:07:41,670 el envío urgente 180 00:07:41,670 --> 00:07:46,689 los constructores no se heredan 181 00:07:46,689 --> 00:07:48,730 el envío 182 00:07:48,730 --> 00:07:50,649 urgente tiene un recargo 183 00:07:50,649 --> 00:07:52,189 vale 184 00:07:52,189 --> 00:07:54,689 pues el envío urgente tiene un recargo 185 00:07:54,689 --> 00:07:56,529 por urgencia 186 00:07:56,529 --> 00:07:58,509 pues habrá que poner el recargo 187 00:07:58,509 --> 00:08:00,910 Que es lo que le caracteriza a él 188 00:08:00,910 --> 00:08:03,149 Recargo 189 00:08:03,149 --> 00:08:05,470 Entonces al añadir una propiedad 190 00:08:05,470 --> 00:08:07,930 Tengo que añadir el get y el set de esa propiedad 191 00:08:07,930 --> 00:08:21,860 Sí, sería recomendable 192 00:08:21,860 --> 00:08:22,980 Porque si no lo cambiamos 193 00:08:22,980 --> 00:08:26,399 Desde aquí solamente podemos hacer las propiedades de arriba 194 00:08:26,399 --> 00:08:27,579 Con el get y el set 195 00:08:27,579 --> 00:08:28,779 Y es incómodo 196 00:08:28,779 --> 00:08:31,000 Entonces como es incómodo 197 00:08:31,000 --> 00:08:32,519 Vale, muy bien visto. 198 00:08:38,190 --> 00:08:39,490 Para ser viernes está bien. 199 00:08:42,669 --> 00:08:47,049 Vale, entonces, envíe urgente, añade un recargo. 200 00:08:47,549 --> 00:08:50,669 Si yo no le pongo constructores, tiene uno sin parámetros. 201 00:08:51,669 --> 00:08:54,990 Uno sin parámetros que internamente llama al super 202 00:08:54,990 --> 00:08:57,789 y el super no pasa nada porque no hace nada tampoco. 203 00:08:58,889 --> 00:09:02,549 Entonces, además quiero uno con parámetros, hombre, pues sí, 204 00:09:02,690 --> 00:09:04,070 vamos a ponerle uno con parámetros. 205 00:09:04,070 --> 00:09:07,629 Entonces source, generate constructor 206 00:09:07,629 --> 00:09:11,830 Quiero los de envío que me aparecen aquí arriba 207 00:09:11,830 --> 00:09:13,730 Y también quiero el nuevo 208 00:09:13,730 --> 00:09:16,269 Ala, chulísimo, ya está 209 00:09:16,269 --> 00:09:18,970 Y ahora voy a hacer unos sin parámetros 210 00:09:18,970 --> 00:09:20,309 Que siempre viene bien 211 00:09:20,309 --> 00:09:26,659 Lo desmarco todo 212 00:09:26,659 --> 00:09:29,399 Y ala, ya tengo uno sin parámetros 213 00:09:29,399 --> 00:09:31,870 Ala, muy bien 214 00:09:31,870 --> 00:09:34,730 ¿Y he terminado? No, porque al heredar de envío 215 00:09:34,730 --> 00:09:38,070 Tiene que implementar el método abstracto 216 00:09:38,070 --> 00:09:40,909 Tiene que implementar envío urgente 217 00:09:40,909 --> 00:09:43,610 Pues venga 218 00:09:43,610 --> 00:09:47,379 Y ahora 219 00:09:47,379 --> 00:09:48,879 ¿Cómo implementa envío urgente? 220 00:09:49,000 --> 00:09:50,179 Pues no sé, como me digan 221 00:09:50,179 --> 00:09:52,179 El tío me dice 222 00:09:52,179 --> 00:09:54,500 El envío urgente su coste es 223 00:09:54,500 --> 00:09:57,240 5 por el doble del peso 224 00:09:57,240 --> 00:09:58,460 Más el recargo 225 00:09:58,460 --> 00:10:00,919 Ese es el coste del envío urgente 226 00:10:00,919 --> 00:10:03,639 Pues entonces 227 00:10:03,639 --> 00:10:06,659 Retún 228 00:10:06,659 --> 00:10:07,500 5 229 00:10:07,500 --> 00:10:09,700 Más 230 00:10:09,700 --> 00:10:12,580 Dos por el peso 231 00:10:12,580 --> 00:10:15,080 Aquí es donde sin el protected 232 00:10:15,080 --> 00:10:16,840 Habríamos tenido que llamar a getPeso 233 00:10:16,840 --> 00:10:17,759 Y habría sido un rollo 234 00:10:17,759 --> 00:10:18,799 Mejor peso 235 00:10:18,799 --> 00:10:21,379 Más el recargo 236 00:10:21,379 --> 00:10:31,649 Bueno, pues envío urgente ya está 237 00:10:31,649 --> 00:10:35,190 Pues venga, envío refrigerado 238 00:10:35,190 --> 00:10:36,029 Rápidamente 239 00:10:36,029 --> 00:10:48,700 Refrigerado o el otro, el que quieras 240 00:10:48,700 --> 00:10:50,980 Que se ha prescrito 241 00:10:50,980 --> 00:10:54,340 El envío fresco 242 00:10:54,340 --> 00:10:56,159 Como vosotros 243 00:10:56,159 --> 00:10:58,840 Stents 244 00:10:58,840 --> 00:11:00,720 Envío 245 00:11:00,720 --> 00:11:07,820 Está en el código Word 246 00:11:07,820 --> 00:11:12,970 Se supone que lo estáis haciendo 247 00:11:12,970 --> 00:11:14,049 Un poco en paralelo conmigo 248 00:11:14,049 --> 00:11:15,389 Que tampoco estáis 249 00:11:15,389 --> 00:11:18,899 ¿En serio? 250 00:11:25,299 --> 00:11:26,600 ¿Dónde os habéis perdido? 251 00:11:28,799 --> 00:11:30,059 ¿Cómo no vas a saberlo? 252 00:11:31,480 --> 00:11:34,000 no, envío urgente, en envío urgente 253 00:11:34,000 --> 00:11:36,080 que es lo único que he hecho, poner el 254 00:11:36,080 --> 00:11:37,919 adicional, recargo 255 00:11:37,919 --> 00:11:39,740 con lo cual los get y los set 256 00:11:39,740 --> 00:11:41,659 porque si hay uno ahora los get y set 257 00:11:41,659 --> 00:11:44,360 y luego le he puesto los dos constructores 258 00:11:44,360 --> 00:11:47,059 con parámetros y sin parámetros 259 00:11:47,059 --> 00:11:49,860 ¿cómo se hace esto a lo rápido? a las balas 260 00:11:49,860 --> 00:11:51,919 ¿cómo dices tú? o lo escribes 261 00:11:51,919 --> 00:11:53,120 a mano que es un rollo 262 00:11:53,120 --> 00:11:55,340 o botón derecho 263 00:11:55,340 --> 00:11:56,480 source 264 00:11:56,480 --> 00:12:00,870 botón derecho, source 265 00:12:00,870 --> 00:12:03,970 generar constructor usando campos 266 00:12:03,970 --> 00:12:05,970 y ahora aquí arriba 267 00:12:05,970 --> 00:12:10,610 pones de los constructores de la superclase 268 00:12:10,610 --> 00:12:12,690 en cuál te quieres apoyar 269 00:12:12,690 --> 00:12:15,649 y qué parámetros vas a incorporar 270 00:12:15,649 --> 00:12:18,129 marcas esto y ya está, ya te lo hace 271 00:12:18,129 --> 00:12:22,549 y con este me echo el de con parámetros 272 00:12:22,549 --> 00:12:31,639 que ahora quiero el sin parámetros 273 00:12:31,639 --> 00:12:33,340 lo mismo pero lo desmarco todo 274 00:12:33,340 --> 00:12:35,919 el sin parámetros 275 00:12:35,919 --> 00:12:37,639 escribirlo a mano es casi más rápido 276 00:12:37,639 --> 00:12:39,360 que hacer el botón derecho 277 00:12:39,360 --> 00:12:41,580 es casi más rápido 278 00:12:41,580 --> 00:12:43,720 ¿vale? y luego que he hecho 279 00:12:43,720 --> 00:12:44,559 en envío urgente 280 00:12:44,559 --> 00:12:47,860 el método que no me quedaba más remedio que sobreescribir 281 00:12:47,860 --> 00:12:49,379 al heredar de envío 282 00:12:49,379 --> 00:12:56,559 bueno, refrigerado que metía 283 00:12:56,559 --> 00:12:59,059 la temperatura 284 00:12:59,059 --> 00:13:02,039 6 más el peso por 2,5 285 00:13:02,039 --> 00:13:06,220 y si la temperatura es menor de 0 286 00:13:06,220 --> 00:13:07,159 recargo de 4 287 00:13:07,159 --> 00:13:11,639 Bueno, pues entonces refrigerado 288 00:13:11,639 --> 00:13:14,460 Una temperatura 289 00:13:14,460 --> 00:13:22,279 La temperatura 290 00:13:22,279 --> 00:13:24,460 A la que tiene que estar refrigerado 291 00:13:24,460 --> 00:13:26,179 Temperatura 292 00:13:26,179 --> 00:13:29,840 El get y el set del nuevo 293 00:13:29,840 --> 00:13:40,330 A ver 294 00:13:40,330 --> 00:13:41,789 En este en particular 295 00:13:41,789 --> 00:13:44,309 Pero lo normal es que sí 296 00:13:44,309 --> 00:13:47,210 porque estén asociadas a un patrón de diseño 297 00:13:47,210 --> 00:13:49,250 en las cuales las interfaces 298 00:13:49,250 --> 00:13:51,210 o bien se ocupen de la parte de acceso 299 00:13:51,210 --> 00:13:53,289 a datos o bien de la parte de interfaz gráfica 300 00:13:53,289 --> 00:13:54,289 entonces eso 301 00:13:54,289 --> 00:13:57,210 se pone en paquetes aparte para que sea más 302 00:13:57,210 --> 00:13:58,929 claro, aquí vamos a poner 303 00:13:58,929 --> 00:14:01,049 en paquete aparte, pero sí, lo normal es que vayan 304 00:14:01,049 --> 00:14:03,250 en un paquete aparte porque sean como cosas 305 00:14:03,250 --> 00:14:05,129 al margen de tu 306 00:14:05,129 --> 00:14:07,110 modelo, que es los roles que hay 307 00:14:07,110 --> 00:14:09,230 roles a los que se puede escribir 308 00:14:09,230 --> 00:14:10,490 este modelo o este otro 309 00:14:10,490 --> 00:14:11,970 vale 310 00:14:11,970 --> 00:14:15,029 vale, temperatura 311 00:14:15,029 --> 00:14:16,370 que le he puesto el get y el set 312 00:14:16,370 --> 00:14:18,850 le voy a poner el constructor con la trampa 313 00:14:18,850 --> 00:14:25,419 y le voy a poner el sin parámetros 314 00:14:25,419 --> 00:14:33,940 y ahora 315 00:14:33,940 --> 00:14:35,940 el envío 316 00:14:35,940 --> 00:14:38,220 refrigerado, tengo que sobre escribir el método 317 00:14:38,220 --> 00:14:40,639 vale 318 00:14:40,639 --> 00:14:43,539 entonces, ya le he puesto 319 00:14:43,539 --> 00:14:44,860 el, aquí 320 00:14:44,860 --> 00:14:47,740 esto 321 00:14:47,740 --> 00:14:49,659 yo es que estas cosas, prefiero que por lo menos 322 00:14:49,659 --> 00:14:51,539 ahora las escribáis a mano, pero que sois 323 00:14:51,539 --> 00:14:53,580 lo más vago del universo, que ya lo haréis 324 00:14:53,580 --> 00:14:54,120 imagino 325 00:14:54,120 --> 00:14:57,480 que ya lo hacéis así, porque otra cosa 326 00:14:57,480 --> 00:14:59,620 no sé, pero encontrar atajos 327 00:14:59,620 --> 00:15:00,940 del teclado 328 00:15:00,940 --> 00:15:02,940 y cosas en eso 329 00:15:02,940 --> 00:15:05,200 vamos, me dais 330 00:15:05,200 --> 00:15:06,759 dos mil millones de vueltas 331 00:15:06,759 --> 00:15:09,460 todo lo que implique 332 00:15:09,460 --> 00:15:11,559 cosas que te hagan los demás las cosas 333 00:15:11,559 --> 00:15:15,320 bueno, pues aquí, para que nos hagan los demás 334 00:15:15,320 --> 00:15:17,460 las cosas, seguramente 335 00:15:17,460 --> 00:15:18,480 ya lo usáis, pero bueno 336 00:15:18,480 --> 00:15:21,580 envío refrigerado al heredar de envío 337 00:15:21,580 --> 00:15:23,399 está obligada a implementar 338 00:15:23,399 --> 00:15:24,860 el método, me lo dice el compilador 339 00:15:24,860 --> 00:15:26,259 me lo está diciendo aquí, me dice 340 00:15:26,259 --> 00:15:31,240 me está diciendo, me dice 341 00:15:31,240 --> 00:15:32,799 cuidado que tienes que 342 00:15:32,799 --> 00:15:35,899 que tienes que implementar 343 00:15:35,899 --> 00:15:37,759 el método heredado abstracto 344 00:15:37,759 --> 00:15:38,980 y el 345 00:15:38,980 --> 00:15:42,120 el entorno de desarrollo 346 00:15:42,120 --> 00:15:43,519 Eclipse y el Intel IE 347 00:15:43,519 --> 00:15:45,240 y todos te ofrece soluciones 348 00:15:45,240 --> 00:15:47,799 te ofrece una lista larga 349 00:15:47,799 --> 00:15:49,820 normalmente, en muchos 350 00:15:49,820 --> 00:15:51,740 casos, ninguna de ellas 351 00:15:51,740 --> 00:15:52,879 es correcta. 352 00:15:53,820 --> 00:15:55,620 Pero nosotros debemos 353 00:15:55,620 --> 00:15:57,580 tener el criterio para saber cuándo 354 00:15:57,580 --> 00:15:58,899 alguna de ellas es correcta. 355 00:15:59,419 --> 00:16:01,759 En este caso, la de añade el método 356 00:16:01,759 --> 00:16:03,720 que estás a implementar. Pues esto es 357 00:16:03,720 --> 00:16:05,740 lo que quiero. Pues le hacéis el 358 00:16:05,740 --> 00:16:07,019 doble clic, pipí, 359 00:16:07,019 --> 00:16:09,620 y ya está. Y ya os lo añade. 360 00:16:15,159 --> 00:16:16,740 Es otra más que no he hecho todavía. 361 00:16:17,000 --> 00:16:18,340 Es que he empezado por abajo, no sé por qué. 362 00:16:18,340 --> 00:16:19,860 vale 363 00:16:19,860 --> 00:16:23,000 entonces, me lo ha añadido así 364 00:16:23,000 --> 00:16:24,980 me lo ha añadido sin código, claro, el código 365 00:16:24,980 --> 00:16:26,419 lo tengo que hacer yo, lógicamente 366 00:16:26,419 --> 00:16:29,220 entonces, calcular coste 367 00:16:29,220 --> 00:16:30,559 para el envío refrigerado 368 00:16:30,559 --> 00:16:32,620 ¿qué dice el enunciado? 369 00:16:34,779 --> 00:16:35,259 sumarle 370 00:16:35,259 --> 00:16:37,299 4 o no a 6 371 00:16:37,299 --> 00:16:39,179 más el peso por 2,5 372 00:16:39,179 --> 00:16:41,120 dependiendo si objetivo es menor que 0 373 00:16:41,120 --> 00:16:43,279 o vamos a hacerlo así a lo bestia 374 00:16:43,279 --> 00:16:45,080 retun 375 00:16:45,080 --> 00:16:52,100 ¿Temperatura menor que cero? 376 00:16:53,279 --> 00:16:54,820 Sí, es menor que cero 377 00:16:54,820 --> 00:16:58,419 Pues entonces, como la temperatura es menor que cero 378 00:16:58,419 --> 00:17:00,940 El coste del envío refrigerado es 379 00:17:00,940 --> 00:17:03,679 6 más 2,5 por el peso 380 00:17:03,679 --> 00:17:08,019 Más el recargo 381 00:17:08,019 --> 00:17:13,660 Más el recargo de 4 382 00:17:13,660 --> 00:17:15,880 vale, más 4 383 00:17:15,880 --> 00:17:16,740 más 1 más 4 384 00:17:16,740 --> 00:17:19,819 si, pero te lo dice que 4 385 00:17:19,819 --> 00:17:21,819 o sea, más un recargo de 4 386 00:17:21,819 --> 00:17:23,500 vale, entonces será 387 00:17:23,500 --> 00:17:25,859 temperatura será 6 388 00:17:25,859 --> 00:17:27,920 más 2,5 389 00:17:27,920 --> 00:17:29,779 por el peso 390 00:17:29,779 --> 00:17:31,660 era, ¿no? por el peso 391 00:17:31,660 --> 00:17:33,559 más el 4 392 00:17:33,559 --> 00:17:34,660 yo he puesto aquí una coma 393 00:17:34,660 --> 00:17:37,579 esto en el caso de que 394 00:17:37,579 --> 00:17:39,640 la temperatura objetivo sea menor que 0 395 00:17:39,640 --> 00:17:42,200 si no, es 6 más 2,5 396 00:17:42,200 --> 00:17:42,839 por el peso 397 00:17:42,839 --> 00:17:46,269 Ya está 398 00:17:46,269 --> 00:17:50,109 ¡Hala! Ya está sobrescrito el método 399 00:17:50,109 --> 00:17:52,509 Calcular coste para el refrigerado 400 00:17:52,509 --> 00:18:00,960 Vale 401 00:18:00,960 --> 00:18:02,099 Y ahora 402 00:18:02,099 --> 00:18:04,519 Venga, vamos a hacer envío estándar 403 00:18:04,519 --> 00:18:05,420 Las interfaces 404 00:18:05,420 --> 00:18:10,740 Envío estándar 405 00:18:10,740 --> 00:18:22,750 El envío estándar que añade 406 00:18:22,750 --> 00:18:26,299 Añade días 407 00:18:26,299 --> 00:18:31,150 Añade días estimados 408 00:18:31,150 --> 00:18:35,339 Que es un entero 409 00:18:35,339 --> 00:18:44,940 Y todo el rollo de siempre 410 00:18:44,940 --> 00:18:46,519 Get, set, constructores 411 00:18:46,519 --> 00:18:47,779 Y el método que falta 412 00:18:47,779 --> 00:18:59,849 Vale, el constructo 413 00:18:59,849 --> 00:19:01,190 Ah, que no he puesto el stents 414 00:19:01,190 --> 00:19:03,390 No he puesto el stents 415 00:19:03,390 --> 00:19:07,579 Stents envío 416 00:19:07,579 --> 00:19:11,079 Ahora ya hago el constructor 417 00:19:11,079 --> 00:19:24,890 Constructor getSet 418 00:19:24,890 --> 00:19:26,269 Y el método que me falta 419 00:19:26,269 --> 00:19:31,680 Que el método es parecido al otro 420 00:19:31,680 --> 00:19:33,859 Si los días estimados 421 00:19:33,859 --> 00:19:35,579 Son menores o iguales que 2 422 00:19:35,579 --> 00:19:42,839 Menor o igual que 2 423 00:19:42,839 --> 00:19:44,319 Entonces 424 00:19:44,319 --> 00:19:46,859 El coste que hay que devolver 425 00:19:46,859 --> 00:19:47,619 Es 426 00:19:47,619 --> 00:19:51,839 3 más 1 con 2 427 00:19:51,839 --> 00:19:54,079 por el peso, más 2,5 428 00:19:54,079 --> 00:20:00,539 3 más 429 00:20:00,539 --> 00:20:02,660 1,2 por el 430 00:20:02,660 --> 00:20:04,480 peso, más 431 00:20:04,480 --> 00:20:06,599 2,5 432 00:20:06,599 --> 00:20:09,000 que es el recargo por ir rápido 433 00:20:09,000 --> 00:20:10,819 y si no, pues 434 00:20:10,819 --> 00:20:12,579 3 más 435 00:20:12,579 --> 00:20:14,799 1,2 436 00:20:15,579 --> 00:20:16,859 por el 437 00:20:16,859 --> 00:20:20,970 peso, y me falta 438 00:20:20,970 --> 00:20:22,170 la interrogación 439 00:20:22,170 --> 00:20:27,009 y los dos 440 00:20:27,009 --> 00:20:29,950 y me sobran los dos puntos 441 00:20:29,950 --> 00:20:34,759 ¡Hala! Pues las clases están todas 442 00:20:34,759 --> 00:20:37,359 ahora, los envíos ya está, uno podría 443 00:20:37,359 --> 00:20:39,480 hacer envíos, mostrar propiedades 444 00:20:39,480 --> 00:20:41,559 de envíos, mostrar el coste de los envíos 445 00:20:41,559 --> 00:20:43,640 ya con polimorfismo, cada uno calcula 446 00:20:43,640 --> 00:20:44,579 su coste propio 447 00:20:44,579 --> 00:20:47,480 pero además la 448 00:20:47,480 --> 00:20:49,579 aplicación esta tiene que 449 00:20:49,579 --> 00:20:51,519 poder hacer cosas 450 00:20:51,519 --> 00:20:52,720 asegurar 451 00:20:52,720 --> 00:20:55,019 y no sé qué otra cosa 452 00:20:55,019 --> 00:20:57,640 asegurar y 453 00:20:57,640 --> 00:21:00,200 y rastrear 454 00:21:00,200 --> 00:21:03,740 entonces asegurar y rastrear 455 00:21:03,740 --> 00:21:05,779 implica métodos relacionados 456 00:21:05,779 --> 00:21:07,640 con asegurar y rastrear, implica métodos 457 00:21:07,640 --> 00:21:09,640 que no tiene sentido que meta aquí 458 00:21:09,640 --> 00:21:11,759 porque no todo es asegurable 459 00:21:11,759 --> 00:21:14,000 y no todo es rastreable, entonces podría ir uno por uno 460 00:21:14,000 --> 00:21:15,299 metiéndole a cada uno lo suyo 461 00:21:15,299 --> 00:21:17,839 pero sería muy feo, entonces vamos 462 00:21:17,839 --> 00:21:18,839 a hacer una interfaz 463 00:21:18,839 --> 00:21:21,640 de todo lo relacionado con asegurar 464 00:21:21,640 --> 00:21:23,740 pues nada, nos hacemos 465 00:21:23,740 --> 00:21:24,200 new 466 00:21:24,200 --> 00:21:26,240 interfaz 467 00:21:26,240 --> 00:21:29,920 a ver 468 00:21:29,920 --> 00:21:31,960 ahora sí porque como es como un ejemplo 469 00:21:31,960 --> 00:21:34,579 en una aplicación grande, como un diseño ya grande 470 00:21:34,579 --> 00:21:36,359 lo normal es que las interfaces 471 00:21:36,359 --> 00:21:38,279 tengan su propio paquete, es lo que le decía 472 00:21:38,279 --> 00:21:39,660 ella, porque desempeñen 473 00:21:39,660 --> 00:21:42,480 sus roles, independiente del modelo 474 00:21:42,480 --> 00:21:43,940 luego ya cada uno 475 00:21:43,940 --> 00:21:45,160 pero bueno 476 00:21:45,160 --> 00:21:49,099 sabe mucho, sí 477 00:21:49,099 --> 00:21:51,559 asegurable 478 00:21:51,559 --> 00:21:54,039 vale, pues ya está 479 00:21:54,039 --> 00:21:56,460 ¿qué métodos tienen que implementar 480 00:21:56,460 --> 00:21:57,779 los envíos asegurables? 481 00:21:58,839 --> 00:22:00,180 pues me dicen aquí que 482 00:22:00,180 --> 00:22:02,500 los envíos asegurables tienen que poder implementar 483 00:22:02,500 --> 00:22:04,779 calcular coste seguro 484 00:22:04,779 --> 00:22:06,339 y ya está 485 00:22:06,339 --> 00:22:07,880 calcular coste del seguro 486 00:22:07,880 --> 00:22:09,700 pues entonces la interfaz asegurable 487 00:22:09,700 --> 00:22:11,740 solamente tiene 488 00:22:11,740 --> 00:22:14,420 un calcular 489 00:22:14,420 --> 00:22:17,059 coste seguro 490 00:22:17,059 --> 00:22:21,509 pero claro 491 00:22:21,509 --> 00:22:23,450 ¿cuál será el coste del seguro? depende 492 00:22:23,450 --> 00:22:24,970 si es refrigerado es uno 493 00:22:24,970 --> 00:22:27,569 si es urgente es otro 494 00:22:27,569 --> 00:22:29,309 entonces esto es una interfaz 495 00:22:29,309 --> 00:22:30,990 se queda ahí vacía y se acabó 496 00:22:30,990 --> 00:22:33,910 ¿qué otros roles posibles pueden desempeñar 497 00:22:33,910 --> 00:22:35,029 los envíos de mi aplicación? 498 00:22:35,029 --> 00:22:36,069 Pues rastreables 499 00:22:36,069 --> 00:22:39,069 Pues me hago otra interfaz rastreable 500 00:22:39,069 --> 00:22:49,220 Y ahora los envíos rastreables 501 00:22:49,220 --> 00:22:50,559 ¿Qué tienen que poder hacer? 502 00:22:51,559 --> 00:22:52,819 Los envíos rastreables 503 00:22:52,819 --> 00:22:53,619 Tienen que poder 504 00:22:53,619 --> 00:22:57,160 Obtener estado y actualizar estado 505 00:22:57,160 --> 00:22:58,500 Dado un string 506 00:22:58,500 --> 00:22:59,900 Que se le pasa como parámetro 507 00:22:59,900 --> 00:23:06,279 Envío rastreable 508 00:23:06,279 --> 00:23:08,319 ¿Dónde he hecho un envío rastreable? 509 00:23:08,359 --> 00:23:11,299 He hecho una interfaz rastreable 510 00:23:11,299 --> 00:23:14,259 Vale, el rastreable 511 00:23:14,259 --> 00:23:15,940 Tiene dos métodos 512 00:23:15,940 --> 00:23:18,079 Obtener estado 513 00:23:18,079 --> 00:23:19,980 Y actualizar estado dado un string 514 00:23:19,980 --> 00:23:22,759 Y obtener estado 515 00:23:22,759 --> 00:23:26,299 Vale, pues obtener estado 516 00:23:26,299 --> 00:23:27,920 El estado que sea un string 517 00:23:27,920 --> 00:23:32,099 Obtener estado 518 00:23:32,099 --> 00:23:35,380 Y 519 00:23:35,380 --> 00:23:37,700 Ar, class, interface 520 00:23:37,700 --> 00:23:40,900 La he hecho como class 521 00:23:40,900 --> 00:23:43,000 Interface, vale 522 00:23:43,000 --> 00:23:44,680 Y ahora 523 00:23:44,680 --> 00:23:47,740 Actualizar estado, era la otra, creo 524 00:23:47,740 --> 00:23:51,920 Actualizar estado al que le pasamos el nuevo estado 525 00:23:51,920 --> 00:23:59,339 Estas son las dos cosas que tienen que poder hacer los métodos rastreables 526 00:23:59,339 --> 00:24:02,640 Obtener estado y actualizar el estado 527 00:24:02,640 --> 00:24:04,680 Dado un nuevo estado, pues sale otro 528 00:24:04,680 --> 00:24:33,160 Venga, pues vamos a un main 529 00:24:33,160 --> 00:24:35,819 Un main cualquiera 530 00:24:35,819 --> 00:24:45,940 No, claro, tienes razón, no lo he hecho 531 00:24:45,940 --> 00:24:49,279 Ahora lo que tenemos es que envíe urgente 532 00:24:49,279 --> 00:24:51,119 Envío urgente 533 00:24:51,119 --> 00:24:54,440 Es asegurable 534 00:24:54,440 --> 00:24:54,980 ¿Verdad? 535 00:24:56,420 --> 00:24:58,799 Pero este no era rastreable 536 00:24:58,799 --> 00:25:13,539 Que habrá que incorporar 537 00:25:13,539 --> 00:25:15,799 Los que sean rastreables 538 00:25:15,799 --> 00:25:16,839 Tienen que tener un estado 539 00:25:16,839 --> 00:25:20,559 No, lo tendremos que incorporar ahora 540 00:25:20,559 --> 00:25:21,420 ¿Vale? 541 00:25:22,000 --> 00:25:24,740 Entonces, parte de la interfaz no puede ser 542 00:25:24,740 --> 00:25:26,579 Porque las interfaces no tienen estado 543 00:25:26,579 --> 00:25:28,079 Solo tienen métodos 544 00:25:28,079 --> 00:25:30,140 Entonces aquí no podemos poner una propiedad 545 00:25:30,140 --> 00:25:33,440 estado dentro de la interfaz que la le den lo demás 546 00:25:33,440 --> 00:25:34,680 no podemos 547 00:25:34,680 --> 00:25:36,660 claro 548 00:25:36,660 --> 00:25:39,220 habría que ponerla, yo es que esto 549 00:25:39,220 --> 00:25:41,400 quizá a lo mejor lo habría hecho 550 00:25:41,400 --> 00:25:43,680 como clase abstracta para poder meter el estado 551 00:25:43,680 --> 00:25:45,200 pero 552 00:25:45,200 --> 00:25:47,059 porque tal y como está aquí propuesto 553 00:25:47,059 --> 00:25:48,420 tienes que meterlo en las 554 00:25:48,420 --> 00:25:51,220 otras, en envío estándar y envío urgente 555 00:25:51,220 --> 00:25:53,339 entonces envío urgente 556 00:25:53,339 --> 00:25:55,539 implementa las dos, es asegurable 557 00:25:55,539 --> 00:25:56,539 y rastreable 558 00:25:56,539 --> 00:25:59,299 entonces envío urgente implementa 559 00:25:59,299 --> 00:26:03,299 Asegurable, implementa, rastreable. 560 00:26:04,920 --> 00:26:10,759 Entonces, el urgente se puede asegurar y se puede rastrear. 561 00:26:10,759 --> 00:26:18,369 Con lo cual, tenemos que implementar los métodos de las tres. 562 00:26:20,730 --> 00:26:21,990 Tres métodos. 563 00:26:22,569 --> 00:26:27,650 Me podéis dar aquí al botoncito, añadir, y ala, estos tres. 564 00:26:38,359 --> 00:26:38,640 Claro. 565 00:26:38,640 --> 00:26:41,480 vale, pues el envío urgente 566 00:26:41,480 --> 00:26:43,299 tiene tres métodos 567 00:26:43,299 --> 00:26:44,700 que tengo que completar 568 00:26:44,700 --> 00:26:46,579 vale 569 00:26:46,579 --> 00:26:48,839 obtener estado 570 00:26:48,839 --> 00:26:51,180 obtener estado me tiene que devolver 571 00:26:51,180 --> 00:26:52,880 el estado de ese envío 572 00:26:52,880 --> 00:26:54,079 el estado 573 00:26:54,079 --> 00:26:57,039 es una propiedad que tengo que añadir aquí 574 00:26:57,039 --> 00:27:02,289 y como me dice 575 00:27:02,289 --> 00:27:04,369 que inicialmente creado 576 00:27:04,369 --> 00:27:10,000 aquí le pegaría que lo hicierais 577 00:27:10,000 --> 00:27:11,700 con un enum, un enum porque 578 00:27:11,700 --> 00:27:13,299 los estados se supone que hay 579 00:27:13,299 --> 00:27:17,160 Lo hacemos 580 00:27:17,160 --> 00:27:20,200 Es que como has puesto cara de 581 00:27:20,200 --> 00:27:21,599 Que poco me gustan los enum 582 00:27:21,599 --> 00:27:25,720 Vale, lo estoy metiendo todo en modelo 583 00:27:25,720 --> 00:27:28,140 Vale, todo en modelo para que 584 00:27:28,140 --> 00:27:30,680 Venga, pues nos vamos a hacer un enum 585 00:27:30,680 --> 00:27:32,180 Que 586 00:27:32,180 --> 00:27:38,319 Vamos a llamarle estado a ese enum 587 00:27:38,319 --> 00:27:39,740 Estado envío 588 00:27:39,740 --> 00:27:41,539 Para que quede más claro, estado envío 589 00:27:41,539 --> 00:27:43,660 Y ahora, estado envío 590 00:27:43,660 --> 00:27:45,599 qué estados creemos 591 00:27:45,599 --> 00:27:46,700 que nos gustan 592 00:27:46,700 --> 00:27:49,420 creado, enviado 593 00:27:49,420 --> 00:27:54,200 y recibido 594 00:27:54,200 --> 00:27:54,480 ¿vale? 595 00:27:55,900 --> 00:27:57,539 ¿se podría poner? 596 00:27:57,740 --> 00:27:59,839 sí, devuelto 597 00:27:59,839 --> 00:28:02,299 bueno 598 00:28:02,299 --> 00:28:05,099 la verdad es que 599 00:28:05,099 --> 00:28:07,500 sí, lo que pasa es que 600 00:28:07,500 --> 00:28:09,279 podríamos extendernos hasta el infinito 601 00:28:09,279 --> 00:28:11,960 perdido, escupido 602 00:28:11,960 --> 00:28:14,160 mojado, deteriorado 603 00:28:14,160 --> 00:28:15,339 pero bueno 604 00:28:15,339 --> 00:28:18,299 vamos a quedarnos con 4 605 00:28:18,299 --> 00:28:21,480 vale, pues entonces 606 00:28:21,480 --> 00:28:22,799 ahora ya 607 00:28:22,799 --> 00:28:25,740 mi envío urgente 608 00:28:25,740 --> 00:28:27,940 su estado ya no va a ser 609 00:28:27,940 --> 00:28:29,940 un string, sino que 610 00:28:29,940 --> 00:28:31,660 su estado va a ser un 611 00:28:31,660 --> 00:28:32,519 envío 612 00:28:32,519 --> 00:28:34,380 estado 613 00:28:34,380 --> 00:28:36,299 he puesto 614 00:28:36,299 --> 00:28:39,220 creado, enviado, recibido, devuelto 615 00:28:39,220 --> 00:28:42,859 vale, entonces ahora ya 616 00:28:42,859 --> 00:28:46,710 mi envío estado 617 00:28:46,710 --> 00:28:49,170 Mi propiedad estado de envío urgente 618 00:28:49,170 --> 00:28:52,509 Ahora va a ser del tipo envío estado 619 00:28:52,509 --> 00:28:54,470 Y como inicialmente es creado 620 00:28:54,470 --> 00:29:02,539 Pues yo inicialmente le doy este valor 621 00:29:02,539 --> 00:29:05,900 Envío estado 622 00:29:05,900 --> 00:29:07,299 Que he escrito mal 623 00:29:07,299 --> 00:29:16,720 Ah, ya decía yo 624 00:29:16,720 --> 00:29:17,380 Vale, vale 625 00:29:17,380 --> 00:29:18,779 Estado envío 626 00:29:18,779 --> 00:29:25,640 Vale, estado envío 627 00:29:25,640 --> 00:29:32,410 Punto creado 628 00:29:32,410 --> 00:29:35,500 Ese es el estado inicial 629 00:29:35,500 --> 00:29:57,640 Y ahora, ¿qué nos cambia? Aquí estado envío. Pues vámonos a los métodos que tenemos que hacer. Obtener estado ya no me va a devolver un string. Obtener estado me devuelve un estado envío. Eso es lo que me devuelve obtener estado, estado envío. 630 00:29:57,640 --> 00:30:00,039 y que me devuelve 631 00:30:00,039 --> 00:30:02,339 me devuelve la propiedad 632 00:30:02,339 --> 00:30:04,220 estado envío, que es 633 00:30:04,220 --> 00:30:05,960 estado 634 00:30:05,960 --> 00:30:10,380 y alguna otra cosa he escrito mal 635 00:30:10,380 --> 00:30:12,200 así que en la interfaz 636 00:30:12,200 --> 00:30:13,880 en la interfaz la tengo que cambiar 637 00:30:13,880 --> 00:30:16,539 en mi interfaz 638 00:30:16,539 --> 00:30:18,299 el método que yo lo había 639 00:30:18,299 --> 00:30:19,299 puesto como 640 00:30:19,299 --> 00:30:22,279 asegurable rastreable 641 00:30:22,279 --> 00:30:23,599 aquí, en la interfaz 642 00:30:23,599 --> 00:30:25,200 en obtener estado 643 00:30:25,200 --> 00:30:27,640 ya como hemos decidido, metieron en un 644 00:30:27,640 --> 00:30:29,420 porque es que lo habéis pedido a gritos 645 00:30:29,420 --> 00:30:32,920 pues como hemos decidido poner un enum 646 00:30:32,920 --> 00:30:35,339 iros a la antifaz rastreable 647 00:30:35,339 --> 00:30:37,039 a cambiarlo 648 00:30:37,039 --> 00:30:40,480 actualizar estado 649 00:30:40,480 --> 00:30:42,180 pues hay que darle de nuevo 650 00:30:42,180 --> 00:30:44,319 un estado envío 651 00:30:44,319 --> 00:30:50,019 y actualizar estado que nos devuelva 652 00:30:50,019 --> 00:30:51,519 void, no tiene que hacer nada 653 00:30:51,519 --> 00:30:53,059 actualizar el estado y ya está 654 00:30:53,059 --> 00:30:55,880 con el enum así se quedan los dos 655 00:30:55,880 --> 00:30:58,019 métodos de rastreable 656 00:30:58,019 --> 00:30:59,559 obtener estado 657 00:30:59,559 --> 00:31:00,920 que me da el estado del envío 658 00:31:00,920 --> 00:31:03,700 y actualizar estado que me he dado un estado 659 00:31:03,700 --> 00:31:13,259 nuevo me lo guarda. Así se quedan. Y ahora ya en envío urgente, estado envío me devuelve 660 00:31:13,259 --> 00:31:30,880 el estado y actualizar estado voy a cambiarlo. Esto aquí, esto aquí, esto voy. Actualizar 661 00:31:30,880 --> 00:31:36,700 estado no tiene un retún y actualizar estado ¿qué hace? Pues dis.estado, aunque el dis 662 00:31:36,700 --> 00:31:49,259 me sobra, igual a nuevo estado. Eso me hace la actualiza estado. ¿Calcular coste del 663 00:31:49,259 --> 00:31:51,299 seguro? Pues, ¿cómo se calcula el coste 664 00:31:51,299 --> 00:31:52,640 del seguro para un envío urgente? 665 00:31:53,259 --> 00:31:54,700 Me lo dirá el enunciado. 666 00:31:56,460 --> 00:31:57,440 Coste del seguro 667 00:31:57,440 --> 00:31:59,599 se calcula 668 00:31:59,599 --> 00:32:01,319 como 1,5 por el 669 00:32:01,319 --> 00:32:03,420 peso multiplicado por 0,8. 670 00:32:04,799 --> 00:32:07,000 El coste del seguro es 671 00:32:07,000 --> 00:32:11,259 1,5 672 00:32:11,259 --> 00:32:11,839 más 673 00:32:11,839 --> 00:32:15,000 1,5 más 674 00:32:15,000 --> 00:32:16,000 el peso 675 00:32:16,000 --> 00:32:18,980 por 0,8. 676 00:32:25,759 --> 00:32:28,769 ¿Vale? Entonces, 677 00:32:28,890 --> 00:32:32,470 El rastreable va a tener la misma implementación, la misma. 678 00:32:33,089 --> 00:32:37,630 Entonces diríais, jo, ¿no se puede poner como una implementación default en la interfaz? 679 00:32:39,150 --> 00:32:40,369 Pues no se puede, ¿por qué? 680 00:32:40,549 --> 00:32:41,990 Porque depende de peso. 681 00:32:42,569 --> 00:32:47,670 Y peso es una propiedad que está solo en la subclase, no está en la interfaz. 682 00:32:48,150 --> 00:32:52,789 Entonces no lo puedo poner como default, porque depende del estado del objeto. 683 00:32:52,789 --> 00:32:56,089 vale, que ahora 684 00:32:56,089 --> 00:32:58,890 el enunciado me dice que el coste del seguro 685 00:32:58,890 --> 00:33:00,289 es igual para todos, envío 686 00:33:00,289 --> 00:33:02,569 urgente, es el coste del seguro 687 00:33:02,569 --> 00:33:04,630 entonces podríais pensar, cuando 688 00:33:04,630 --> 00:33:06,970 hagamos el envío 689 00:33:06,970 --> 00:33:08,789 refrigerado, que también 690 00:33:08,789 --> 00:33:10,369 al implementar rastreable 691 00:33:10,369 --> 00:33:12,349 perdón, al implementar asegurable 692 00:33:12,349 --> 00:33:14,390 tendrá que calcular coste seguro 693 00:33:14,390 --> 00:33:16,690 vamos a hacerlo rápidamente, que esto no tardamos 694 00:33:16,690 --> 00:33:18,569 nada, cuando el envío 695 00:33:18,569 --> 00:33:20,869 refrigerado hagamos que también implemente 696 00:33:20,869 --> 00:33:24,349 asegurable, vale 697 00:33:24,349 --> 00:33:28,849 Al implementar asegurable, nos va a obligar a implementar el coste del seguro. 698 00:33:29,450 --> 00:33:31,769 Bueno, pues implementamos el coste del seguro. 699 00:33:32,529 --> 00:33:33,769 ¿Y cómo lo va a hacer? 700 00:33:34,109 --> 00:33:35,250 Exactamente igual que el otro. 701 00:33:35,549 --> 00:33:36,769 Podemos hacer un copia y pega. 702 00:33:38,130 --> 00:33:39,789 Un copia y pega del retun. 703 00:33:39,970 --> 00:33:40,410 Igual. 704 00:33:41,130 --> 00:33:43,789 En el envío refrigerado, lo mismo. 705 00:33:44,890 --> 00:33:45,650 Exactamente igual. 706 00:33:48,589 --> 00:33:50,849 Y ahora es cuando vosotros me diríais. 707 00:33:50,930 --> 00:33:51,609 Pero vamos a ver. 708 00:33:51,609 --> 00:33:58,430 Si calcular coste seguro es igual en envío refrigerado que en urgente, es que es igualito. 709 00:33:59,130 --> 00:34:03,210 No lo puedo poner como versión default en la interfaz. 710 00:34:04,829 --> 00:34:08,949 No podemos, porque depende del peso, de la variable peso. 711 00:34:11,699 --> 00:34:15,039 Y la variable peso no puede estar en la interfaz. 712 00:34:16,139 --> 00:34:17,099 No puede. 713 00:34:17,099 --> 00:34:21,639 pues lo que diga esto 714 00:34:21,639 --> 00:34:24,079 el refrigerado 715 00:34:24,079 --> 00:34:26,659 solo implementa 716 00:34:26,659 --> 00:34:27,500 la asegurable 717 00:34:27,500 --> 00:34:30,519 el urgente las dos y el estándar 718 00:34:30,519 --> 00:34:31,380 la rastreable 719 00:34:31,380 --> 00:34:36,599 es una propiedad 720 00:34:36,599 --> 00:34:37,559 que está en la clase 721 00:34:37,559 --> 00:34:39,219 no la podemos poner 722 00:34:39,219 --> 00:34:40,679 aquí 723 00:34:40,679 --> 00:34:43,320 yo aquí no puedo poner el código 724 00:34:43,320 --> 00:34:45,659 no puedo poner aquí una propiedad peso 725 00:34:45,659 --> 00:34:47,139 no puedo ponerlo de ninguna manera 726 00:34:47,139 --> 00:34:51,739 sí, pero no es grave 727 00:34:51,739 --> 00:34:53,679 no pasa nada, coincide que 728 00:34:53,679 --> 00:34:55,960 cada uno se implementa 729 00:34:55,960 --> 00:34:57,880 de la misma manera, pero puntualmente 730 00:34:57,880 --> 00:34:59,619 a lo mejor mañana resulta que el coste 731 00:34:59,619 --> 00:35:01,619 del seguro refrigerado sube, pues ya está 732 00:35:01,619 --> 00:35:03,719 lo cambias, no pasa nada 733 00:35:03,719 --> 00:35:04,739 porque sea el mismo en ambos 734 00:35:04,739 --> 00:35:07,500 lo importante aquí 735 00:35:07,500 --> 00:35:09,719 es que los dos están obligados a ponerlo 736 00:35:10,480 --> 00:35:14,630 vale 737 00:35:14,630 --> 00:35:17,429 y yo, aunque 738 00:35:17,429 --> 00:35:19,809 Esto sé que os engancha mucho 739 00:35:19,809 --> 00:35:21,469 Os voy a echar 740 00:35:21,469 --> 00:35:24,030 ¿Vale? 741 00:35:25,130 --> 00:35:25,449 Sí 742 00:35:25,449 --> 00:35:28,570 Que aunque sé que esto 743 00:35:28,570 --> 00:35:30,130 Os engancha mucho 744 00:35:30,130 --> 00:35:31,510 No, no es la hora en realidad 745 00:35:31,510 --> 00:35:33,230 Pero os voy a echar 746 00:35:33,230 --> 00:35:34,829 Porque me tengo que ir 747 00:35:34,829 --> 00:35:38,250 No, os he hecho por mí 748 00:35:38,250 --> 00:35:40,469 Por mi culpa y os pido disculpas por echaros