1 00:00:01,060 --> 00:00:06,200 Bueno, pues hemos dicho entonces que íbamos a hacer el 14. 2 00:00:07,419 --> 00:00:10,980 Como de costumbre, pues primero lo leemos para hacernos una idea de qué va esto. 3 00:00:12,080 --> 00:00:14,779 Pues es hacer cosas con los vehículos. 4 00:00:15,480 --> 00:00:16,280 ¿Cosas como cuál? 5 00:00:16,620 --> 00:00:18,859 Pues ver lo que han gastado en cada trayecto. 6 00:00:19,640 --> 00:00:19,820 Vale. 7 00:00:21,120 --> 00:00:27,100 Entonces, la entidad vehículo que es con la que vamos a trabajar se va a caracterizar por cosas para hacer esos cálculos. 8 00:00:27,780 --> 00:00:29,660 Una, lo que gasta por combustible. 9 00:00:30,239 --> 00:00:32,460 Perdón, lo que gasta por kilómetro recorrido. 10 00:00:33,439 --> 00:00:37,579 Solamente se caracteriza por esto porque esta aplicación lo único que hace es calcular gastos. 11 00:00:37,960 --> 00:00:38,240 Ya está. 12 00:00:38,719 --> 00:00:44,320 Entonces, como lo único que hace es calcular gastos, pues el gasto por kilómetro. 13 00:00:44,320 --> 00:00:46,079 Es lo único que necesitamos del vehículo. 14 00:00:46,679 --> 00:00:47,280 Ya está. 15 00:00:48,799 --> 00:00:53,079 Vale, pues entonces vamos a empezar haciendo esa primera entidad. 16 00:00:54,799 --> 00:01:00,899 Entonces, pues ejercicio 14. 17 00:01:00,899 --> 00:01:09,939 vale, y el ejercicio 14 tiene una clase 18 00:01:09,939 --> 00:01:12,739 vehículo 19 00:01:12,739 --> 00:01:21,719 bueno, propiedades del vehículo 20 00:01:21,719 --> 00:01:23,319 el gasto por combustible 21 00:01:23,319 --> 00:01:26,079 por defecto en condiciones normales 22 00:01:26,079 --> 00:01:28,819 pues las propiedades las hacemos de ámbito privado 23 00:01:28,819 --> 00:01:31,219 y luego ya que los métodos Getty Set 24 00:01:31,219 --> 00:01:34,400 decidan si las ofrecen al exterior 25 00:01:34,400 --> 00:01:37,340 para consulta y o escritura 26 00:01:37,340 --> 00:01:39,620 pues el gasto por combustible 27 00:01:39,620 --> 00:01:41,260 Perdón, jodín 28 00:01:41,260 --> 00:01:42,540 El gasto por kilómetro 29 00:01:42,540 --> 00:01:43,719 Un double 30 00:01:43,719 --> 00:01:48,359 No, es 31 00:01:48,359 --> 00:01:50,680 Otra cosa 32 00:01:50,680 --> 00:01:52,680 Que es desde la propia clase 33 00:01:52,680 --> 00:01:54,200 Perdón, desde el propio paquete 34 00:01:54,200 --> 00:01:56,439 Private es 35 00:01:56,439 --> 00:01:57,859 Solo desde la clase 36 00:01:57,859 --> 00:01:59,219 Public es 37 00:01:59,219 --> 00:02:02,400 Desde cualquier clase de cualquier otro paquete 38 00:02:02,400 --> 00:02:03,939 Y nada 39 00:02:03,939 --> 00:02:06,579 Es desde este paquete 40 00:02:06,579 --> 00:02:09,039 Son tres posibilidades distintas 41 00:02:10,830 --> 00:02:17,169 Bueno, pues entonces, para que esta propiedad se pueda establecer o se pueda recuperar desde fuera, 42 00:02:17,289 --> 00:02:19,169 tenemos que hacer sus getter y sus setter, claro. 43 00:02:20,150 --> 00:02:26,530 Pues venga, hacemos sus getter y sus setter, que estos ya sí que son públicos. 44 00:02:27,370 --> 00:02:30,430 Quien quiera ver el gasto por kilómetro del coche llamará a este método. 45 00:02:31,129 --> 00:02:35,710 Y el que quiera cambiar el gasto por kilómetro del coche, porque ha cambiado por lo que sea, 46 00:02:35,870 --> 00:02:39,710 llama a ese método, que ya sí que son públicos. 47 00:02:39,710 --> 00:02:43,490 Vale, para facilitar la tarea de instanciar un coche 48 00:02:43,490 --> 00:02:45,349 Y darle valor a su propiedad 49 00:02:45,349 --> 00:02:46,889 Vamos a hacer un constructor 50 00:02:46,889 --> 00:02:59,479 ¿No viniste a clase ni viste la grabación? 51 00:03:00,400 --> 00:03:01,360 Pues muy mal 52 00:03:01,360 --> 00:03:03,340 Porque entonces lo habrías visto 53 00:03:03,340 --> 00:03:06,340 Botón derecho, source 54 00:03:06,340 --> 00:03:07,879 Vale 55 00:03:07,879 --> 00:03:14,360 Vale, pues ya tenemos el kilómetro 56 00:03:14,360 --> 00:03:15,039 Uy, el kilómetro 57 00:03:15,039 --> 00:03:16,300 El constructor 58 00:03:16,300 --> 00:03:21,840 Este constructor será llamado cuando se instancie el objeto 59 00:03:21,840 --> 00:03:28,580 En ese momento pasamos un valor para esa propiedad y se utiliza para inicializar esa propiedad. 60 00:03:29,199 --> 00:03:37,139 Bueno, pues esta es lo que viene a ser una entidad normal y corriente, una entidad vehículo. 61 00:03:38,400 --> 00:03:40,039 ¿Para qué sirve esta aplicación? 62 00:03:40,520 --> 00:03:46,599 Esta aplicación sirve para calcular lo que me gasto yo cuando recorro una trayectoria. 63 00:03:46,599 --> 00:03:50,659 pues entonces tendré que ser capaz 64 00:03:50,659 --> 00:03:53,460 de representar el objeto trayectoria 65 00:03:53,460 --> 00:03:57,159 esta aplicación trabaja con vehículos 66 00:03:57,159 --> 00:03:59,159 está claro, ya hemos hecho una clase para ellos 67 00:03:59,159 --> 00:04:01,780 pero también va a trabajar con trayectorias 68 00:04:01,780 --> 00:04:05,699 porque es una aplicación que dada una trayectoria 69 00:04:05,699 --> 00:04:08,400 me va a decir lo que gasta este vehículo 70 00:04:08,400 --> 00:04:11,639 entonces, ¿cómo podemos caracterizar 71 00:04:11,639 --> 00:04:13,159 una trayectoria? 72 00:04:13,159 --> 00:04:17,740 En un ámbito digital, claro 73 00:04:17,740 --> 00:04:20,139 Pues vamos a tener que, lógicamente 74 00:04:20,139 --> 00:04:23,829 Cuantificarla de alguna manera 75 00:04:23,829 --> 00:04:24,470 Entonces 76 00:04:24,470 --> 00:04:26,509 Uy va 77 00:04:26,509 --> 00:04:28,110 Si esta es 78 00:04:28,110 --> 00:04:35,029 Si esta es una trayectoria, bum bum bum 79 00:04:35,029 --> 00:04:37,850 Vale, yo como la mido 80 00:04:37,850 --> 00:04:39,689 Como la mido para pasársela 81 00:04:39,689 --> 00:04:41,509 Luego al método que calcule 82 00:04:41,509 --> 00:04:42,730 El gasto, como la mido 83 00:04:42,730 --> 00:04:45,029 Pues hombre, voy a tener que 84 00:04:45,029 --> 00:04:47,449 Rectificarla, pues una forma posible es 85 00:04:47,449 --> 00:05:02,370 Voy a tomar muestras en diferentes puntitos, voy a tomar muestras y la trayectoria se va a caracterizar por toda la sucesión de puntos, lo que puede ser una raíz de puntos, ¿verdad? La trayectoria se va a caracterizar por un montón de puntitos. 86 00:05:02,370 --> 00:05:05,170 Y ahora ya, la trayectoria total 87 00:05:05,170 --> 00:05:06,389 ¿Cuál va a ser? 88 00:05:06,529 --> 00:05:09,189 La suma de las distancias entre los puntos 89 00:05:09,189 --> 00:05:10,069 ¿Vale? 90 00:05:10,649 --> 00:05:12,230 La suma de las distancias entre los puntos 91 00:05:12,230 --> 00:05:15,149 ¿No va a ser exactamente la distancia? 92 00:05:15,689 --> 00:05:16,810 Dependerá de cómo de cerca 93 00:05:16,810 --> 00:05:17,970 Tome yo los puntitos, ¿no? 94 00:05:18,329 --> 00:05:19,769 O sea, si mi trayectoria es esta 95 00:05:19,769 --> 00:05:22,750 Y yo tomo un punto aquí, otro aquí y otro aquí 96 00:05:22,750 --> 00:05:24,870 La trayectoria 97 00:05:24,870 --> 00:05:25,829 Me va a salir 98 00:05:25,829 --> 00:05:27,529 La medida me va a salir esto 99 00:05:27,529 --> 00:05:31,069 Es una aproximación, pero es una aproximación un poco grosera 100 00:05:31,069 --> 00:05:33,970 aproximarla por esta distancia y esta distancia 101 00:05:33,970 --> 00:05:37,350 si quiero que la aproximación a la trayectoria real 102 00:05:37,350 --> 00:05:40,750 sea más fiel, pues tendré que tomar más puntitos 103 00:05:40,750 --> 00:05:43,250 más cerca, entonces ya la aproximación 104 00:05:43,250 --> 00:05:46,389 está mucho más afinada 105 00:05:46,389 --> 00:05:50,050 ¿verdad? cuanto más puntos tome yo de muestra 106 00:05:50,050 --> 00:05:52,269 de esa trayectoria real, más puntos tome 107 00:05:52,269 --> 00:05:55,910 más se va a aproximar la medida 108 00:05:55,910 --> 00:05:58,410 la estimación a la medida real 109 00:05:58,410 --> 00:06:00,970 esto en un caso límite 110 00:06:00,970 --> 00:06:03,029 si os acordáis de los límites de las matemáticas 111 00:06:03,029 --> 00:06:04,029 de segundo de bachillerato 112 00:06:04,029 --> 00:06:05,990 pues el límite 113 00:06:05,990 --> 00:06:09,350 cuando el número de puntos tiende a infinito 114 00:06:09,350 --> 00:06:12,089 es la distancia real 115 00:06:12,089 --> 00:06:13,769 pero el límite 116 00:06:13,769 --> 00:06:14,769 es un concepto astral 117 00:06:14,769 --> 00:06:18,089 el límite no se puede cuantificar 118 00:06:18,089 --> 00:06:19,949 pero sí que podemos 119 00:06:19,949 --> 00:06:21,310 poner un montón de puntitos 120 00:06:21,310 --> 00:06:23,670 conclusión 121 00:06:23,670 --> 00:06:25,490 hemos decidido 122 00:06:25,490 --> 00:06:27,730 podría haber sido de otra manera pero hemos decidido 123 00:06:27,730 --> 00:06:31,689 que para cuantificar una trayectoria, 124 00:06:31,829 --> 00:06:33,750 que es otro dato que mi aplicación necesita, 125 00:06:34,550 --> 00:06:36,509 voy a utilizar un montón de puntos. 126 00:06:37,709 --> 00:06:39,709 ¿Qué es un montón de algo en Java? 127 00:06:39,870 --> 00:06:40,389 Pues un array. 128 00:06:41,250 --> 00:06:44,149 Pues un array de puntos me va a caracterizar la trayectoria. 129 00:06:45,250 --> 00:06:47,949 Pues estoy hablando de punto como si punto fuera algo. 130 00:06:48,149 --> 00:06:49,870 ¿Punto es un int? ¿Punto es un double? 131 00:06:50,290 --> 00:06:50,529 No. 132 00:06:51,069 --> 00:06:52,769 Punto es una posición en el plano. 133 00:06:53,769 --> 00:06:56,470 Una posición en el plano no es un tipo de variable, 134 00:06:56,470 --> 00:06:58,310 no es un tipo de dato estándar de Java 135 00:06:58,310 --> 00:06:59,990 el plano es esto 136 00:06:59,990 --> 00:07:02,569 y una posición en el plano es esto 137 00:07:02,569 --> 00:07:03,709 o esto, o esto 138 00:07:03,709 --> 00:07:05,689 es decir, una posición en el plano 139 00:07:05,689 --> 00:07:08,930 es una coordenada X y una coordenada Y 140 00:07:08,930 --> 00:07:10,970 eso es una posición en el plano 141 00:07:10,970 --> 00:07:12,689 y eso no es un tipo 142 00:07:12,689 --> 00:07:14,670 de dato estándar, no es un int, no es un double 143 00:07:14,670 --> 00:07:16,629 es un tipo de 144 00:07:16,629 --> 00:07:18,310 dato que me voy a tener que crear 145 00:07:18,310 --> 00:07:19,209 porque es 146 00:07:19,209 --> 00:07:21,990 la combinación de dos cosas 147 00:07:21,990 --> 00:07:23,769 son dos valores, ¿vale? 148 00:07:24,149 --> 00:07:25,689 una posición en el plano 149 00:07:25,689 --> 00:07:27,670 que eso es lo que es un punto 150 00:07:27,670 --> 00:07:29,050 una posición en el plano 151 00:07:29,050 --> 00:07:31,009 está formada por dos valores 152 00:07:31,009 --> 00:07:33,449 coordenada X, coordenada Y 153 00:07:33,449 --> 00:07:34,970 luego 154 00:07:34,970 --> 00:07:37,670 voy a tener que hacerme una clase punto 155 00:07:37,670 --> 00:07:39,850 porque el tipo de dato punto no existe 156 00:07:39,850 --> 00:07:41,149 no existe el tipo de dato 157 00:07:41,149 --> 00:07:42,430 par de valores 158 00:07:42,430 --> 00:07:44,529 ese tipo de dato no existe 159 00:07:44,529 --> 00:07:47,230 pues entonces aquí nos surge ya la necesidad 160 00:07:47,230 --> 00:07:49,209 de crearnos otra clase 161 00:07:49,209 --> 00:07:51,610 para especificar ya un tipo 162 00:07:51,610 --> 00:07:53,089 de dato nuestro propio 163 00:07:53,089 --> 00:07:55,509 que es la combinación de una 164 00:07:55,509 --> 00:07:56,709 coordenada X y otra Y. 165 00:07:58,089 --> 00:07:59,730 Y ahora ya, cuando tengamos esa clase 166 00:07:59,730 --> 00:08:01,629 punto, ya podremos hacer 167 00:08:01,629 --> 00:08:03,589 array de puntos. Y un array 168 00:08:03,589 --> 00:08:05,750 de puntos, ¿qué va a ser? Una trayectoria. 169 00:08:07,149 --> 00:08:07,490 Podríamos 170 00:08:07,490 --> 00:08:09,829 hacernos, de hecho, otra clase trayectoria. 171 00:08:10,610 --> 00:08:11,649 ¿Qué vamos a hacer? 172 00:08:12,430 --> 00:08:13,649 Para cuya 173 00:08:13,649 --> 00:08:15,490 propiedad fuera el array de puntos 174 00:08:15,490 --> 00:08:16,689 que la forman, por ejemplo. 175 00:08:17,410 --> 00:08:19,730 Tendríamos tres clases. El vehículo 176 00:08:19,730 --> 00:08:21,509 que guarda el gasto por kilómetro. 177 00:08:22,750 --> 00:08:23,529 La clase 178 00:08:23,529 --> 00:08:25,490 punto que representa una posición en el 179 00:08:25,490 --> 00:08:32,149 plano y la clase trayectoria que representa un montón de puntos. Y ya con eso mi aplicación 180 00:08:32,149 --> 00:08:37,230 ya hará sus métodos, trabajará, operará, pues como toque hacerlo, ya veremos cómo. 181 00:08:38,230 --> 00:08:44,250 Pero primero, antes de empezar a decidir qué hacer, hay que tomar la decisión sobre qué 182 00:08:44,250 --> 00:08:52,009 hay y cómo caracterizarlo. Pues aquí qué hay, coches con su gasto por kilómetro, puntos 183 00:08:52,009 --> 00:08:53,350 con sus dos coordenadas 184 00:08:53,350 --> 00:08:56,070 y trayectorias, un montón de puntitos 185 00:08:56,070 --> 00:08:56,889 eso es lo que hay 186 00:08:56,889 --> 00:08:59,230 una vez que tenemos claro lo que hay 187 00:08:59,230 --> 00:09:01,570 y cómo se caracteriza 188 00:09:01,570 --> 00:09:03,830 es decir, qué propiedades tiene dentro 189 00:09:03,830 --> 00:09:05,870 una vez que eso ya hemos hecho una foto 190 00:09:05,870 --> 00:09:06,730 ya sabemos lo que hay 191 00:09:06,730 --> 00:09:10,090 ahora ya pongámonos a hacer código 192 00:09:10,090 --> 00:09:12,149 a hacer métodos que ejecutan cosas 193 00:09:12,149 --> 00:09:15,509 ¿qué trayectoria se puede hacer una raíz de puntos? 194 00:09:16,169 --> 00:09:18,690 pues por meter una entidad más 195 00:09:18,690 --> 00:09:20,450 vamos a una trayectoria 196 00:09:20,450 --> 00:09:22,070 que se caracteriza por una raíz de puntos 197 00:09:22,070 --> 00:09:24,590 porque va a quedar la aplicación más clara 198 00:09:24,590 --> 00:09:25,509 si tú ahora un método 199 00:09:25,509 --> 00:09:27,570 en lugar de pasarle raíz de puntos 200 00:09:27,570 --> 00:09:29,690 le pasas un objeto trayectoria 201 00:09:29,690 --> 00:09:31,169 cuando alguien ve el método 202 00:09:31,169 --> 00:09:33,090 ya sabe que eso trabaja con 203 00:09:33,090 --> 00:09:35,009 una trayectoria para lo que sea 204 00:09:35,009 --> 00:09:36,690 pasas una raíz de puntos 205 00:09:36,690 --> 00:09:39,309 puede representar muchas más cosas 206 00:09:39,309 --> 00:09:40,610 entonces 207 00:09:40,610 --> 00:09:43,090 la razón de hecho sería 208 00:09:43,090 --> 00:09:44,169 para hacer un diseño 209 00:09:44,169 --> 00:09:45,389 más claro 210 00:09:45,389 --> 00:09:47,809 a los ojos del que echa un vistazo al código 211 00:09:47,809 --> 00:09:48,590 ¿vale? 212 00:09:48,629 --> 00:09:50,210 no pasa nada por hacer una clase más 213 00:09:50,210 --> 00:09:51,730 si clases puede haber 2.000 millones, 214 00:09:52,350 --> 00:09:55,690 si estimamos que ayudan a dejar el código claro, 215 00:09:56,649 --> 00:09:58,970 esa sería la razón de alguna manera real. 216 00:09:59,929 --> 00:10:01,190 Nosotros además ahora la vamos a poner, 217 00:10:01,289 --> 00:10:02,129 ya que nos hemos puesto, 218 00:10:02,409 --> 00:10:04,309 pues para practicar más, 219 00:10:04,429 --> 00:10:06,090 con pasar objetos de clases, etc. 220 00:10:06,090 --> 00:10:06,649 ¿Vale? 221 00:10:08,450 --> 00:10:09,370 Pues venga. 222 00:10:12,629 --> 00:10:14,309 Vamos a hacernos esas clases. 223 00:10:17,990 --> 00:10:19,490 Vale, el vehículo ya estaba. 224 00:10:20,230 --> 00:10:21,470 Entonces, vamos a hacernos punto. 225 00:10:23,250 --> 00:10:26,649 vale, vamos a hacernos la clase punto 226 00:10:26,649 --> 00:10:32,549 la clase punto 227 00:10:32,549 --> 00:10:36,330 la trayectoria 228 00:10:36,330 --> 00:10:39,029 claro, la clase trayectoria se caracterizaría 229 00:10:39,029 --> 00:10:40,389 solamente por la raíz de puntos 230 00:10:40,389 --> 00:10:42,570 pero claro, la aplicación se haría 231 00:10:42,570 --> 00:10:44,830 si elegimos una clase trayectoria 232 00:10:44,830 --> 00:10:47,210 la aplicación automáticamente se convertiría 233 00:10:47,210 --> 00:10:49,029 en una aplicación escalable, por ejemplo 234 00:10:49,029 --> 00:10:51,549 que si dejamos la trayectoria como raíz de puntos 235 00:10:51,549 --> 00:10:52,970 sería muy difícilmente escalable 236 00:10:52,970 --> 00:10:54,490 ¿qué quiero decir con escalable? 237 00:10:54,490 --> 00:10:59,610 que cualquier actualización, cualquier incorporación 238 00:10:59,610 --> 00:11:02,549 de funcionalidades añadidas va a ser más fácil. 239 00:11:03,309 --> 00:11:07,190 Una aplicación muy escalable significa que puedo escalar 240 00:11:07,190 --> 00:11:09,110 su funcionalidad o lo que es lo mismo, 241 00:11:09,110 --> 00:11:13,169 que puede incorporarle funcionalidades de forma muy sencilla. 242 00:11:13,669 --> 00:11:15,850 Una aplicación poco escalable implica, 243 00:11:16,389 --> 00:11:18,070 le voy a incorporar funcionalidades nuevas, 244 00:11:18,309 --> 00:11:19,889 tengo que hacer un montón de retoques. 245 00:11:20,590 --> 00:11:23,570 Entonces, una aplicación que tiene una clase trayectoria 246 00:11:23,570 --> 00:11:25,850 y está planteada con esa clase trayectoria 247 00:11:25,850 --> 00:11:27,789 y dices, voy a incorporar 248 00:11:27,789 --> 00:11:29,710 una funcionalidad más, que es además 249 00:11:29,710 --> 00:11:31,610 de la trayectoria, ponerle 250 00:11:31,610 --> 00:11:33,669 la cualidad del terreno, porque 251 00:11:33,669 --> 00:11:35,870 si el terreno es muy rugoso, el coche salta 252 00:11:35,870 --> 00:11:37,830 y gasta más, por ejemplo 253 00:11:37,830 --> 00:11:40,049 eso sería escalar la aplicación 254 00:11:40,049 --> 00:11:41,169 añadir una funcionalidad 255 00:11:41,169 --> 00:11:43,830 si tú tienes ya una clase trayectoria 256 00:11:43,830 --> 00:11:45,470 que se caracteriza por su array de puntos 257 00:11:45,470 --> 00:11:47,710 dices, magnífico, le meto otra 258 00:11:47,710 --> 00:11:48,789 propiedad que sea 259 00:11:48,789 --> 00:11:51,730 dificultad del terreno, y es mucho 260 00:11:51,730 --> 00:11:52,970 más bonito, más natural 261 00:11:52,970 --> 00:11:54,730 La ampliación 262 00:11:54,730 --> 00:11:56,850 Si tú has trabajado con 263 00:11:56,850 --> 00:11:59,210 Array de puntos como trayectorias sueltos 264 00:11:59,210 --> 00:11:59,789 Aquí y allí 265 00:11:59,789 --> 00:12:02,610 Y de repente tienes que meter la rugosidad del terreno 266 00:12:02,610 --> 00:12:05,389 Vas a tener que retocar los cálculos en muchos sitios 267 00:12:05,389 --> 00:12:06,769 ¿Vale? 268 00:12:08,370 --> 00:12:09,669 Venga, pues entonces 269 00:12:09,669 --> 00:12:11,889 Punto se caracteriza 270 00:12:11,889 --> 00:12:13,350 Solo por sus coordenadas 271 00:12:13,350 --> 00:12:16,309 ¿Coordenadas de Abel también? 272 00:12:16,450 --> 00:12:16,850 Pues sí 273 00:12:16,850 --> 00:12:18,049 X e Y 274 00:12:18,049 --> 00:12:22,070 X e Y son nombres en este caso 275 00:12:22,070 --> 00:12:24,429 bien elegidos 276 00:12:24,429 --> 00:12:25,850 porque normalmente las llamamos así 277 00:12:25,850 --> 00:12:27,570 el eje de abscisas la llamamos X 278 00:12:27,570 --> 00:12:29,250 y el eje de ordenada lo llamamos Y 279 00:12:29,250 --> 00:12:40,259 sí, pero eso sí que 280 00:12:40,259 --> 00:12:41,600 quizás complicarlo un poco 281 00:12:41,600 --> 00:12:44,320 esto es muy intuitivo, X e Y 282 00:12:44,320 --> 00:12:45,879 tú ves el nombre, ves rápidamente 283 00:12:45,879 --> 00:12:47,279 coordenada X, coordenada Y 284 00:12:47,279 --> 00:12:49,559 y usar un array 285 00:12:49,559 --> 00:12:52,419 solo para englobar dos cosas 286 00:12:52,419 --> 00:12:54,639 quizás matar moscas a cañonazos 287 00:12:54,639 --> 00:12:56,179 otra cosa es que 288 00:12:56,179 --> 00:12:57,360 tú tuvieras un espacio 289 00:12:57,360 --> 00:12:59,340 n dimensional 290 00:12:59,340 --> 00:13:01,379 de 20 coordenadas 291 00:13:01,379 --> 00:13:02,899 un espacio de 20 coordenadas 292 00:13:02,899 --> 00:13:05,500 pues entonces poner las 20 coordenadas sueltas 293 00:13:05,500 --> 00:13:07,440 sería muy pesado, entonces ahí podríamos hacer un array 294 00:13:07,440 --> 00:13:09,659 para todas las coordenadas, pero va a un espacio 295 00:13:09,659 --> 00:13:11,440 de dos dimensiones, queda casi más claro 296 00:13:11,440 --> 00:13:13,559 poner x y que meterlo 297 00:13:13,559 --> 00:13:15,559 en un array, pero sí, podríamos, pero quizás 298 00:13:15,559 --> 00:13:17,840 es un poquito más, lo estás complicando 299 00:13:17,840 --> 00:13:19,720 a lo igual sin necesidad 300 00:13:19,720 --> 00:13:20,320 en este caso 301 00:13:20,320 --> 00:13:23,799 vale, pues hacemos los get y los set 302 00:13:23,799 --> 00:13:25,559 de las propiedades 303 00:13:25,559 --> 00:13:29,789 Posibilidades y el constructor. 304 00:13:40,190 --> 00:13:40,429 ¡Hala! 305 00:13:41,090 --> 00:13:41,549 Ya está. 306 00:13:42,669 --> 00:13:45,190 Nuestra clase punto con su constructor Getty Set. 307 00:13:45,929 --> 00:13:46,250 Vale. 308 00:13:49,250 --> 00:13:52,629 Vamos a hacer el objeto trayectoria ahora cuando lo necesitemos. 309 00:13:52,710 --> 00:13:55,529 Para comparar un poquito cómo serían las dos posibilidades. 310 00:13:56,190 --> 00:13:57,549 Con objeto trayectoria y sin él. 311 00:13:58,769 --> 00:14:01,090 A ver, hay mucho ruido de fondo. 312 00:14:02,269 --> 00:14:03,309 Y así no se puede. 313 00:14:04,169 --> 00:14:04,450 Venga. 314 00:14:05,149 --> 00:14:06,789 Por ahora vamos a dejar esta en su trayectoria 315 00:14:06,789 --> 00:14:08,590 y vamos a incorporarlo cuando lo necesitemos 316 00:14:08,590 --> 00:14:10,429 para ver un poquito cómo serían las dos posibilidades. 317 00:14:10,549 --> 00:14:10,870 Repito. 318 00:14:11,929 --> 00:14:14,370 Vale, tenemos la clase punto y la clase vehículo. 319 00:14:15,289 --> 00:14:16,409 Ahora, ¿qué más dice? 320 00:14:16,889 --> 00:14:17,789 La clase punto. 321 00:14:18,710 --> 00:14:21,610 Como vamos a necesitar calcular la distancia entre dos puntos 322 00:14:21,610 --> 00:14:24,470 y eso es una cosa que se hace con puntos, 323 00:14:25,289 --> 00:14:27,269 pues vamos a meter un método en la clase punto 324 00:14:27,269 --> 00:14:29,090 para calcular la distancia 325 00:14:29,090 --> 00:14:31,450 entre un punto que llame al método 326 00:14:31,450 --> 00:14:33,210 y el que se le pasa por parámetro. 327 00:14:33,210 --> 00:14:37,210 entonces distancia entre dos puntos 328 00:14:37,210 --> 00:14:38,570 es esta fórmula 329 00:14:38,570 --> 00:14:41,070 la distancia entre dos puntos 330 00:14:41,070 --> 00:14:43,169 ya es un método, algo que hay que operar 331 00:14:43,169 --> 00:14:44,830 ¿dónde lo coloco? 332 00:14:44,889 --> 00:14:47,129 ese método en la clase punto porque afecta 333 00:14:47,129 --> 00:14:49,169 a puntos, vale, pues que este método 334 00:14:49,169 --> 00:14:50,889 se coloca en la clase punto está claro 335 00:14:50,889 --> 00:14:53,230 pues lo colocamos 336 00:14:53,230 --> 00:14:55,629 en la clase punto el método distancia 337 00:14:55,629 --> 00:15:02,370 vale, distancia 338 00:15:02,370 --> 00:15:04,049 ¿qué me va a devolver? una distancia 339 00:15:04,049 --> 00:15:05,509 entre puntos que va a ser un double 340 00:15:05,509 --> 00:15:08,350 pues dabble, voy a etiquetarlo 341 00:15:08,350 --> 00:15:10,110 como public para permitir 342 00:15:10,110 --> 00:15:12,250 usar este método desde fuera del 343 00:15:12,250 --> 00:15:14,110 paquete, si es que lo voy a usar 344 00:15:14,110 --> 00:15:16,090 desde fuera del paquete, aquí estamos 345 00:15:16,090 --> 00:15:17,909 en todas las clases, en el mismo da igual 346 00:15:17,909 --> 00:15:20,250 pero en general, lo normal 347 00:15:20,250 --> 00:15:22,070 es que alguien tuviera la aplicación 348 00:15:22,070 --> 00:15:24,169 aquí y usara estas clases que están en este otro 349 00:15:24,169 --> 00:15:26,029 paquete de modelo, entonces necesitaría el public 350 00:15:26,029 --> 00:15:28,669 vale, ahora viene lo más importante 351 00:15:28,669 --> 00:15:29,950 ¿qué parámetros 352 00:15:29,950 --> 00:15:31,690 necesita el método distancia? 353 00:15:32,590 --> 00:15:34,090 bueno, lo que 354 00:15:34,090 --> 00:15:35,590 me dice el enunciado es 355 00:15:35,590 --> 00:15:37,750 a este método lo va a llamar un punto 356 00:15:37,750 --> 00:15:39,990 eso está claro, a este método lo llama un punto 357 00:15:39,990 --> 00:15:41,850 porque a los métodos los llaman los objetos 358 00:15:41,850 --> 00:15:44,149 luego ya tengo el primer punto de los 359 00:15:44,149 --> 00:15:45,970 dos, para calcular la distancia 360 00:15:45,970 --> 00:15:47,850 pues ¿cuál es el segundo 361 00:15:47,850 --> 00:15:49,769 punto del cual vamos a calcular la distancia? 362 00:15:50,190 --> 00:15:52,110 ese ya sí que se lo tengo que pasar por parámetro 363 00:15:52,110 --> 00:15:53,990 luego este 364 00:15:53,990 --> 00:15:55,950 método, del punto que 365 00:15:55,950 --> 00:15:57,950 llame al método, me va a calcular la distancia con 366 00:15:57,950 --> 00:15:59,190 ese que le paso desde fuera 367 00:15:59,190 --> 00:16:02,070 bueno, pues 368 00:16:02,070 --> 00:16:03,830 entonces, para pasarle un objeto 369 00:16:03,830 --> 00:16:05,950 punto, pues 370 00:16:05,950 --> 00:16:06,909 esto, por ejemplo. 371 00:16:08,710 --> 00:16:08,970 ¿Vale? 372 00:16:11,759 --> 00:16:13,200 Entonces, aquí tengo 373 00:16:13,200 --> 00:16:14,840 las coordenadas 374 00:16:14,840 --> 00:16:17,379 del punto que llame al método. 375 00:16:23,600 --> 00:16:25,340 Las coordenadas del punto que llama 376 00:16:25,340 --> 00:16:27,419 al método son estas dos que tengo aquí arriba. 377 00:16:27,639 --> 00:16:28,259 X e Y. 378 00:16:29,799 --> 00:16:31,220 X e Y. 379 00:16:31,899 --> 00:16:33,399 Esas son las coordenadas 380 00:16:33,399 --> 00:16:34,659 del punto que llame al método. 381 00:16:35,399 --> 00:16:37,340 ¿Y cuáles van a ser las coordenadas 382 00:16:38,080 --> 00:16:41,139 del 383 00:16:41,139 --> 00:16:41,799 punto 384 00:16:41,799 --> 00:16:44,519 Pasado como parámetro 385 00:16:44,519 --> 00:16:48,759 El punto pasado como parámetro es P 386 00:16:48,759 --> 00:16:50,860 Sus coordenadas son 387 00:16:50,860 --> 00:16:53,080 P.getX 388 00:16:53,080 --> 00:16:56,539 Y P.getY 389 00:16:56,539 --> 00:16:59,299 Esas son sus coordenadas 390 00:16:59,299 --> 00:17:01,320 La que me da el método get 391 00:17:01,320 --> 00:17:02,679 Del objeto P 392 00:17:02,679 --> 00:17:05,140 Y la que me da el método get 393 00:17:05,140 --> 00:17:06,019 Del objeto P 394 00:17:06,019 --> 00:17:09,599 Estas dos son las del punto 395 00:17:09,599 --> 00:17:10,380 Que llama el método 396 00:17:10,380 --> 00:17:11,160 Que son las de arriba 397 00:17:11,160 --> 00:17:14,880 y estas dos son las coordenadas del punto P 398 00:17:14,880 --> 00:17:18,099 porque P al ser de la clase punto 399 00:17:18,099 --> 00:17:21,680 puede llamar a sus get para sacar sus coordenadas 400 00:17:21,680 --> 00:17:24,700 bueno, pues ya tengo los dos pares de coordenadas 401 00:17:24,700 --> 00:17:26,519 ahora aplico la fórmula que me han dado 402 00:17:26,519 --> 00:17:29,940 y la fórmula es la raíz cuadrada de la diferencia 403 00:17:29,940 --> 00:17:31,779 vamos a hacer primero la diferencia y luego hacemos la raíz 404 00:17:31,779 --> 00:17:43,759 sería x menos p punto get x 405 00:17:43,759 --> 00:17:45,420 todo esto al cuadrado 406 00:17:45,420 --> 00:17:47,599 o lo que es lo mismo multiplicado por sí mismo 407 00:17:47,599 --> 00:17:53,150 todo esto multiplicado por sí mismo 408 00:17:53,150 --> 00:17:54,210 porque es al cuadrado 409 00:17:54,210 --> 00:17:58,579 más 410 00:17:58,579 --> 00:18:01,119 lo mismo pero con la i 411 00:18:01,119 --> 00:18:19,869 vale 412 00:18:19,869 --> 00:18:21,329 con esto 413 00:18:21,329 --> 00:18:24,970 he hecho la primera parte de la fórmula 414 00:18:24,970 --> 00:18:25,630 que es 415 00:18:25,630 --> 00:18:29,980 esta, esta de aquí 416 00:18:29,980 --> 00:18:31,420 la suma 417 00:18:31,420 --> 00:18:34,339 del cuadrado de las diferencias de las coordenadas 418 00:18:34,339 --> 00:18:35,900 he hecho la primera parte 419 00:18:35,900 --> 00:18:38,440 me falta la raíz cuadrada 420 00:18:38,440 --> 00:18:42,420 de todo esto. Pero bueno, ya me dicen, ¿cómo puedo hacer la raíz cuadrada? Pues ahora mismo 421 00:18:42,420 --> 00:18:46,380 que sepamos que hay un método que se llama SQRT 422 00:18:46,380 --> 00:18:50,539 para hacer la raíz cuadrada de algo y que puedo llamar a ese 423 00:18:50,539 --> 00:18:54,000 método como math. Vale, pues entonces 424 00:18:54,000 --> 00:18:58,019 la verdadera distancia será 425 00:18:58,019 --> 00:19:01,500 eso, la raíz cuadrada 426 00:19:01,500 --> 00:19:06,500 de esto que acabo de calcular. Esto 427 00:19:06,500 --> 00:19:08,319 a ser la verdadera distancia. Y esto 428 00:19:08,319 --> 00:19:10,960 es lo que quiero yo devolver. 429 00:19:11,619 --> 00:19:12,960 Quiero que el método lo devuelva. 430 00:19:14,039 --> 00:19:14,880 El método tiene que tener 431 00:19:14,880 --> 00:19:16,700 un return porque he puesto que devuelve un double. 432 00:19:19,140 --> 00:19:20,359 Pues hala, ya está. 433 00:19:20,440 --> 00:19:21,240 Ya tengo ese método. 434 00:19:26,529 --> 00:19:28,029 Que no me hace falta la variable 435 00:19:28,029 --> 00:19:30,650 auxiliar div. Podría meter 436 00:19:30,650 --> 00:19:32,950 todo esto, lo podría meter aquí dentro. 437 00:19:33,950 --> 00:19:34,650 Y me ahorro 438 00:19:34,650 --> 00:19:36,509 esa variable auxiliar. Pero bueno, si queda más 439 00:19:36,509 --> 00:19:38,630 claro así el código, pues lo dejamos 440 00:19:38,630 --> 00:19:38,910 así. 441 00:19:38,910 --> 00:19:45,779 vale, entonces este método está claro 442 00:19:45,779 --> 00:19:47,759 este método es un método 443 00:19:47,759 --> 00:19:49,619 que me dice, cuando en un 444 00:19:49,619 --> 00:19:51,400 programa que se esté ejecutando, que todavía 445 00:19:51,400 --> 00:19:52,759 no hay ningún programa ejecutándose 446 00:19:52,759 --> 00:19:55,740 pues cuando un programa con un main que se ejecute 447 00:19:55,740 --> 00:19:56,740 cree un punto 448 00:19:56,740 --> 00:19:59,660 y ese objeto punto, llame al método distancia 449 00:19:59,660 --> 00:20:01,539 pasándole otro punto que también tendrá 450 00:20:01,539 --> 00:20:02,700 que haber creado el programa 451 00:20:02,700 --> 00:20:05,279 es decir, cuando existan dos puntos 452 00:20:05,279 --> 00:20:07,339 porque ya estoy en un programa que se está ejecutando 453 00:20:07,339 --> 00:20:09,420 y ya estén creados, cuando ya existan 454 00:20:09,420 --> 00:20:11,339 dos puntos, si uno de ellos 455 00:20:11,339 --> 00:20:13,779 llame a este método, recibiendo como parámetro 456 00:20:13,779 --> 00:20:15,880 el otro, yo te voy a entregar 457 00:20:15,880 --> 00:20:16,960 la distancia entre ambos 458 00:20:16,960 --> 00:20:19,319 magnífico, es justo lo que necesitamos 459 00:20:19,319 --> 00:20:21,799 para calcular valores 460 00:20:21,799 --> 00:20:23,940 de trayectorias, sumas de distancia 461 00:20:23,940 --> 00:20:25,839 esta suma más esta suma más esta suma 462 00:20:25,839 --> 00:20:27,160 más esta suma, es justo lo que necesitamos 463 00:20:27,160 --> 00:20:29,440 pero este método no va a venir muy bien para hacer eso 464 00:20:29,440 --> 00:20:31,579 vale, en la clase 465 00:20:31,579 --> 00:20:32,980 punto, hay que meter más cosas 466 00:20:32,980 --> 00:20:35,380 hay que hacer más cosas con los puntos 467 00:20:35,380 --> 00:20:38,079 no hay que hacer más cosas con los puntos 468 00:20:38,079 --> 00:20:39,880 de hecho 469 00:20:39,880 --> 00:20:42,460 O sea, aquí me dice solamente el método distancia, ¿vale? 470 00:20:44,059 --> 00:20:46,339 Ahora, con los vehículos, ¿qué hay que hacer? 471 00:20:47,019 --> 00:20:51,599 Pues con los vehículos hay que meter un método que te diga cuánto has gastado 472 00:20:51,599 --> 00:20:54,539 para una trayectoria en concreto. 473 00:20:55,259 --> 00:20:56,160 ¿Cuánto has gastado? 474 00:20:56,920 --> 00:20:58,240 Eso afecta al vehículo. 475 00:20:58,700 --> 00:21:01,240 Lo que ha gastado en una trayectoria afecta al vehículo. 476 00:21:01,440 --> 00:21:05,420 Pues ese método tendrá que ir en vehículo, porque afecta al vehículo. 477 00:21:05,420 --> 00:21:09,079 Vale, pues entonces 478 00:21:09,079 --> 00:21:10,460 En vehículo 479 00:21:10,460 --> 00:21:13,220 Ponemos ese método 480 00:21:13,220 --> 00:21:15,680 Que me va a devolver un gasto 481 00:21:15,680 --> 00:21:17,720 Con lo cual me va a devolver un double 482 00:21:17,720 --> 00:21:22,990 Gastado 483 00:21:22,990 --> 00:21:24,849 Trayectoria, yo que sé el nombre 484 00:21:24,849 --> 00:21:26,670 Lo más explicativo que se os ocurra 485 00:21:26,670 --> 00:21:27,630 Trayectoria 486 00:21:27,630 --> 00:21:33,589 Vale, pues este método 487 00:21:33,589 --> 00:21:36,289 Tendrá que calcular algo 488 00:21:36,289 --> 00:21:38,869 Y devolvernolo 489 00:21:38,869 --> 00:21:40,829 Tendrá que calcular algo 490 00:21:40,829 --> 00:21:48,140 por ahora pongo esto para 491 00:21:48,140 --> 00:21:53,269 tendrá que hacer el cálculo 492 00:21:53,269 --> 00:21:55,430 que sea y devolverlo 493 00:21:55,430 --> 00:21:57,369 cuando ya lo haya hecho, el cálculo que sea 494 00:21:57,369 --> 00:21:58,769 eso nos falta aquí 495 00:21:58,769 --> 00:22:00,769 pero claro, antes de nada 496 00:22:00,769 --> 00:22:03,609 pues tenemos que pensar, vale, que me va a devolver 497 00:22:03,609 --> 00:22:05,450 un double, sí, me va a devolver un gasto 498 00:22:05,450 --> 00:22:06,789 un double, muy bien 499 00:22:06,789 --> 00:22:08,829 ¿qué necesita 500 00:22:08,829 --> 00:22:10,769 este método para trabajar? 501 00:22:11,710 --> 00:22:13,230 necesita lo que este coche 502 00:22:13,230 --> 00:22:14,369 gasta por kilómetro 503 00:22:14,369 --> 00:22:17,230 eso no hay problema, lo que este coche 504 00:22:17,230 --> 00:22:18,789 gasta por kilómetro está aquí arriba 505 00:22:18,789 --> 00:22:21,490 el propio vehículo va a llamar al método 506 00:22:21,490 --> 00:22:23,130 y él ya tiene dentro el gasto 507 00:22:23,130 --> 00:22:24,750 el método accede a eso y ya está 508 00:22:24,750 --> 00:22:26,930 luego ese método 509 00:22:26,930 --> 00:22:29,430 puede acceder a ese dato sin problema 510 00:22:29,430 --> 00:22:31,529 pero también necesita 511 00:22:31,529 --> 00:22:33,470 la trayectoria para saber 512 00:22:33,470 --> 00:22:34,529 cuántos kilómetros tiene 513 00:22:34,529 --> 00:22:37,630 y la multiplicación de los kilómetros 514 00:22:37,630 --> 00:22:39,589 de la trayectoria por el gasto por kilómetro 515 00:22:39,589 --> 00:22:40,710 será el resultado de volver 516 00:22:40,710 --> 00:22:42,730 luego la trayectoria 517 00:22:42,730 --> 00:22:45,410 no es una característica del coche 518 00:22:45,410 --> 00:22:47,089 la trayectoria es un 519 00:22:47,089 --> 00:22:48,710 a veces es una 520 00:22:48,710 --> 00:22:51,549 a veces es otra, la trayectoria es un dato externo 521 00:22:51,549 --> 00:22:53,349 que se le pasa al método para decir 522 00:22:53,349 --> 00:22:55,349 para esta, ¿cuánto consumes? 523 00:22:55,430 --> 00:22:57,250 muy bien, y ahora para esta otra 524 00:22:57,250 --> 00:22:59,430 ¿cuánto consumes? muy bien, y ahora para esta otra 525 00:22:59,430 --> 00:23:01,430 ¿cuánto consumes? la trayectoria se pasa 526 00:23:01,430 --> 00:23:01,930 desde fuera 527 00:23:01,930 --> 00:23:04,690 no caracteriza al vehículo 528 00:23:04,690 --> 00:23:07,849 el vehículo lo caracteriza a su gasto por combustible 529 00:23:07,849 --> 00:23:09,329 vale, pues entonces 530 00:23:09,329 --> 00:23:10,930 tenemos que pasar aquí la trayectoria 531 00:23:10,930 --> 00:23:13,630 entonces aquí tenemos las dos posibilidades 532 00:23:13,630 --> 00:23:15,690 ya hemos dicho que la trayectoria 533 00:23:15,690 --> 00:23:16,630 es una raíz de puntos 534 00:23:16,630 --> 00:23:21,009 Luego, si nos olvidamos de la clase trayectoria 535 00:23:21,009 --> 00:23:22,789 Le pasaríamos esto 536 00:23:22,789 --> 00:23:25,529 Un array de puntos 537 00:23:25,529 --> 00:23:32,539 Yo le paso mi trayectoria 538 00:23:32,539 --> 00:23:35,900 Y cálculame cuánto has gastado 539 00:23:35,900 --> 00:23:39,299 Vale, vamos a hacerlo así 540 00:23:39,299 --> 00:23:42,119 Vamos a hacer así esta primera versión del método 541 00:23:42,119 --> 00:23:44,980 Bueno, pues ahora ya 542 00:23:44,980 --> 00:23:47,059 Lo que tenemos es que hacer 543 00:23:47,059 --> 00:23:48,180 cuál va a ser 544 00:23:48,180 --> 00:23:50,819 la distancia total 545 00:23:50,819 --> 00:23:52,319 tendremos que calcular 546 00:23:52,319 --> 00:23:54,599 la distancia entre cada dos puntos 547 00:23:54,599 --> 00:23:56,079 es una suma acumulativa 548 00:23:56,079 --> 00:23:58,519 voy al primero, distancia con el siguiente 549 00:23:58,519 --> 00:24:00,980 le sumo la distancia de este con el siguiente 550 00:24:00,980 --> 00:24:02,880 la distancia de este con el siguiente, es una suma acumulativa 551 00:24:02,880 --> 00:24:04,920 que sabemos hacer, esto va a ser 552 00:24:04,920 --> 00:24:06,940 una suma acumulativa, pero tendremos 553 00:24:06,940 --> 00:24:08,000 que recorrer el array 554 00:24:08,000 --> 00:24:10,920 y qué suerte que tenemos un método 555 00:24:10,920 --> 00:24:12,420 distancia en punto que me dice 556 00:24:12,420 --> 00:24:15,000 la distancia entre un punto y otro, qué suerte 557 00:24:15,000 --> 00:24:16,880 pues una suma acumulativa 558 00:24:16,880 --> 00:24:22,420 que para cada punto va incorporando a esa suma la distancia entre este y el siguiente. 559 00:24:23,660 --> 00:24:42,119 Bueno, pues como sabemos hacer la suma acumulativa, vamos a recorrer el array suma acumulativa. 560 00:24:42,839 --> 00:24:47,220 Partiendo de cero, vamos a ir sumando para cada punto en el que estamos parados, 561 00:24:47,220 --> 00:24:49,660 para cada punto en el que estamos parados 562 00:24:49,660 --> 00:24:55,779 vamos a ir haciendo esto 563 00:24:55,779 --> 00:24:59,319 puntos de Y 564 00:24:59,319 --> 00:25:01,700 punto distancia 565 00:25:01,700 --> 00:25:06,319 puntos de Y más 1 566 00:25:06,319 --> 00:25:11,119 y esa sería mi suma acumulativa 567 00:25:11,119 --> 00:25:14,880 el método distancia me calcula 568 00:25:14,880 --> 00:25:17,519 la distancia entre este punto y su siguiente 569 00:25:17,519 --> 00:25:20,960 a la suma acumulativa 570 00:25:20,960 --> 00:25:22,160 avanzo al siguiente 571 00:25:22,160 --> 00:25:24,119 Suma entre ese y su siguiente 572 00:25:24,119 --> 00:25:25,599 ¿Vale? 573 00:25:28,759 --> 00:25:30,019 Es decir, mi array 574 00:25:30,019 --> 00:25:34,180 Será esto 575 00:25:34,180 --> 00:25:35,700 Me paro en este punto 576 00:25:35,700 --> 00:25:37,759 Calculo distancia entre este y el siguiente 577 00:25:37,759 --> 00:25:39,079 A la suma acumulativa 578 00:25:39,079 --> 00:25:40,700 Ahora avanzo a este 579 00:25:40,700 --> 00:25:42,779 Distancia entre este y su siguiente 580 00:25:42,779 --> 00:25:44,220 A la suma acumulativa 581 00:25:44,220 --> 00:25:45,900 Ahora me paro en este 582 00:25:45,900 --> 00:25:47,619 Distancia entre este y el siguiente 583 00:25:47,619 --> 00:25:48,980 A la suma acumulativa 584 00:25:48,980 --> 00:25:52,039 Y así la suma de todas estas distancias 585 00:25:52,039 --> 00:25:52,920 Me devuelve 586 00:25:52,920 --> 00:25:56,680 ¿Vale? ¿Estaría bien el método? 587 00:25:58,359 --> 00:25:59,180 Muy bien. 588 00:25:59,299 --> 00:26:00,599 Eso estaba esperando que me dijerais. 589 00:26:00,960 --> 00:26:03,000 No estaría bien, tendría un detalle, 590 00:26:03,099 --> 00:26:05,140 me saldría aquí una Reindersbaun Exception. 591 00:26:05,720 --> 00:26:08,039 Porque me tengo que parar en el penúltimo. 592 00:26:08,400 --> 00:26:09,720 Me tengo que parar en el penúltimo. 593 00:26:10,720 --> 00:26:12,299 Porque cuando me paro el penúltimo, 594 00:26:12,420 --> 00:26:13,799 ya estoy sumando esta distancia. 595 00:26:14,740 --> 00:26:15,599 Me paro en el penúltimo. 596 00:26:16,000 --> 00:26:16,900 No tengo que pararme aquí, 597 00:26:17,000 --> 00:26:18,680 porque este me guía a este más su siguiente. 598 00:26:18,680 --> 00:26:20,759 Que no hay siguiente a Reindersbaun Exception. 599 00:26:21,500 --> 00:26:23,759 ¿Vale? Me tengo que parar en el penúltimo. 600 00:26:24,420 --> 00:26:29,160 Luego el recorrido sería hasta menos 1, ¿vale? 601 00:26:29,160 --> 00:26:30,140 Me tengo que parar en el penúltimo. 602 00:26:33,930 --> 00:26:36,650 Luego esto, para que no me dé a Reinders Bound Exception, 603 00:26:37,089 --> 00:26:39,930 cuidado porque tengo que pararme antes, en el penúltimo. 604 00:26:43,299 --> 00:26:46,559 Buen ejemplo este para decir, oye, como solo estoy consultando, 605 00:26:47,240 --> 00:26:49,539 ah, bueno, ni siquiera, porque nada, nada, olvidamos, 606 00:26:49,700 --> 00:26:50,579 ni siquiera podríamos. 607 00:26:51,559 --> 00:26:53,980 Vale, ahora este método en principio ya sí que estaría bien. 608 00:26:54,140 --> 00:26:55,339 Me da el gasto por trayectoria. 609 00:26:57,220 --> 00:26:58,619 Y ya está, ya está todo hecho. 610 00:26:58,619 --> 00:27:00,119 Ahora ya mi programa principal 611 00:27:00,119 --> 00:27:02,180 Que arranque los puntos 612 00:27:02,180 --> 00:27:03,339 Que arranque las cosas 613 00:27:03,339 --> 00:27:05,500 Aquí que me dice 614 00:27:05,500 --> 00:27:10,339 El main vamos a hacerlo ahora 615 00:27:10,339 --> 00:27:10,980 Como nos dé la gana 616 00:27:10,980 --> 00:27:11,940 Pero aquí no dice un main 617 00:27:11,940 --> 00:27:20,289 Eso ya depende 618 00:27:20,289 --> 00:27:22,529 Eso ya en tiempo de ejecución 619 00:27:22,529 --> 00:27:23,349 Se decidirá 620 00:27:23,349 --> 00:27:24,990 Este no se compromete a nada 621 00:27:24,990 --> 00:27:26,869 Aquí estamos simplemente declarando 622 00:27:26,869 --> 00:27:28,329 Lo que va a hacer el método 623 00:27:28,329 --> 00:27:29,849 Cuando le llegue un array 624 00:27:29,849 --> 00:27:31,970 ¿ese array cuánto va a tener? no lo sé 625 00:27:31,970 --> 00:27:34,869 a lo mejor en una ejecución le paso un array de 3 626 00:27:34,869 --> 00:27:36,809 pero a lo mejor en la siguiente 627 00:27:36,809 --> 00:27:37,769 le paso un array de 5 628 00:27:37,769 --> 00:27:40,369 a este método le da igual, porque tiene el punto led 629 00:27:40,369 --> 00:27:41,990 que le va a decir siempre cuál es su tamaño 630 00:27:41,990 --> 00:27:43,690 a este método no le importa 631 00:27:43,690 --> 00:27:46,369 que longitud tenga en particular 632 00:27:46,369 --> 00:27:48,509 él ya accede a ella, a esa longitud 633 00:27:48,509 --> 00:27:49,150 con punto led 634 00:27:49,150 --> 00:27:52,569 ¿que me llamas con un array de 7? pues ya está, son 7 635 00:27:52,569 --> 00:27:54,970 ¿que me llamas con un array de 12? 636 00:27:55,150 --> 00:27:56,289 pues son 12, me da igual 637 00:27:56,289 --> 00:27:58,549 mi for se va a ejecutar tantas veces 638 00:27:58,549 --> 00:28:01,630 como necesite, aquí no nos comprometemos 639 00:28:01,630 --> 00:28:03,589 al tamaño, luego ya en el main 640 00:28:03,589 --> 00:28:05,589 ahora ya sí, en el main es donde 641 00:28:05,589 --> 00:28:07,589 las cosas existen, ahí ya hay que 642 00:28:07,589 --> 00:28:09,309 crear una trayectoria con una serie de puntos 643 00:28:09,309 --> 00:28:11,509 concretos, un coche y ahí ya 644 00:28:11,509 --> 00:28:13,069 pues las cosas 645 00:28:13,069 --> 00:28:15,109 se ejecutan y dan resultados 646 00:28:15,109 --> 00:28:17,430 aquí solo se dice cómo 647 00:28:17,430 --> 00:28:19,210 se va a hacer, luego ya 648 00:28:19,210 --> 00:28:20,990 cuando se hace realmente 649 00:28:20,990 --> 00:28:21,789 en el main 650 00:28:21,789 --> 00:28:24,369 pues venga, vamos a hacer el main 651 00:28:24,369 --> 00:28:33,210 tengo mi main, ahora 652 00:28:33,210 --> 00:28:35,549 Aquí ya hay que crear los coches 653 00:28:35,549 --> 00:28:36,910 Las trayectorias, todo 654 00:28:36,910 --> 00:28:38,930 Pues venga, vamos a hacer un main guapo 655 00:28:38,930 --> 00:28:40,769 A ver 656 00:28:40,769 --> 00:28:44,630 Un scanner, porque vamos a leer 657 00:28:44,630 --> 00:28:45,509 Del teclado 658 00:28:45,509 --> 00:28:58,990 Vale, y ahora vamos a decir 659 00:28:58,990 --> 00:29:01,630 ¿Cuánto gasta tu coche? 660 00:29:01,710 --> 00:29:03,049 Para poder hacer los cálculos 661 00:29:03,049 --> 00:29:09,269 Vale 662 00:29:09,269 --> 00:29:12,390 Pues el gasto 663 00:29:12,390 --> 00:29:15,089 Lo vamos a leer 664 00:29:15,089 --> 00:29:19,190 Con scan.nextdabel 665 00:29:19,190 --> 00:29:24,569 pues vamos a hacernos ya un objeto vehículo con ese gasto 666 00:29:24,569 --> 00:29:28,210 pues vamos a instanciar un objeto vehículo 667 00:29:28,210 --> 00:29:31,450 v, new vehículo 668 00:29:31,450 --> 00:29:35,950 y como he dicho, aquí 669 00:29:35,950 --> 00:29:40,309 si yo lo dejo en paréntesis vacíos, el constructor me dice, el compilador me dice 670 00:29:40,309 --> 00:29:44,490 perdona, no puedo, claro, porque nos hemos inventado 671 00:29:44,490 --> 00:29:48,750 un constructor, hemos pasado del por defecto, ese olvidado ya no existe 672 00:29:48,750 --> 00:29:49,789 Porque me he inventado uno 673 00:29:49,789 --> 00:29:52,269 Y este me dice 674 00:29:52,269 --> 00:29:54,349 Que un double, lo siento 675 00:29:54,349 --> 00:29:56,470 Pero tienes que darme un double, si no yo no puedo 676 00:29:56,470 --> 00:29:57,490 Llamar al constructor 677 00:29:57,490 --> 00:29:59,190 Venga, pues 678 00:29:59,190 --> 00:30:01,930 Gasto 679 00:30:01,930 --> 00:30:04,089 El que yo he pedido, este 680 00:30:04,089 --> 00:30:05,609 Vale, el coche ya está 681 00:30:05,609 --> 00:30:07,289 Ahora 682 00:30:07,289 --> 00:30:10,109 Tenemos que meter la trayectoria, esto es más rollo 683 00:30:10,109 --> 00:30:12,549 Vamos a hacerlo, primero cuántos puntos 684 00:30:12,549 --> 00:30:14,470 De la trayectoria y luego ya rellenamos la raya 685 00:30:14,470 --> 00:30:16,049 Y ya está, ahora 686 00:30:16,049 --> 00:30:18,390 Vamos a decirle, venga, ahora vamos 687 00:30:18,390 --> 00:30:21,190 a leer, a escanear la trayectoria 688 00:30:21,190 --> 00:30:23,369 este escaneo 689 00:30:23,369 --> 00:30:24,250 pues lógicamente 690 00:30:24,250 --> 00:30:27,230 lo haría el maps 691 00:30:27,230 --> 00:30:29,049 pues el maps pipipi 692 00:30:29,049 --> 00:30:31,490 con el satélite pipipi haría el escaneo 693 00:30:31,490 --> 00:30:32,609 llamaría 694 00:30:32,609 --> 00:30:34,329 a distancia 695 00:30:34,329 --> 00:30:35,950 a gasto y ya está 696 00:30:35,950 --> 00:30:38,589 nosotros se lo tenemos que meter 697 00:30:38,589 --> 00:30:40,589 a mano, pues nada, vamos a metérselo a mano 698 00:30:40,589 --> 00:30:42,410 primero vamos a decir 699 00:30:42,410 --> 00:30:43,490 cuántos puntos 700 00:30:43,490 --> 00:30:53,299 cuántos puntos va a tener la trayectoria 701 00:30:53,299 --> 00:30:57,279 Esto va a ser un int, el número de puntos, lógicamente 702 00:30:57,279 --> 00:31:05,170 Cuántos puntos va a tener, pues lo que nosotros queramos en un momento dado 703 00:31:05,170 --> 00:31:06,130 Los que nos den la gana 704 00:31:06,130 --> 00:31:11,430 Y ahora ya vamos a hacer el bucle para leer los puntos de la trayectoria 705 00:31:11,430 --> 00:31:15,549 Se los tenemos que meter a mano porque la aplicación no sabe leerlas directamente 706 00:31:15,549 --> 00:31:22,970 Pues venga, ahora ya vamos a hacernos un array con la trayectoria 707 00:31:22,970 --> 00:31:24,069 Punto 708 00:31:24,069 --> 00:31:27,779 La voy a llamar 709 00:31:27,779 --> 00:31:29,759 Trayectoria 710 00:31:29,759 --> 00:31:32,799 Este array trayectoria 711 00:31:32,799 --> 00:31:34,619 New punto 712 00:31:34,619 --> 00:31:36,640 De num puntos 713 00:31:36,640 --> 00:31:39,640 ¿Verdad? 714 00:31:39,740 --> 00:31:40,720 Ya tengo mi array 715 00:31:40,720 --> 00:31:44,299 Mi array con tantos puntos como yo le he pedido 716 00:31:44,299 --> 00:31:45,200 Mi array de puntos 717 00:31:45,200 --> 00:31:47,759 Y ahora vamos a recorrerlo para leerlo 718 00:31:47,759 --> 00:31:48,519 Simplemente 719 00:31:48,519 --> 00:31:55,910 Trayectoria 720 00:31:55,910 --> 00:31:57,210 Punto led 721 00:31:57,210 --> 00:32:00,230 Vale 722 00:32:00,230 --> 00:32:02,910 Pues le vamos a decir 723 00:32:02,910 --> 00:32:04,990 Que meta coordenada x e y seguidas 724 00:32:04,990 --> 00:32:08,410 No, pero vamos a hacer la versión 2 725 00:32:08,410 --> 00:32:10,190 ¿Vale? Para compararlos 726 00:32:10,190 --> 00:32:12,109 Vamos a hacer el método con la versión 2 727 00:32:12,109 --> 00:32:13,450 x e y 728 00:32:13,450 --> 00:32:15,450 Bueno, x e y 729 00:32:15,450 --> 00:32:18,250 Vale, entonces primero que lea 730 00:32:18,250 --> 00:32:19,609 La coordenada x 731 00:32:19,609 --> 00:32:23,880 Double x igual a 732 00:32:24,720 --> 00:32:29,319 Scan.nextdouble 733 00:32:29,319 --> 00:32:31,400 Y luego la y 734 00:32:31,400 --> 00:32:37,559 y ahora 735 00:32:37,559 --> 00:32:39,599 metemos en la 736 00:32:39,599 --> 00:32:41,839 posición iésima un punto 737 00:32:41,839 --> 00:32:42,960 con esas coordenadas 738 00:32:42,960 --> 00:32:45,839 trayectoria 739 00:32:46,720 --> 00:32:47,799 de i 740 00:32:47,799 --> 00:32:49,519 igual 741 00:32:49,519 --> 00:32:51,839 a new.x 742 00:32:53,059 --> 00:32:53,440 y 743 00:32:53,440 --> 00:32:56,220 listo el for 744 00:32:56,220 --> 00:32:58,599 listo el for 745 00:32:58,599 --> 00:32:59,720 que lee la trayectoria 746 00:32:59,720 --> 00:33:03,690 vale 747 00:33:03,690 --> 00:33:06,269 nos pide tantos puntos 748 00:33:06,269 --> 00:33:09,049 Como le hemos dicho, como longitud tenga el array 749 00:33:09,049 --> 00:33:13,009 Nos pide coordenada X, nos pide coordenada Y 750 00:33:13,009 --> 00:33:16,549 Instancia un punto con esas coordenadas 751 00:33:16,549 --> 00:33:19,230 Y lo mete en la posición del array que toque 752 00:33:19,230 --> 00:33:22,970 ¡Hala! Muy bien, ya tenemos los datos rellenos 753 00:33:22,970 --> 00:33:26,950 Y ahora ya vamos a mostrarle cuánto ha gastado 754 00:33:26,950 --> 00:33:31,900 Gasto 755 00:33:31,900 --> 00:33:35,319 Su gasto en esa trayectoria 756 00:33:35,319 --> 00:33:36,680 Su gasto 757 00:33:36,680 --> 00:33:39,299 pues su gasto ha sido 758 00:33:39,299 --> 00:33:43,569 pues mi vehículo 759 00:33:43,569 --> 00:33:43,890 V 760 00:33:43,890 --> 00:33:47,309 tiene un método estupendo 761 00:33:47,309 --> 00:33:49,289 que se llama gastado 762 00:33:49,289 --> 00:33:51,569 trayectoria, que si yo le paso 763 00:33:51,569 --> 00:33:52,630 una raíz de puntos 764 00:33:52,630 --> 00:33:55,450 me devuelve lo que ha 765 00:33:55,450 --> 00:33:57,369 gastado, bueno, pues venga voy a 766 00:33:57,369 --> 00:33:58,670 meterlo directamente en el siso 767 00:33:58,670 --> 00:34:00,589 y ya está 768 00:34:00,589 --> 00:34:05,400 y ya está, se acabó el programa 769 00:34:05,400 --> 00:34:07,839 entonces, mi main 770 00:34:07,839 --> 00:34:10,099 se olvida de las peculiaridades 771 00:34:10,099 --> 00:34:11,599 de este método, le dan igual 772 00:34:11,599 --> 00:34:13,960 ese método ya está encapsulado 773 00:34:13,960 --> 00:34:16,059 metido en la clase vehículo 774 00:34:16,059 --> 00:34:18,340 con toda su complejidad, con todo lo que sea 775 00:34:18,340 --> 00:34:20,179 y mi clase llama 776 00:34:20,179 --> 00:34:22,460 al método y punto pelota 777 00:34:22,460 --> 00:34:24,239 pasándole eso si la información 778 00:34:24,239 --> 00:34:26,139 que necesita, que la información que necesita 779 00:34:26,139 --> 00:34:27,800 es la trayectoria, en concreto 780 00:34:27,800 --> 00:34:30,019 que ejecuto el programa 781 00:34:30,019 --> 00:34:31,940 con otra trayectoria, pues 782 00:34:31,940 --> 00:34:34,460 me devolverá otro valor, lógicamente 783 00:34:34,460 --> 00:34:35,719 ¿vale? 784 00:34:38,300 --> 00:34:39,320 y ya está 785 00:34:39,320 --> 00:34:41,019 ¿puedes un segundo mostrar 786 00:34:41,019 --> 00:34:42,940 la clase vehículo y trayectoria? 787 00:34:44,079 --> 00:34:44,860 ¿cuál es la vehículo según? 788 00:34:46,219 --> 00:34:46,940 ¿cuál es la trayectoria? 789 00:34:47,360 --> 00:34:48,820 el método sería ese 790 00:34:48,820 --> 00:34:55,760 ¿hace la fórmula? 791 00:34:56,039 --> 00:34:58,320 ¿hace la fórmula con las coordenadas? 792 00:34:59,539 --> 00:35:01,039 bueno, hace la suma acumulativa 793 00:35:01,039 --> 00:35:03,179 ¿pero esto te devuelve la distancia? 794 00:35:03,400 --> 00:35:04,780 ¿no te devuelve el precio? 795 00:35:06,179 --> 00:35:09,079 ¿qué atributos has puesto en vehículo? 796 00:35:09,480 --> 00:35:11,099 el gasto por kilómetro 797 00:35:11,099 --> 00:35:12,920 entonces, este te dice 798 00:35:12,920 --> 00:35:14,059 ¿cuántos kilómetros hay? 799 00:35:14,500 --> 00:35:16,380 Claro, y ahora tienes que multiplicarlo por el... 800 00:35:16,380 --> 00:35:18,599 Ay, no lo he multiplicado, perdón, perdón, perdón, perdón. 801 00:35:19,300 --> 00:35:21,059 Que he gastado trayectoria, efectivamente, 802 00:35:21,219 --> 00:35:22,340 me falta multiplicarlo. 803 00:35:22,800 --> 00:35:24,460 Esta es la distancia, perdón, claro, 804 00:35:24,519 --> 00:35:27,980 me falta multiplicarlo por el gasto por kilómetro. 805 00:35:28,780 --> 00:35:30,599 Efectivamente, tenéis razón, claro. 806 00:35:31,460 --> 00:35:34,119 Efectivamente, este método me ha calculado 807 00:35:34,119 --> 00:35:37,920 todo lo que mide la trayectoria, los kilómetros, 808 00:35:37,920 --> 00:35:39,059 pero lo que tiene que ver el método 809 00:35:39,059 --> 00:35:40,159 es lo que ha gastado el coche. 810 00:35:40,159 --> 00:35:47,320 Entonces esa distancia que resulta la multiplico por el gasto por kilómetro que es la propiedad del coche que está arriba, ¿vale? 811 00:35:48,139 --> 00:35:50,539 Sí, a ese método le faltaba esto, efectivamente. 812 00:36:03,869 --> 00:36:08,150 Vale, entonces el main llama al método y ya está. 813 00:36:11,239 --> 00:36:18,119 Si ejecutamos, venga, ¿cuánto gasta tu coche? Pues 2, gasta 2. 814 00:36:18,619 --> 00:36:21,880 ¿Cuántos puntos quieres? Venga, 3, x e y. 815 00:36:21,880 --> 00:36:23,639 coordenadas 816 00:36:23,639 --> 00:36:26,659 1, 1 817 00:36:26,659 --> 00:36:28,519 para que sea una recta 818 00:36:28,519 --> 00:36:29,780 y así podemos calcular bien 819 00:36:29,780 --> 00:36:32,619 coordenadas, 2, 2 820 00:36:32,619 --> 00:36:34,579 coordenadas 821 00:36:34,579 --> 00:36:36,340 ah no, espera 822 00:36:36,340 --> 00:36:37,719 le quiero pasar una recta horizontal 823 00:36:37,719 --> 00:36:39,599 porque si es en vertical, bueno 824 00:36:39,599 --> 00:36:41,960 3, 3 825 00:36:41,960 --> 00:36:44,159 su gasto ha sido este, pero le voy a pasar 826 00:36:44,159 --> 00:36:46,199 una trayectoria que sea más fácil de calcularla 827 00:36:46,199 --> 00:36:46,699 de cabeza 828 00:36:46,699 --> 00:36:49,559 a ver, claro 829 00:36:49,559 --> 00:36:51,139 1, 0, 2, 0, 3, 0 830 00:36:51,139 --> 00:36:52,340 Que eso es una recta, y ya está 831 00:36:52,340 --> 00:36:54,340 Porque 1, 1 tendría que hacer la raíz cuadrada 832 00:36:54,340 --> 00:36:56,119 Entonces, ¿cuánto gasta tu coche? 833 00:36:56,659 --> 00:36:57,300 Gasta 2 834 00:36:57,300 --> 00:37:00,239 ¿Cuántos puntos? 3 puntos 835 00:37:00,239 --> 00:37:02,119 Coordinada X del primer punto 836 00:37:02,119 --> 00:37:04,380 1, 0 837 00:37:04,380 --> 00:37:07,000 2, 0 838 00:37:07,000 --> 00:37:11,289 3, 0 839 00:37:11,289 --> 00:37:13,960 ¿Vale? 840 00:37:18,519 --> 00:37:18,920 4 841 00:37:18,920 --> 00:37:21,340 Su gasto ha sido 4, 2 por 2, 4 842 00:37:21,340 --> 00:37:23,099 Efectivamente, entre esos dos puntos 843 00:37:23,099 --> 00:37:25,440 Tengo 1 y 1, 2 por 2, 4 844 00:37:25,440 --> 00:37:26,900 ¿vale? está bien calculado 845 00:37:26,900 --> 00:37:37,619 vale 846 00:37:37,619 --> 00:37:38,699 pues entonces 847 00:37:38,699 --> 00:37:41,679 aquí se trata de 848 00:37:41,679 --> 00:37:43,599 todas las complejidades 849 00:37:43,599 --> 00:37:44,900 que afectan a una entidad 850 00:37:44,900 --> 00:37:46,980 hacer cosas con esa entidad, con ese objeto 851 00:37:46,980 --> 00:37:49,059 se meten ahí dentro y ahí se queda todo 852 00:37:49,059 --> 00:37:49,719 encerrado 853 00:37:49,719 --> 00:37:53,300 y luego la clase main llama a lo que necesite 854 00:37:53,300 --> 00:37:54,739 ¿vale? 855 00:37:54,820 --> 00:37:55,980 primera cosa importante 856 00:37:55,980 --> 00:37:56,800 y segunda 857 00:37:56,800 --> 00:38:00,900 los objetos son otros datos más 858 00:38:00,900 --> 00:38:02,000 otras variables más 859 00:38:02,000 --> 00:38:03,699 como aquí 860 00:38:03,699 --> 00:38:05,800 aquí ha habido que pasarle 861 00:38:05,800 --> 00:38:07,059 una variable como parámetro 862 00:38:07,059 --> 00:38:08,340 pues es otra variable más 863 00:38:08,340 --> 00:38:09,079 normal y corriente 864 00:38:09,079 --> 00:38:09,940 otra variable más 865 00:38:09,940 --> 00:38:11,500 lo que pasa es que es una variable 866 00:38:11,500 --> 00:38:12,519 que es de tipo objeto 867 00:38:12,519 --> 00:38:13,780 porque es de la clase punto 868 00:38:13,780 --> 00:38:16,699 y eso hace que tenga propiedades dentro 869 00:38:16,699 --> 00:38:18,340 pueda llamar a método si hace falta 870 00:38:18,340 --> 00:38:19,000 etcétera 871 00:38:19,000 --> 00:38:25,079 vale, que nos hacemos una tercera clase 872 00:38:25,079 --> 00:38:25,920 trayectoria 873 00:38:25,920 --> 00:38:28,880 porque queremos que esto sea más escalable 874 00:38:28,880 --> 00:38:31,199 por si añado yo propiedades a la trayectoria 875 00:38:31,199 --> 00:38:32,519 como 876 00:38:32,519 --> 00:38:34,940 rugosidad alta o lo que sea 877 00:38:34,940 --> 00:38:36,699 vamos a completarlo antes de parar 878 00:38:36,699 --> 00:38:38,920 para así ya dejar el ejercicio 879 00:38:38,920 --> 00:38:40,099 olvidado, que no se nos olvide 880 00:38:40,099 --> 00:38:42,960 pues venga, me voy a hacer 881 00:38:42,960 --> 00:38:44,300 una clase trayectoria 882 00:38:44,300 --> 00:38:49,940 inicialmente mi trayectoria 883 00:38:49,940 --> 00:38:51,980 solo se va a caracterizar 884 00:38:51,980 --> 00:38:53,280 por un array de puntos 885 00:38:53,280 --> 00:39:03,840 ala, esto es a lo que caracteriza 886 00:39:03,840 --> 00:39:05,119 mi trayectoria, por ahora 887 00:39:05,119 --> 00:39:07,780 a lo mejor en el futuro le meto más propiedades 888 00:39:07,780 --> 00:39:09,380 pero ahora mismo es eso 889 00:39:09,380 --> 00:39:11,500 bueno, una única propiedad 890 00:39:11,500 --> 00:39:13,119 array de puntos, una única 891 00:39:13,119 --> 00:39:14,699 Un get y set 892 00:39:14,699 --> 00:39:19,880 Ahí tengo el get y set 893 00:39:19,880 --> 00:39:22,059 Que como veis el get devuelve un array de puntos 894 00:39:22,059 --> 00:39:24,960 Y el set recibe un array de puntos 895 00:39:24,960 --> 00:39:26,139 Ningún problema 896 00:39:26,139 --> 00:39:28,940 Y ahora vamos a hacerle un constructor 897 00:39:28,940 --> 00:39:31,460 Que es lo habitual 898 00:39:31,460 --> 00:39:32,579 Hacer un constructor 899 00:39:32,579 --> 00:39:37,099 Con parámetros 900 00:39:37,099 --> 00:39:38,920 Vale, ya tengo mi constructor 901 00:39:38,920 --> 00:39:41,219 Vale 902 00:39:41,219 --> 00:39:44,679 ¡Hala! Ya está 903 00:39:44,679 --> 00:39:46,559 Ahora 904 00:39:46,559 --> 00:39:48,739 ¿Cómo cambia mi programa? 905 00:39:49,139 --> 00:39:50,900 Pues vamos a copiarlo en un main2 906 00:39:50,900 --> 00:40:01,369 main2, vale 907 00:40:01,369 --> 00:40:03,230 sería este, bueno 908 00:40:03,230 --> 00:40:05,210 ¿cuánto gasta tu coche? 909 00:40:05,489 --> 00:40:07,969 muy bien, hago mi vehículo, trayectoria 910 00:40:07,969 --> 00:40:09,789 vale, leo 911 00:40:09,789 --> 00:40:11,829 los puntos, y una vez que tengo ya 912 00:40:11,829 --> 00:40:13,150 los puntos leídos 913 00:40:13,150 --> 00:40:15,250 pues ahora ya 914 00:40:15,250 --> 00:40:18,170 me podría 915 00:40:18,170 --> 00:40:19,570 hacer un objeto 916 00:40:19,570 --> 00:40:20,849 trayectoria 917 00:40:20,849 --> 00:40:22,949 un objeto trayectoria 918 00:40:22,949 --> 00:40:24,909 que sería new 919 00:40:24,909 --> 00:40:29,239 trayectoria a la que le paso 920 00:40:29,239 --> 00:40:30,239 ese array de puntos 921 00:40:30,239 --> 00:40:32,099 Ese array de puntos 922 00:40:32,099 --> 00:40:33,219 Que lo he llamado así 923 00:40:33,219 --> 00:40:38,710 Vale, ahora tengo 924 00:40:38,710 --> 00:40:40,610 Ese array de puntos envuelto 925 00:40:40,610 --> 00:40:41,789 En este objeto trayectoria 926 00:40:41,789 --> 00:40:44,650 Bueno, pues vamos a añadir 927 00:40:44,650 --> 00:40:46,190 Otro método 928 00:40:46,190 --> 00:40:47,349 En vehículo 929 00:40:47,349 --> 00:40:49,869 La versión 2 de este 930 00:40:49,869 --> 00:40:52,090 Que recibe el objeto trayectoria 931 00:40:52,090 --> 00:40:53,570 Vamos a hacer la versión 2 de este 932 00:40:53,570 --> 00:41:00,730 Copiadlo 933 00:41:00,730 --> 00:41:02,530 Y pegadlo 934 00:41:02,530 --> 00:41:03,789 Pero llamadle aquí 935 00:41:03,789 --> 00:41:04,809 Pues versión 2 936 00:41:04,809 --> 00:41:07,349 Copiad el de arriba 937 00:41:07,349 --> 00:41:08,349 Versión 2 938 00:41:08,349 --> 00:41:11,130 Esta versión 2 no recibe la raíz de puntos 939 00:41:11,130 --> 00:41:13,389 Recibe el objeto trayectoria 940 00:41:13,389 --> 00:41:14,489 Que los tiene dentro 941 00:41:14,489 --> 00:41:17,480 ¿Eh? 942 00:41:19,920 --> 00:41:22,320 ¿Por qué? 943 00:41:24,800 --> 00:41:27,219 Vale, pues entonces esta versión 2 944 00:41:27,219 --> 00:41:28,000 De este método 945 00:41:28,000 --> 00:41:30,400 Recibe el objeto trayectoria 946 00:41:30,400 --> 00:41:32,099 No recibe la raíz de puntos 947 00:41:32,099 --> 00:41:34,139 Yo veo esto y digo, raíz de puntos 948 00:41:34,139 --> 00:41:35,679 ¿Qué será esto? Una raíz de puntos 949 00:41:35,679 --> 00:41:37,500 Una raíz de puntos de examen 950 00:41:37,500 --> 00:41:38,139 ¿Una raíz de qué? 951 00:41:38,519 --> 00:41:40,960 sin embargo veo esto y digo 952 00:41:40,960 --> 00:41:43,519 este método trabaja con trayectorias 953 00:41:43,519 --> 00:41:44,940 parece que no 954 00:41:44,940 --> 00:41:47,679 a lo mejor en este contexto no se ve tan claro 955 00:41:47,679 --> 00:41:49,519 que sea más útil 956 00:41:49,519 --> 00:41:51,559 pero en general si lo es 957 00:41:51,559 --> 00:41:53,460 vale y en que me cambia esto 958 00:41:53,460 --> 00:41:55,559 pues me cambia que ahora 959 00:41:55,559 --> 00:41:57,059 yo ya puntos 960 00:41:57,059 --> 00:41:59,460 este array es la propiedad 961 00:41:59,460 --> 00:42:00,679 punto de trayectoria es decir será 962 00:42:00,679 --> 00:42:02,380 t.get 963 00:42:02,380 --> 00:42:04,780 puntos es lo que me cambia 964 00:42:04,780 --> 00:42:07,820 es lo que me cambia 965 00:42:07,820 --> 00:42:14,170 Que mi array puntos se ha convertido 966 00:42:14,170 --> 00:42:16,050 En la propiedad puntos de t 967 00:42:16,050 --> 00:42:18,449 Eso es lo que cambia 968 00:42:18,449 --> 00:42:19,670 Que mi array puntos 969 00:42:19,670 --> 00:42:22,110 Se ha convertido en la propiedad 970 00:42:22,110 --> 00:42:23,030 Puntos de t 971 00:42:23,030 --> 00:42:25,690 En esta y en esta 972 00:42:25,690 --> 00:42:31,699 ¿Veis? Ahora le paso la trayectoria 973 00:42:31,699 --> 00:42:34,719 Trayectoria, su array está dentro 974 00:42:34,719 --> 00:42:36,380 Lo saco con el get 975 00:42:36,380 --> 00:42:37,260 Con get puntos 976 00:42:37,260 --> 00:42:39,079 Pues ya está, no pasa nada 977 00:42:39,079 --> 00:42:41,940 Este es mi array con su longitud 978 00:42:41,940 --> 00:42:44,920 La posición id de ese array mío 979 00:42:44,920 --> 00:42:47,920 la posición y más uno de ese array 980 00:42:47,920 --> 00:42:48,960 que está dentro de t 981 00:42:48,960 --> 00:42:50,820 vale 982 00:42:50,820 --> 00:42:55,900 es el mismo método de arriba pero en lugar de 983 00:42:55,900 --> 00:42:58,199 trabajar con un array directamente 984 00:42:58,199 --> 00:43:00,219 trabaja con lo que hay dentro de esto 985 00:43:00,219 --> 00:43:05,449 y ahora en mi main2 986 00:43:05,449 --> 00:43:07,389 en mi main2 987 00:43:07,389 --> 00:43:08,989 su gasto ha sido 988 00:43:08,989 --> 00:43:10,889 pues yo ahora 989 00:43:10,889 --> 00:43:13,130 cuando llame al versión 2 990 00:43:13,130 --> 00:43:15,570 le llamo 991 00:43:15,570 --> 00:43:17,010 le paso el objeto 992 00:43:17,010 --> 00:43:18,469 tr, este de aquí 993 00:43:18,469 --> 00:43:21,530 vale 994 00:43:21,530 --> 00:43:24,090 Mi método versión 2 995 00:43:24,090 --> 00:43:26,769 Necesita el objeto trayectoria 996 00:43:26,769 --> 00:43:27,750 Que tiene el array dentro 997 00:43:27,750 --> 00:43:30,710 Pues ahí va, el objeto trayectoria 998 00:43:30,710 --> 00:43:31,510 Con el array dentro 999 00:43:31,510 --> 00:43:38,409 ¿Vale? Venga, pues ahora sí que paramos 1000 00:43:38,409 --> 00:43:39,829 Iba a decir para que vayáis al baño 1001 00:43:39,829 --> 00:43:40,789 Pero eso duele