1 00:00:00,000 --> 00:00:02,000 Vale, volvemos aquí donde estábamos. 2 00:00:03,640 --> 00:00:06,840 Vale, entonces, repito, recordad que este fallo 3 00:00:06,840 --> 00:00:09,840 cuesta mucho desterrarlo. 4 00:00:09,840 --> 00:00:15,280 A ver si uno sigue poniendo este if, 5 00:00:15,280 --> 00:00:17,280 si es igual al código hago todo esto, 6 00:00:17,280 --> 00:00:20,600 y aquí un else, y en ese else poner pedido no existe. 7 00:00:20,600 --> 00:00:25,760 No, que el pedido de if no sea igual en código a este 8 00:00:25,760 --> 00:00:28,160 no significa que no pueda serlo el siguiente. 9 00:00:28,440 --> 00:00:31,640 Con lo cual uno no puede concluir, porque esto sea falso, 10 00:00:31,640 --> 00:00:36,200 no puede concluir aquí con un else alegremente, 11 00:00:36,200 --> 00:00:40,280 no puede concluir aquí que el pedido no exista. 12 00:00:45,160 --> 00:00:46,480 No puede concluir. 13 00:00:46,480 --> 00:00:48,600 Lo único que puede concluir en este else es que el de 14 00:00:48,600 --> 00:00:50,440 posición y no es. 15 00:00:50,440 --> 00:00:53,160 Es lo único que puede concluir, que el de posición y no es. 16 00:00:53,160 --> 00:00:55,240 Pero a lo mejor el de posición y más uno sí que es. 17 00:00:55,280 --> 00:00:58,560 Con lo cual sí que existe, lo que pasa es que está después. 18 00:00:58,560 --> 00:01:01,160 Lo digo porque esto lo hacéis mucho. 19 00:01:01,160 --> 00:01:05,280 Entonces, que este pedido no sea no significa que no pueda ser 20 00:01:05,280 --> 00:01:06,560 el siguiente. 21 00:01:06,560 --> 00:01:08,880 Entonces, no puedo ponerle a este if un else que diga el 22 00:01:08,880 --> 00:01:09,720 pedido no existe. 23 00:01:09,720 --> 00:01:12,240 No, no puedo. 24 00:01:12,240 --> 00:01:15,920 Lo tengo que hacer de esta otra forma que hemos dicho. 25 00:01:15,920 --> 00:01:18,760 Claro, entonces, cuando ya has acabado de recorrer, 26 00:01:18,760 --> 00:01:21,520 pero cuando has acabado es cuando ya puedes decir, a ver, 27 00:01:21,520 --> 00:01:23,840 ¿alguna vez entré aquí? 28 00:01:23,840 --> 00:01:27,280 Si entré alguna vez, el pedido existe. 29 00:01:27,280 --> 00:01:29,480 Y si no entré, el pedido no existe. 30 00:01:29,480 --> 00:01:36,960 Pero cuando ya hemos acabado de recorrer, efectivamente, ¿vale? 31 00:01:36,960 --> 00:01:39,080 Por eso este if está fuera de ese for. 32 00:01:39,080 --> 00:01:41,640 Cuando ya acabo de recorrer, el pedido existe puede ocurrir 33 00:01:41,640 --> 00:01:42,160 dos cosas. 34 00:01:42,160 --> 00:01:44,640 Que sea true, porque entré aquí alguna vez, 35 00:01:44,640 --> 00:01:45,760 con lo cual el pedido existe. 36 00:01:45,760 --> 00:01:47,800 No sé si habrá sido el 1, el 2, el 3, ni idea. 37 00:01:47,800 --> 00:01:49,800 Pero existe seguro. 38 00:01:49,800 --> 00:01:51,440 Que el pedido existe es falso. 39 00:01:51,440 --> 00:01:52,800 Nunca entré aquí. 40 00:01:52,800 --> 00:01:54,600 Entonces, conserva el valor primero. 41 00:01:54,600 --> 00:01:55,760 Nunca entré. 42 00:01:55,760 --> 00:01:58,040 Pues, entonces, ya con el if puedo decir, 43 00:01:58,040 --> 00:01:59,680 que pedido existe es falso. 44 00:01:59,680 --> 00:02:03,200 O lo que es lo mismo, que no pedido existe es true. 45 00:02:03,200 --> 00:02:04,360 Pues, no existe. 46 00:02:04,360 --> 00:02:05,800 Ahora ya mi aplicación será más. 47 00:02:05,800 --> 00:02:08,120 INTERLOCUTOR 1 No habría que poner sin el false. 48 00:02:08,120 --> 00:02:11,480 O sea, porque si no entra, de primera vez está el false. 49 00:02:11,480 --> 00:02:13,080 INTERLOCUTORA 1 A ver, es que. 50 00:02:13,080 --> 00:02:14,960 INTERLOCUTOR 1 Si no entra en el. 51 00:02:14,960 --> 00:02:15,720 INTERLOCUTORA 1 Está false. 52 00:02:15,720 --> 00:02:17,720 Y ahí es cuando tú quieres mostrar esto. 53 00:02:17,720 --> 00:02:19,640 Entonces, esto está en el if, con lo cual, 54 00:02:19,640 --> 00:02:21,240 pedido existe, está false. 55 00:02:21,240 --> 00:02:21,720 ¿Para qué? 56 00:02:21,720 --> 00:02:25,040 Tiene que ser true, con lo cual, después el negado al principio. 57 00:02:25,040 --> 00:02:26,440 El negado. 58 00:02:26,440 --> 00:02:30,120 A ver, que se podría haber hecho, pedido no existe, true. 59 00:02:30,120 --> 00:02:32,000 Y ahí cambiara, pedido no existe, false. 60 00:02:32,000 --> 00:02:33,760 Entonces, aquí sí sería sin el no. 61 00:02:33,760 --> 00:02:34,600 Pedido no existe. 62 00:02:34,600 --> 00:02:35,880 Da igual. 63 00:02:35,880 --> 00:02:37,760 Como hayas tú elegido hacerlo. 64 00:02:37,760 --> 00:02:38,260 ¿Vale? 65 00:02:40,600 --> 00:02:41,080 Vale. 66 00:02:41,080 --> 00:02:42,360 Bueno, pues, esta funcionalidad ya estaría. 67 00:02:42,360 --> 00:02:45,000 Esta funcionalidad ya nos va a permitir comprobar si está 68 00:02:45,000 --> 00:02:46,960 añadiendo los ítems correctamente. 69 00:02:46,960 --> 00:02:48,320 Vamos a volver a ejecutarla. 70 00:02:48,320 --> 00:02:51,600 Porque podemos creer que hemos añadido bien los ítems, 71 00:02:51,600 --> 00:02:53,840 hemos creado bien el pedido, porque no nos da errores de 72 00:02:53,840 --> 00:02:54,960 ejecución. 73 00:02:54,960 --> 00:02:57,000 Y no, no nos está añadiendo nada. 74 00:02:57,000 --> 00:03:00,080 Y nos da anul, pointer, excepción, nos da de todo. 75 00:03:00,080 --> 00:03:02,280 Entonces, vamos a ejecutar esto otra vez. 76 00:03:08,080 --> 00:03:08,920 Vale, pues, venga. 77 00:03:08,920 --> 00:03:11,480 Primero, creamos un pedido. 78 00:03:11,480 --> 00:03:12,360 Vale. 79 00:03:12,360 --> 00:03:15,400 Ah, los next line, los next in, no los arreglé. 80 00:03:15,400 --> 00:03:17,840 Entonces, vamos a tener que arreglarlos. 81 00:03:17,840 --> 00:03:18,640 Vamos a tener que. 82 00:03:25,520 --> 00:03:27,000 Que no me sale, ¿dónde? 83 00:03:30,520 --> 00:03:32,520 La cantidad de pedido aquí. 84 00:03:32,520 --> 00:03:33,560 Esta propiedad dices. 85 00:03:37,920 --> 00:03:38,880 No, en ítem, en ítem. 86 00:03:38,880 --> 00:03:39,880 En el main, también. 87 00:03:39,880 --> 00:03:41,840 Crear el pedido y ejecutar el pedido. 88 00:03:41,840 --> 00:03:44,440 En el main, el pedido. 89 00:03:44,440 --> 00:03:47,720 ¿Dónde exactamente? 90 00:03:47,720 --> 00:03:49,480 Ah, la cuando creo un pedido nuevo. 91 00:03:49,480 --> 00:03:51,120 En el caso 2, claro. 92 00:03:51,120 --> 00:03:54,360 Ah, en el caso 2, cantidad, es que la leo aquí. 93 00:03:54,360 --> 00:03:54,860 Claro. 94 00:03:54,860 --> 00:03:59,240 Y en el 3, ahí me pone que no está en el ítem. 95 00:03:59,240 --> 00:04:01,600 Bueno, es que yo no he hecho el 3 todavía. 96 00:04:01,600 --> 00:04:03,440 Claro, no sé. 97 00:04:03,440 --> 00:04:05,720 Por ahora voy a arreglar lo del next in, next line, 98 00:04:05,720 --> 00:04:07,560 para poder ejecutar esto. 99 00:04:07,560 --> 00:04:10,520 Entonces, vamos a ver. 100 00:04:10,520 --> 00:04:12,020 Yo aquí, después de leer el número, 101 00:04:12,020 --> 00:04:13,980 he tenido el problema cuando hago un next line. 102 00:04:13,980 --> 00:04:19,240 Entonces, aquí vamos a ponerle ya directamente un scan punto. 103 00:04:19,240 --> 00:04:25,200 Esto ya del next line, next in, lo vamos a arreglar rápidamente 104 00:04:25,200 --> 00:04:27,600 para llamar a un, ahora que ya sabemos hacer métodos, 105 00:04:27,600 --> 00:04:30,000 llamar a una función y ya no tengamos que tener este 106 00:04:30,000 --> 00:04:31,280 problema. 107 00:04:31,280 --> 00:04:32,960 Vale. 108 00:04:32,960 --> 00:04:34,480 Con este next line ya lo quito. 109 00:04:34,480 --> 00:04:37,480 Next line, next line, eso se me quita. 110 00:04:37,480 --> 00:04:41,200 Next int, vale. 111 00:04:41,200 --> 00:04:45,240 Introduzca descripciones in next line. 112 00:04:45,240 --> 00:04:47,400 Vale. 113 00:04:47,400 --> 00:04:48,120 Vale. 114 00:04:48,120 --> 00:04:51,920 Vamos a ver si así lo se ha arreglado. 115 00:04:51,920 --> 00:04:53,600 Todos los next in, next line. 116 00:04:56,760 --> 00:05:00,720 Vale, venga, vamos a volver a ejecutar esto. 117 00:05:00,720 --> 00:05:02,880 Opción 1, crear pedido. 118 00:05:02,880 --> 00:05:05,200 Introduzca código. 119 00:05:05,200 --> 00:05:07,680 Venga, el código va a ser el 1. 120 00:05:07,680 --> 00:05:08,840 Código. 121 00:05:08,840 --> 00:05:10,760 Introduzca descripción. 122 00:05:10,760 --> 00:05:17,240 Pues, pedido mío, ala, pedido mío. 123 00:05:17,240 --> 00:05:19,560 Este de aquí, vale. 124 00:05:19,560 --> 00:05:22,440 Vale, el pedido ya está creado. 125 00:05:22,440 --> 00:05:24,680 Vamos a probar a añadir un ítem. 126 00:05:24,680 --> 00:05:28,120 A ver, añadir ítem, venga. 127 00:05:28,120 --> 00:05:30,520 Código del pedido para que vamos a añadir ítem. 128 00:05:30,520 --> 00:05:32,920 El 1, eso único que tengo, el 1. 129 00:05:32,920 --> 00:05:33,800 Pues, venga. 130 00:05:33,800 --> 00:05:35,680 Vamos a añadir el ítem a este pedido 1. 131 00:05:35,680 --> 00:05:36,880 Descripción del ítem. 132 00:05:36,880 --> 00:05:38,800 Pues, vamos a pedir bolis. 133 00:05:38,800 --> 00:05:42,920 Cantidad del ítem, 3 bolis. 134 00:05:42,920 --> 00:05:46,680 Aquí es que con el system, con el copia y pega, 135 00:05:46,680 --> 00:05:49,400 tendría que haber puesto introduzca, 136 00:05:49,400 --> 00:05:50,760 o sea, que están mal los system. 137 00:05:50,760 --> 00:05:52,880 Aquí me falta el precio unitario. 138 00:05:52,880 --> 00:05:55,000 6, vale. 139 00:05:55,000 --> 00:05:57,640 He añadido el ítem al pedido 1. 140 00:05:57,640 --> 00:06:02,600 Vamos a hacer la funcionalidad 6 para ver si el código de pedido 141 00:06:02,600 --> 00:06:05,240 1 tiene esos ítems. 142 00:06:05,240 --> 00:06:08,200 Vale, pues, sí lo tiene. 143 00:06:08,200 --> 00:06:10,360 Me lo acaba de mostrar. 144 00:06:10,360 --> 00:06:13,720 El pedido 1 tiene ítem, bolis, cantidad 3, 145 00:06:13,720 --> 00:06:16,120 precio unidad 6. 146 00:06:16,120 --> 00:06:19,160 Lo que hemos hecho hasta ahora parece que está bien. 147 00:06:19,160 --> 00:06:24,600 Vamos a salir y ya hemos cerrado el programa. 148 00:06:24,600 --> 00:06:31,600 No, no hemos cerrado el programa porque algo tiene la función 149 00:06:31,600 --> 00:06:33,680 salir, la he debido cambiar. 150 00:06:33,680 --> 00:06:34,520 Debía ser la 7. 151 00:06:34,520 --> 00:06:37,040 Ah, porque no lo actualicé a la 7. 152 00:06:37,040 --> 00:06:39,600 En la 7, vale. 153 00:06:39,600 --> 00:06:45,240 Vale, entonces, aquí los system out eran los que tenían el 154 00:06:45,240 --> 00:06:48,360 problema, introduzca cantidad, introduzca precio unitario. 155 00:06:48,360 --> 00:06:50,720 Este system es el que estaba mal. 156 00:06:50,720 --> 00:06:53,240 Precio unitario. 157 00:06:53,240 --> 00:06:58,440 Y luego el, o hay la opción diferente de 8. 158 00:06:58,440 --> 00:06:59,640 Esto es lo que estaba mal. 159 00:06:59,640 --> 00:07:02,480 Hay, opción diferente de 8. 160 00:07:02,480 --> 00:07:05,440 Vale, pues, la aplicación hecha hasta ahora está bien, ¿vale? 161 00:07:09,320 --> 00:07:18,480 Vale, pues, a ver, volvemos aquí a este código del caso 6. 162 00:07:18,480 --> 00:07:24,880 Este código del caso 6 empieza a ser ya un poquito feo. 163 00:07:24,880 --> 00:07:27,080 En cuanto algo empieza a anidar ya dos for, 164 00:07:27,080 --> 00:07:30,080 empieza a alargarse dentro de un switch case, 165 00:07:30,080 --> 00:07:32,040 este código lo podemos dejar así, no pasa nada, 166 00:07:32,040 --> 00:07:34,720 funciona perfectamente, está estupendo y lo hemos entendido. 167 00:07:34,720 --> 00:07:37,800 Pero, hombre, es un poco feo. 168 00:07:37,800 --> 00:07:41,640 A efectos de mantener el propio código nos lo complica. 169 00:07:41,640 --> 00:07:44,160 Porque imaginaos que el usuario nos dice, oye, 170 00:07:44,160 --> 00:07:47,240 cuando me muestres los ítems, los mensajes que me muestras 171 00:07:47,240 --> 00:07:48,040 son muy feos. 172 00:07:48,040 --> 00:07:51,600 Quiero que me digas, el ítem tal tiene cantidad tal. 173 00:07:51,600 --> 00:07:53,080 Oye, cámbiale esa parte. 174 00:07:53,080 --> 00:07:54,960 Pues, nos tenemos que ir al main. 175 00:07:55,000 --> 00:07:57,480 Y el main es un programa larguísimo. 176 00:07:57,480 --> 00:08:00,560 Esto ya empieza a ser jarraboso. 177 00:08:00,560 --> 00:08:03,320 Pues, la aplicación de Tadojedo está para eso y es, oye, 178 00:08:03,320 --> 00:08:05,080 ¿qué estás haciendo tú aquí? 179 00:08:05,080 --> 00:08:09,040 Estás mostrando con este for, estás mostrando los ítems del 180 00:08:09,040 --> 00:08:10,160 pedido. 181 00:08:10,160 --> 00:08:13,160 Pues, hombre, hazte un método en la clase pedido para mostrar 182 00:08:13,160 --> 00:08:14,440 los ítems del pedido. 183 00:08:14,440 --> 00:08:16,800 Y aquí limítate a llamarlo. 184 00:08:16,800 --> 00:08:20,200 Que tienes que modificar algo en la vista, en los mensajitos, 185 00:08:20,200 --> 00:08:21,960 los modificas en la clase pedido. 186 00:08:21,960 --> 00:08:25,680 Y la main te queda súper cortita y no tienes que tocarla. 187 00:08:25,680 --> 00:08:27,840 Esa es la idea de la aplicación de Tadojedo. 188 00:08:27,840 --> 00:08:31,120 Uno va, las funcionalidades relacionadas con cada entidad, 189 00:08:31,120 --> 00:08:33,280 las va encapsulando en su clase. 190 00:08:33,280 --> 00:08:36,200 Y el programa principal las llama y se despreocupa de cómo 191 00:08:36,200 --> 00:08:37,680 están hechas. 192 00:08:37,680 --> 00:08:39,440 Entonces, no vamos a borrar esto, 193 00:08:39,440 --> 00:08:44,120 pero vamos a mostrar los datos del pedido de las 2 maneras. 194 00:08:44,120 --> 00:08:46,880 A la hora de ejecutarlo, lo va a mostrar 2 veces. 195 00:08:46,880 --> 00:08:50,400 Pero, vale, pues, ¿qué otra solución de diseño? 196 00:08:50,400 --> 00:08:52,800 Repito, esto es una solución de diseño, no es de funcionamiento. 197 00:08:52,800 --> 00:08:53,680 La aplicación va a funcionar igual, 198 00:08:53,680 --> 00:08:55,240 podríamos haber optado. 199 00:08:55,240 --> 00:08:57,480 Pues, dentro de la clase pedido, aquí, entonces, 200 00:08:57,480 --> 00:09:01,120 el cuerpo pediría hacer un método para mostrar los ítems 201 00:09:01,120 --> 00:09:01,880 del pedido. 202 00:09:01,880 --> 00:09:02,720 Hacer un método. 203 00:09:02,720 --> 00:09:07,240 Y que se llame en cualquier parte para mostrar los ítems. 204 00:09:07,240 --> 00:09:10,280 Pues, venga, vamos a añadir ese método. 205 00:09:10,280 --> 00:09:12,680 Una clase puede tener un montón de métodos. 206 00:09:12,680 --> 00:09:14,360 Es que da igual. 207 00:09:14,360 --> 00:09:17,640 Pues, venga, vamos a hacer un método public void, 208 00:09:17,640 --> 00:09:20,720 porque lo va a mostrar con System.out.println, 209 00:09:20,720 --> 00:09:23,840 mostrar ítems. 210 00:09:23,840 --> 00:09:28,480 Vale, ¿necesita este método alguna información desde fuera? 211 00:09:28,480 --> 00:09:31,320 No, porque va a mostrar los ítems del pedido dis en el que 212 00:09:31,320 --> 00:09:32,760 está. 213 00:09:32,760 --> 00:09:36,280 Y esos ítems están aquí en esta variable. 214 00:09:36,280 --> 00:09:39,160 Luego, no le hace falta, no le hace falta ninguna información 215 00:09:39,160 --> 00:09:39,720 desde fuera. 216 00:09:39,720 --> 00:09:41,840 Va a mostrar esa propiedad, es lo que va a hacer, 217 00:09:41,840 --> 00:09:43,600 mostrar esa propiedad. 218 00:09:43,600 --> 00:09:46,840 Bueno, pues, ahora ya este método lo hacemos tan bonito 219 00:09:46,840 --> 00:09:48,160 como queramos. 220 00:09:48,160 --> 00:09:52,160 Y vamos a hacer, por ejemplo, un System.out que nos diga, 221 00:09:52,160 --> 00:09:58,120 el pedido de descripción, vamos a poner la descripción aquí, 222 00:09:58,120 --> 00:10:00,040 el pedido. 223 00:10:00,040 --> 00:10:03,520 Y ponemos aquí la propiedad descripción. 224 00:10:03,520 --> 00:10:12,200 El pedido descripción, bueno, para hacer líneas separadas, 225 00:10:12,200 --> 00:10:13,400 pedido, 2 puntos. 226 00:10:13,400 --> 00:10:15,440 Y ponemos la descripción. 227 00:10:15,440 --> 00:10:17,680 Pedido, 2 puntos, descripción. 228 00:10:17,680 --> 00:10:20,080 Y ahora recorremos el ítem. 229 00:10:20,080 --> 00:10:23,240 Y ahora ya, pues, un for, un for de índice, como queráis. 230 00:10:23,240 --> 00:10:25,600 Como es solo para mostrar, los for-it son cómodos de 231 00:10:25,600 --> 00:10:27,480 escribir. 232 00:10:27,480 --> 00:10:31,960 De ejecución, fea, porque hace copias y gasta memoria. 233 00:10:31,960 --> 00:10:35,160 La ejecución es fea, pero la escritura del código es muy 234 00:10:35,160 --> 00:10:38,120 cómoda. 235 00:10:38,120 --> 00:10:42,240 Pues, venga, no tengo nada que se llame ítem por ahí, ¿no? 236 00:10:42,280 --> 00:10:48,320 Para cada ítem en el array ítems pedido, 237 00:10:48,320 --> 00:10:50,960 pues, ya mostramos todo. 238 00:10:50,960 --> 00:10:58,160 Copiad y pegad el propio Systemout de aquí y así ahorráis 239 00:10:58,160 --> 00:10:58,660 tiempo. 240 00:11:01,920 --> 00:11:04,160 Ala, y ya tengo un método. 241 00:11:04,160 --> 00:11:06,200 Un método que para el pedido que lo llame, 242 00:11:06,200 --> 00:11:09,600 para el pedido que lo llame, muestra la descripción y luego 243 00:11:09,600 --> 00:11:11,800 después una línea con cada ítem. 244 00:11:12,120 --> 00:11:12,680 Fenomenal. 245 00:11:15,960 --> 00:11:20,360 Pues, ala, con un asterisco delante para que se vea mejor. 246 00:11:23,480 --> 00:11:27,840 Ahora ya, cada vez que yo quiera mostrar los ítems de un 247 00:11:27,840 --> 00:11:31,240 pedido, sea donde sea, llamo al método y se acabó. 248 00:11:31,240 --> 00:11:33,560 Y no tengo que estar todo el rato recorriendo arrays, 249 00:11:33,560 --> 00:11:34,240 haciendo cosas. 250 00:11:34,240 --> 00:11:35,740 No tengo que estar todo el rato. 251 00:11:35,740 --> 00:11:39,600 Cuando yo quiera mostrar el pedido P1, 252 00:11:39,640 --> 00:11:42,400 haré P1 punto mostrar ítems, donde sea. 253 00:11:42,400 --> 00:11:45,120 Cuando quiera mostrar los ítems del pedido P7, pues, 254 00:11:45,120 --> 00:11:47,640 haré P7 punto mostrar ítems. 255 00:11:47,640 --> 00:11:51,600 Y me ahorro, me ahorro trabajo y sobre todo hago la aplicación 256 00:11:51,600 --> 00:11:52,320 mucho más clara. 257 00:11:58,720 --> 00:12:04,160 AddItem está aquí. 258 00:12:05,160 --> 00:12:10,760 Creaba una raya auxiliar con una posición más. 259 00:12:10,760 --> 00:12:15,840 Guardaba el ítem nuevo en esa posición auxiliar, añadida. 260 00:12:15,840 --> 00:12:17,040 Y yo luego ya sobrescribía. 261 00:12:20,560 --> 00:12:23,880 Lo de siempre, vamos. 262 00:12:23,880 --> 00:12:25,600 Vale, pues, ya tenemos ahí mostrar ítem. 263 00:12:25,600 --> 00:12:27,440 Ese método ya está ahí. 264 00:12:27,440 --> 00:12:28,800 Estupendo. 265 00:12:28,800 --> 00:12:30,560 Ya nos podemos olvidar de él. 266 00:12:30,560 --> 00:12:33,100 Y ahora ya, cada vez que yo quiera mostrar los ítems de un 267 00:12:33,100 --> 00:12:36,860 pedido, lo llamo en los 200 main que hagan falta. 268 00:12:36,860 --> 00:12:37,620 Me da lo mismo. 269 00:12:37,620 --> 00:12:39,420 Bueno, pues, ¿cuándo voy a querer mostrarlo? 270 00:12:39,420 --> 00:12:41,340 Por ejemplo, aquí. 271 00:12:41,340 --> 00:12:44,100 Por ejemplo, aquí. 272 00:12:44,100 --> 00:12:50,220 Voy a dejar comentado todo ese for. 273 00:12:50,220 --> 00:12:53,980 Pues, todo ese for me lo ahorro ahora. 274 00:12:53,980 --> 00:12:56,300 Joder, es que no veo nada. 275 00:12:56,300 --> 00:13:02,900 Vale, todo este for me lo ahorro ahora y llamo directamente a, 276 00:13:02,900 --> 00:13:03,400 ¿ves? 277 00:13:03,400 --> 00:13:06,460 Y es que no veo nada. 278 00:13:06,460 --> 00:13:07,860 No os hagáis viejos. 279 00:13:07,860 --> 00:13:10,180 Joder, la madre que lo trajo. 280 00:13:10,180 --> 00:13:13,700 Vale, ya está. 281 00:13:13,700 --> 00:13:23,260 Vale, entonces, pedidos de i punto mostrar ítems. 282 00:13:23,260 --> 00:13:25,220 Ala. 283 00:13:25,220 --> 00:13:28,500 Ahora se ve mucho más claro. 284 00:13:28,500 --> 00:13:33,500 Todo esto lo he sustituido por la llamada al método. 285 00:13:33,500 --> 00:13:34,980 Y mucho más bonito y más claro. 286 00:13:42,780 --> 00:13:43,420 ¿Vale? 287 00:13:43,420 --> 00:13:48,060 Que ahora de repente la aplicación hay que cambiarla. 288 00:13:48,060 --> 00:13:51,260 Porque me han dicho, oye, el mensajito que muestras no me 289 00:13:51,260 --> 00:13:52,740 gusta, es muy feo. 290 00:13:52,740 --> 00:13:54,220 Pues, el main no se entera. 291 00:13:54,220 --> 00:13:56,540 El main sigue llamando a mostrar ítems. 292 00:13:56,580 --> 00:14:00,860 Y el desarrollador y programador se abre pedido y lo cambia aquí. 293 00:14:00,860 --> 00:14:02,420 Y lo cambia solo ahí. 294 00:14:02,420 --> 00:14:04,180 Y ya está, solo tiene que cambiar ahí. 295 00:14:04,180 --> 00:14:06,660 Y no tiene que irse a los tropecientos main, 296 00:14:06,660 --> 00:14:08,700 porque todos llaman directamente a ese. 297 00:14:08,700 --> 00:14:09,900 Todos llaman a mostrar ítem. 298 00:14:12,940 --> 00:14:13,940 ¿Vale? 299 00:14:13,940 --> 00:14:16,420 Entonces, no solo tiene que quedar claro cómo hacer las 300 00:14:16,420 --> 00:14:19,020 cosas, sino por qué se hacen así. 301 00:14:22,540 --> 00:14:25,060 Se hacen así porque si yo reproduzco este código en 20 302 00:14:25,100 --> 00:14:28,780 sitios, pues, a 20 sitios me voy a tener que ir a cambiarlo. 303 00:14:28,780 --> 00:14:32,540 Pero si lo tengo solo aquí y lo llamo desde donde sea, 304 00:14:32,540 --> 00:14:34,860 solo tengo que cambiar aquí en caso de necesitar un cambio. 305 00:14:42,460 --> 00:14:45,500 Vale, pues, lo que hemos hecho hasta aquí está claro. 306 00:14:45,500 --> 00:14:46,260 ¿Sí? 307 00:14:46,260 --> 00:14:47,980 Vale, vamos a seguir con funcionalidades. 308 00:14:47,980 --> 00:14:50,860 Vamos a meternos ahora con lo de Static, 309 00:14:50,860 --> 00:14:53,220 que en el fondo era lo que incorporamos ahí, 310 00:14:53,220 --> 00:14:54,980 lo que más nos se ve interesando. 311 00:14:54,980 --> 00:15:00,380 Bueno, pues, a ver, en nuestro main tenemos por ahora aparcado 312 00:15:00,380 --> 00:15:02,700 eliminar pedido, que será llamar al método, 313 00:15:02,700 --> 00:15:05,620 mostrar precio de un pedido, será llamar también un método. 314 00:15:05,620 --> 00:15:07,860 Los tenemos ahora mismo aparcados. 315 00:15:07,860 --> 00:15:09,420 El 6 lo hemos hecho. 316 00:15:09,420 --> 00:15:15,580 Vámonos al 7, que es, vamos a fijar el IVA de mi aplicación. 317 00:15:15,580 --> 00:15:21,260 Ahora mismo el IVA de mi aplicación decidimos guardarlo 318 00:15:21,260 --> 00:15:27,260 aquí como decisión de diseño, porque el IVA es un concepto que 319 00:15:27,260 --> 00:15:29,220 aplica los precios de los pedidos. 320 00:15:29,220 --> 00:15:31,660 Entonces, como aplica los precios de los pedidos, 321 00:15:31,660 --> 00:15:34,780 el IVA solo tiene sentido que exista si existen pedidos. 322 00:15:34,780 --> 00:15:38,220 Entonces, su ubicación tiene sentido que sea ahí, ¿vale? 323 00:15:38,220 --> 00:15:40,060 Eso fue una decisión de diseño. 324 00:15:40,060 --> 00:15:43,980 Y, de nuevo, tenía sentido decidir que fuera estática, 325 00:15:43,980 --> 00:15:45,940 porque como iba a ser igual para todos, 326 00:15:45,940 --> 00:15:48,740 todos los pedidos iban a tener el mismo valor en esta variable, 327 00:15:48,740 --> 00:15:50,460 pues, ¿para qué hacer una copia en todos? 328 00:15:50,460 --> 00:15:54,420 No, una única copia de la que tiren todos, ¿vale? 329 00:15:54,420 --> 00:15:56,020 A diferencia de código de descripción. 330 00:15:56,020 --> 00:15:59,020 En código de descripción cada pedido tiene su propia copia, 331 00:15:59,020 --> 00:16:03,140 pero en IVA hay una copia común para todos, pues, a la estática. 332 00:16:03,140 --> 00:16:07,660 Venga, pues, ahora habrá una funcionalidad por aquí que es 333 00:16:07,660 --> 00:16:09,300 fijar el IVA de la aplicación. 334 00:16:09,300 --> 00:16:13,540 Pues, venga, hacemos esa funcionalidad. 335 00:16:13,540 --> 00:16:15,100 El caso 7 este de aquí. 336 00:16:15,100 --> 00:16:16,700 Pues, habrá que pedir, ¿qué IVA quieres? 337 00:16:21,380 --> 00:16:21,880 Vale. 338 00:16:28,140 --> 00:16:30,900 Lo leeremos. 339 00:16:30,900 --> 00:16:33,300 El IVA, no sé si lo habíamos declarado común o double. 340 00:16:33,300 --> 00:16:36,860 Yo creo que común por seguridad, por comodidad. 341 00:16:36,860 --> 00:16:38,460 Pues, nada, lo leemos aquí. 342 00:16:38,460 --> 00:16:51,420 Y ahora ya, joder, scannex, acabo de preguntar que era int y 343 00:16:51,420 --> 00:16:52,380 le pongo el double. 344 00:16:52,380 --> 00:16:54,260 Vale. 345 00:16:54,260 --> 00:16:56,860 Y ahora ya, ¿qué queremos hacer con ese valor que hemos leído? 346 00:16:56,860 --> 00:17:01,820 Fijarlo en la propiedad estática IVA de los pedidos. 347 00:17:01,820 --> 00:17:05,820 A esa propiedad estática, como es una propiedad de la clase 348 00:17:05,820 --> 00:17:09,620 pedido, en general, las propiedades se acceden con el 349 00:17:09,620 --> 00:17:11,460 nombre del objeto. 350 00:17:11,460 --> 00:17:13,820 Pero aquí es que nos da igual. 351 00:17:13,820 --> 00:17:17,140 Acceder con él, por ejemplo, podríamos hacer esto, 352 00:17:17,140 --> 00:17:19,500 por ejemplo, ¿vale? 353 00:17:19,500 --> 00:17:26,420 Y estaríamos haciéndolo p0.iva pedidos. 354 00:17:26,420 --> 00:17:28,340 No, se llama en la raya pedidos, ¿verdad? 355 00:17:33,180 --> 00:17:33,660 Vale. 356 00:17:33,660 --> 00:17:36,980 Esto estaría bien porque yo he cogido un objeto pedido, 357 00:17:36,980 --> 00:17:39,660 en particular, el que está en posición cero, 358 00:17:39,660 --> 00:17:43,380 y a través de él accedo a IVA. 359 00:17:43,380 --> 00:17:45,380 Pero es que también estaría bien, 360 00:17:45,380 --> 00:17:48,820 sería exactamente lo mismo si yo hago esto. 361 00:17:48,820 --> 00:17:51,540 A ver, siempre y cuando en esas posiciones haya pedidos, 362 00:17:51,540 --> 00:17:55,820 porque si hay null, me va a dar un null.interception, ¿no? 363 00:17:55,820 --> 00:17:58,820 Me da igual acceder a un objeto que de otro que de otro, 364 00:17:58,820 --> 00:18:00,980 porque todos se acceden a la misma variable. 365 00:18:00,980 --> 00:18:03,540 Entonces, por eso, la forma de acceder, 366 00:18:03,540 --> 00:18:08,260 las variables estáticas, aunque se puede a través de un objeto 367 00:18:08,260 --> 00:18:11,060 concreto, no era a través de un objeto concreto, 368 00:18:11,060 --> 00:18:16,700 sino a través de qué, del nombre de la clase. 369 00:18:16,700 --> 00:18:21,180 Y como la clase se llama pedido, pues esta es la forma más 370 00:18:21,180 --> 00:18:25,260 bonita y más segura de acceder a esta propiedad. 371 00:18:29,380 --> 00:18:30,860 ¿Y por qué es la más segura? 372 00:18:30,860 --> 00:18:34,420 No solo es la más bonita, está claro que es la más bonita. 373 00:18:34,420 --> 00:18:36,340 ¿Pero por qué es la más segura? 374 00:18:36,340 --> 00:18:39,740 Porque imagínate que yo fijo el IVA al principio de todo. 375 00:18:39,740 --> 00:18:42,620 Al principio de todo, no hay ningún objeto pedido todavía. 376 00:18:42,620 --> 00:18:45,660 Luego, P0 es null, P1 es null, P2 es null. 377 00:18:45,660 --> 00:18:49,500 Entonces, si yo hago P0.iva, me va a salir null.interception. 378 00:18:49,500 --> 00:18:50,900 Porque si hago objeto null, punto, 379 00:18:50,900 --> 00:18:52,900 lo que sea null.interception. 380 00:18:52,900 --> 00:18:55,980 Pero si hago pedido IVA, ¿qué es lo que hace la máquina 381 00:18:55,980 --> 00:18:56,500 virtual? 382 00:18:56,500 --> 00:18:58,180 Pues lo que dijimos ayer. 383 00:18:58,180 --> 00:19:00,380 Dice, ah, no hay ningún objeto todavía. 384 00:19:00,380 --> 00:19:01,420 No pasa nada. 385 00:19:01,420 --> 00:19:05,100 La propiedad IVA puede existir aunque no haya ningún objeto. 386 00:19:05,100 --> 00:19:08,820 La hace aparecer y aparece ahí la propiedad IVA, 387 00:19:08,820 --> 00:19:11,420 aunque no exista ningún objeto. 388 00:19:11,420 --> 00:19:13,940 Entonces, ahí nunca va a salir null.interception. 389 00:19:13,940 --> 00:19:15,900 Que luego después aparecen objetos, vale. 390 00:19:15,900 --> 00:19:18,500 Pues los objetos están asociados a esa propiedad. 391 00:19:18,500 --> 00:19:22,300 Pero la propiedad puede existir en memoria a través de este 392 00:19:22,300 --> 00:19:26,820 nombre, aunque no exista ningún objeto. 393 00:19:26,820 --> 00:19:31,460 Y esas propiedades estáticas que existen para una clase, 394 00:19:31,460 --> 00:19:34,180 aunque no existan objetos, es lo que se llama, 395 00:19:34,180 --> 00:19:37,180 lo que llamamos ayer el contexto estático de una clase. 396 00:19:37,180 --> 00:19:40,260 O sea, el contexto estático de una clase son todas sus 397 00:19:40,260 --> 00:19:43,060 propiedades estáticas, todas las que tengan. 398 00:19:43,060 --> 00:19:45,940 0, 1, 2, 3, ese es el contexto estático. 399 00:19:45,940 --> 00:19:48,780 Y el contexto estático de una clase puede existir aunque no 400 00:19:48,780 --> 00:19:49,700 existan objetos. 401 00:19:49,700 --> 00:19:51,580 No pasa nada. 402 00:19:51,580 --> 00:19:53,220 ¿Vale? 403 00:19:53,220 --> 00:19:56,580 De hecho, si nosotros ejecutamos esta aplicación sin haber 404 00:19:57,340 --> 00:20:02,180 creado ningún objeto todavía, la ejecutamos otra vez. 405 00:20:02,180 --> 00:20:04,820 Y vamos a directamente darle la opción de fijar el IVA, 406 00:20:04,820 --> 00:20:05,940 directamente a las 7. 407 00:20:05,940 --> 00:20:07,820 No hay ningún objeto. 408 00:20:07,820 --> 00:20:10,700 18, ala, pues el IVA ya se ha quedado fijado. 409 00:20:10,700 --> 00:20:12,300 Y todavía no hay ningún objeto. 410 00:20:12,300 --> 00:20:15,740 Ahora ya podemos empezar a crear pedidos si queremos. 411 00:20:15,740 --> 00:20:22,500 Vale, pues, bueno, vamos a parar un momento.