1 00:00:00,000 --> 00:00:10,080 Vale, aquí el diseño ya viene hecho en realidad, no tenemos que decidir las clases, pero tenemos 2 00:00:10,080 --> 00:00:18,080 que entenderlo un poco, entonces, aquí nos dicen ya, la clase esta de aquí, la clase 3 00:00:18,080 --> 00:00:26,720 esta de aquí es la clase que se corresponde con la aplicación, es una aplicación que 4 00:00:26,720 --> 00:00:33,400 gestiona aplicaciones que puede tener un móvil, descargadas, descargadas, en memoria, un poco 5 00:00:33,400 --> 00:00:37,480 todo eso, entonces, eso es una cosa un poquito más complicada de diseñar que una aplicación 6 00:00:37,480 --> 00:00:41,640 de clientes o pedidos o una aplicación de un taller, porque una aplicación de un taller 7 00:00:41,640 --> 00:00:46,200 en cuanto uno haga un análisis así y lo mire un poquito por encima rápidamente sacará, 8 00:00:46,200 --> 00:00:54,240 ah vale, pues coche, será un empleado, factura, pues rápidamente podría sacar un diseño 9 00:00:54,240 --> 00:01:00,160 de clases, esto es como más raro, bueno, pero ya nos dan las clases hechas, pues venga, 10 00:01:00,160 --> 00:01:07,800 habrá una clase app que modeliza una aplicación para móvil, vale, entonces, cada aplicación 11 00:01:07,800 --> 00:01:13,040 que puede tener un móvil es una entidad de lo que yo voy a gestionar, que son aplicaciones 12 00:01:13,040 --> 00:01:18,640 para móviles, pues cada aplicación que puede tener un móvil se modeliza con una clase 13 00:01:18,640 --> 00:01:25,840 app, vale, entonces, el siguiente paso natural, vale, pues porque voy a caracterizar cada 14 00:01:25,840 --> 00:01:30,360 aplicación, uno pues haría un diseño en función de lo que le interesa registrar de 15 00:01:30,360 --> 00:01:34,800 cada aplicación que está en su móvil, pero aquí el diseño ya está hecho y te dicen, 16 00:01:34,800 --> 00:01:41,760 bueno, cada aplicación móvil se va a caracterizar por nombre, versión y tamaño de la aplicación, 17 00:01:42,000 --> 00:01:49,040 y luego, además, cada aplicación que puede hacer, ejecutarse, vale, entonces, como cada 18 00:01:49,040 --> 00:01:55,480 aplicación lo que puede hacer es ejecutarse, pues tendrá un método ejecutar, entonces, 19 00:01:55,480 --> 00:02:01,240 ese método ejecutar que sería el que se invocara, pues cuando se le da el botón de ejecutar la 20 00:02:01,240 --> 00:02:07,080 aplicación, ese método ejecutar, en este caso, simplemente mostrará un mensaje, en lugar de 21 00:02:07,080 --> 00:02:13,640 lanzar un proceso o lo que sea, mostrará un mensaje, entonces, vale, esta clase, pues una 22 00:02:13,640 --> 00:02:20,400 vez que ya el diseño está decidido, no tiene mayor dificultad programar esta clase, luego ya 23 00:02:20,400 --> 00:02:28,920 viene otra que es la tienda o el almacén de aplicaciones, entonces, el almacén de aplicaciones, 24 00:02:28,920 --> 00:02:36,640 el almacén de aplicaciones tendrá todas estas, un conjunto de aplicaciones, vale, entonces, 25 00:02:36,640 --> 00:02:41,440 el almacén de aplicaciones tendrá un conjunto de aplicaciones, un conjunto de estas, vale, bueno, 26 00:02:41,440 --> 00:02:50,200 pues un array, lo que sea, vale, y aquí ya empiezan los métodos que tiene que tener, etcétera, luego, 27 00:02:50,200 --> 00:02:56,800 la clase móvil, ya tenemos tres entidades relacionadas con esta aplicación, la clase 28 00:02:56,800 --> 00:03:03,440 app para cada aplicación, la clase almacén de aplicaciones y luego la clase el teléfono en sí, 29 00:03:04,160 --> 00:03:10,400 el teléfono, es un diseño posible, se podría haber adoptado por otros diseños, esta es la clase el 30 00:03:10,400 --> 00:03:18,360 teléfono, vale, el teléfono tendrá sus apps instaladas, tendrá sus rollos y luego la clase 31 00:03:18,360 --> 00:03:29,400 principal, la clase principal, bueno, pues entonces, una vez que uno se ha echado un vistazo por encima 32 00:03:29,400 --> 00:03:35,880 y se hace una idea de de qué va esto, pues esto va de una aplicación que gestiona las, de una 33 00:03:35,880 --> 00:03:40,800 aplicación que gestiona las aplicaciones que un móvil tiene instaladas y que además puede ejecutar, 34 00:03:40,800 --> 00:03:47,880 gestiona eso, gestiona lo que tiene descargado y lo que puede ejecutar, bueno, pues de esto va, de 35 00:03:47,880 --> 00:03:51,880 esto va la aplicación, pero uno tiene que entender siempre cuando tiene que hacer una aplicación de 36 00:03:51,880 --> 00:03:56,240 qué va, en este caso cuando tiene que programarla, tiene que entender de qué va, bueno, pues esto, 37 00:03:56,240 --> 00:04:03,560 una vez hecho una lectura entera va de eso, va de un programa que te gestiona las aplicaciones que 38 00:04:03,560 --> 00:04:13,520 tiene instaladas un móvil y las puede ejecutar, bueno, pues va de eso y significa que el diseño, 39 00:04:13,520 --> 00:04:18,920 y ha implicado que el diseño es, una clase app para cada aplicación, una clase almacén de 40 00:04:18,920 --> 00:04:25,640 aplicaciones y una clase el propio teléfono, vale, bueno, pues entonces uno ya, una vez que ya más o 41 00:04:25,640 --> 00:04:31,160 menos sabe de qué va esto y ya no le va a sonar a chino las cosas que escriba, puede empezar a 42 00:04:31,160 --> 00:04:38,400 plantearse a programarla, pues venga, lo primero, esta clase no tiene ninguna dificultad, venga, 43 00:04:40,200 --> 00:04:45,640 en dos minutos, la hacéis a la vez que yo, venga. 44 00:04:55,640 --> 00:05:08,800 Vale, simplemente habréis hecho algo así, la clase, vale, entonces ya en aplicaciones que hay 45 00:05:08,800 --> 00:05:14,960 varias clases, recordad que uno debería ya hacer siempre, acostumbrarse a hacer siempre paquetes, 46 00:05:14,960 --> 00:05:20,240 en nuestro caso no porque sea tan imprescindible, porque son tres, cuatro, cinco clases, no son 47 00:05:20,280 --> 00:05:32,560 tantas, pero si es bueno que vayamos entendiendo que las clases pueden tener diferentes significados, 48 00:05:32,560 --> 00:05:37,600 entonces hay unas que tenemos que tener muy claras, que son las clases que están asociadas a entidades, 49 00:05:37,600 --> 00:05:42,680 lo que repetimos siempre, entonces esas clases que están asociadas a entidades de mi aplicación, 50 00:05:42,680 --> 00:05:48,200 se suelen meter en un paquete aparte, entonces tenéis que familiarizaros ya con esa forma de 51 00:05:48,200 --> 00:05:56,560 desarrollar las aplicaciones, ese paquete aparte, que se puede llamar entities, como uno le dé la 52 00:05:56,560 --> 00:06:02,360 gana, yo ahora he cambiado pues para que os vayan sonando los nombres de todo, lo he llamado modelo, 53 00:06:03,880 --> 00:06:11,560 vale, el modelo de una aplicación, el modelo es el diseño de clases entidad de las que consta, 54 00:06:11,640 --> 00:06:18,840 ese es el modelo, en nuestra aplicación anterior su modelo era, teníamos una factura, perdón, 55 00:06:18,840 --> 00:06:24,120 una factura no, teníamos pedidos, teníamos clientes que podían hacer pedidos y teníamos 56 00:06:24,120 --> 00:06:31,360 ítems dentro de los pedidos, esas tres clases eran el modelo, las metíamos en un paquete aparte, 57 00:06:31,360 --> 00:06:40,400 bueno pues, ir familiarizando con esa nomenclatura, con esa forma de hacer las cosas, poco a poco, 58 00:06:41,040 --> 00:06:45,640 irla interiorizando, iros empapando de esa manera, pero luego llegáis a entrevistas de trabajo y no 59 00:06:45,640 --> 00:06:51,320 manejáis los términos, no estáis en el contexto en el que hay que estar, no vale hacer programas, 60 00:06:51,320 --> 00:06:58,120 o hecho un programa estupendo, no, para estar uno en su casa y disfrutarlo sí, pero para salir al 61 00:06:58,120 --> 00:07:02,480 mundo a la hora de trabajar y que os cojan, no vale, vale, entonces iros empapando un poco de 62 00:07:02,480 --> 00:07:07,520 esto, bueno, pues yo he hecho un paquete modelo, con su nombre, uno de los nombres habituales, 63 00:07:07,520 --> 00:07:16,360 donde voy a meter las entidades que representan mi realidad a gestionar o mi modelo, vale y en 64 00:07:16,360 --> 00:07:22,600 esa aplicación app, en esa aplicación app, pues había poco que decidir, las tres propiedades, 65 00:07:22,600 --> 00:07:28,120 no sé qué tipo de dato habréis seleccionado, igual otro, da igual, vale, nombre, versión, 66 00:07:28,120 --> 00:07:35,320 tamaño, lo habitual, un constructor que recibe parámetros para inicializar el objeto ya con 67 00:07:35,320 --> 00:07:41,920 valores y un constructor sin ninguno, útil, si yo quiero crear un objeto app, pero todavía no tengo 68 00:07:41,920 --> 00:07:47,880 las propiedades, getter y setter públicos, para poder acceder a las propiedades que lo normal 69 00:07:47,880 --> 00:07:54,200 es poner privadas, getter y setter públicos y ahora ya, qué puede hacer una aplicación, qué acciones 70 00:07:54,200 --> 00:08:02,040 están relacionadas dentro de mi aplicación gorda con esta clase, pues ejecutar una app, una app en 71 00:08:02,040 --> 00:08:08,480 particular lo que puede es ejecutar, bueno pues tiene sentido poner ahí su método ejecutar, entonces 72 00:08:08,480 --> 00:08:15,440 como lo que hace este método simplemente es mostrar un mensajito, pues devuelve void y no recibe nada, 73 00:08:15,440 --> 00:08:29,760 no recibe nada, vale, entonces este método podría ser estático, Edison, podría serlo el método que yo 74 00:08:29,760 --> 00:08:41,760 he escrito ahí, podría yo ponerle static delante del void, no, por qué no, no te acuerdas, pero sabes que no, bueno tienes un círculo de anteposibilidades, 75 00:08:41,760 --> 00:08:50,760 Andoni, podría ser estático ese método, yo le puedo poner un static delante del void, no, por qué no, 76 00:08:59,760 --> 00:09:06,440 David, podría poner un static delante del void, 77 00:09:11,880 --> 00:09:12,680 Daniel, 78 00:09:20,400 --> 00:09:28,560 a ver, Mario, por qué no, a ver no vale que pongáis el static, yo no soy rojo que digáis no, 79 00:09:29,760 --> 00:09:36,120 le hago un 5 que no me da la explicación, Ismael, 80 00:09:39,120 --> 00:09:46,640 en principio sí, puedo poner el static, a ver en programación las cosas no son en principio al final, sí o no, sí, por qué, 81 00:09:47,640 --> 00:09:58,640 pero eso no es el concepto de static, el método no lo usa otra clase, no tiene nada que ver, 82 00:09:58,640 --> 00:10:11,600 sería esa la razón, a ver, Daniel, podría poner yo ahí static delante del void, no, por qué no, 83 00:10:16,640 --> 00:10:27,400 Moisés, podría poner el static delante del void, por qué no, 84 00:10:36,760 --> 00:10:43,400 esa explicación como tal, en un antepasibilidad, se la das a un jefe y te echa del trabajo, 85 00:10:43,760 --> 00:10:45,520 no tiene una explicación bien dada, 86 00:10:51,080 --> 00:10:55,680 a ver, Diego, una explicación bien dada, en alto porfa de nuevo, 87 00:11:03,000 --> 00:11:05,400 no, porque no puedes instanciar las variables, 88 00:11:06,400 --> 00:11:15,400 no veo la conexión, yo tampoco la veo, a ver, Adrián, podría poner un static, sí o no, y por qué no, 89 00:11:22,400 --> 00:11:31,400 vale, esa sí es la respuesta o casi la respuesta, pero sí, vamos a ver, este método depende de propiedades del objeto, 90 00:11:32,400 --> 00:11:40,400 con lo cual este método depende del objeto que lo llame, para el objeto app que se llame Google Play, 91 00:11:41,400 --> 00:11:48,400 aquí pondrá Google Play, para el objeto app que se llame Spotify, aquí pondrá Spotify, 92 00:11:49,400 --> 00:11:55,400 con lo cual este método depende de una propiedad de la clase que es esta, depende, 93 00:11:55,400 --> 00:11:59,400 depende, con lo cual funciona de forma distinta lo llame el objeto que lo llame, 94 00:12:00,400 --> 00:12:04,400 no, porque depende de una propiedad que no es estática, efectivamente, 95 00:12:05,400 --> 00:12:11,400 con lo cual no es un método estático, por definición, un método estático es un método que da igual el objeto que lo llame, 96 00:12:11,400 --> 00:12:17,400 da lo mismo, porque va a hacer lo mismo, porque no depende de las propiedades del objeto en particular, 97 00:12:18,400 --> 00:12:24,400 vale, esa es la respuesta, vale, no puede serlo porque depende de propiedades del objeto, 98 00:12:25,400 --> 00:12:34,400 entonces, necesito llamar al método para un objeto en concreto, vale, 99 00:12:35,400 --> 00:12:47,400 si este método dijera esto, vale, este método podría ser estático, 100 00:12:49,400 --> 00:12:53,400 obviamente sí, porque este método sí que da igual el objeto que lo llame, 101 00:12:54,400 --> 00:12:59,400 va a hacer lo mismo, que es mostrar un mensaje en consola, va a hacer lo mismo, da igual el objeto que lo llame, 102 00:13:00,400 --> 00:13:11,400 entonces yo podría poner un estático delante y no pasaría nada, vale, efectivamente no pasa nada, 103 00:13:12,400 --> 00:13:16,400 pero hombre, a ver, el sentido de mi aplicación se pierde un poco, 104 00:13:17,400 --> 00:13:22,400 no, eso significa que yo puedo llamar a ese método aunque no exista ninguna clase, 105 00:13:22,400 --> 00:13:26,400 aunque no exista ningún objeto app, eso es lo que significa, verdad, 106 00:13:27,400 --> 00:13:33,400 desde el momento en que el método es estático, y yo lo identifico poniendo el estático delante, 107 00:13:35,400 --> 00:13:45,400 esto significa que yo no necesito que exista ningún objeto app para llamar al método, 108 00:13:46,400 --> 00:13:50,400 lo puedo llamar con el nombre de la clase, vale, pero hombre, pierde un poco el sentido de la aplicación, 109 00:13:51,400 --> 00:13:53,400 se supone que lo que se ejecutan son aplicaciones concretas, 110 00:13:54,400 --> 00:13:58,400 entonces como en este caso no está esta aplicación conectada a un móvil 111 00:13:59,400 --> 00:14:01,400 que lance el proceso de ejecutar la aplicación ni nada, 112 00:14:02,400 --> 00:14:05,400 lo simulamos poniendo un mensaje por consola, lo simulamos, 113 00:14:06,400 --> 00:14:08,400 pero hombre, si mensaje por consola que dependa de la aplicación, 114 00:14:09,400 --> 00:14:12,400 porque es que si no pierde el sentido esta aplicación, vale, 115 00:14:13,400 --> 00:14:15,400 entonces lo que se ejecuta es una aplicación concreto, 116 00:14:15,400 --> 00:14:20,400 por eso le hemos puesto que el subcontenido dependa de una variable del objeto, 117 00:14:21,400 --> 00:14:24,400 dependa para que el método no pueda ser estático y lo tenga que llamar un objeto en concreto, 118 00:14:25,400 --> 00:14:27,400 para que tenga sentido la aplicación, sino que no dejaría de tenerlo, 119 00:14:28,400 --> 00:14:37,400 vale, pues entonces, vale, entonces, 120 00:14:38,400 --> 00:14:44,400 mi papel obviamente es echaros la bronca porque no me contestéis a las cosas que os pregunto 121 00:14:45,400 --> 00:14:50,400 que son muy sencillas después de haberlas insistido un día tras otro, 122 00:14:51,400 --> 00:14:57,400 porque si me decís es porque no te sabes explicar, pues a lo mejor me lo pienso, 123 00:14:58,400 --> 00:14:59,400 pero no creo, sinceramente no creo que sea por eso, 124 00:15:00,400 --> 00:15:04,400 yo creo que es porque no lo estudiéis en casa, creo que es por eso, 125 00:15:05,400 --> 00:15:10,400 y estoy segura del 99%, vale, luego habrá otras razones para otras cosas, 126 00:15:11,400 --> 00:15:13,400 pero para que no me contestéis a estas preguntas que yo os hago 127 00:15:13,400 --> 00:15:17,400 después de haberlo insistido un montón de veces, yo creo que la razón es esa, 128 00:15:18,400 --> 00:15:23,400 y la solución entonces está en vuestra mano, vale, está exclusivamente en vuestra mano. 129 00:15:30,400 --> 00:15:34,400 Más que nada porque, hombre, el beneficio obviamente es para vosotros, 130 00:15:35,400 --> 00:15:39,400 que esto no es que tengo que sacar el título de cuarto de la ESO porque es que es obligatorio, 131 00:15:39,400 --> 00:15:43,400 necesito, no, esto es estoy aquí porque quiero trabajar de esto, 132 00:15:44,400 --> 00:15:49,400 pues entonces solo hay un camino, solo hay un camino, que es currárselo y estudiar, 133 00:15:50,400 --> 00:15:54,400 porque incluso en el mejor de los casos, en el mejor de los casos, 134 00:15:55,400 --> 00:15:58,400 os podréis trasplantar un cerebro, achar GPT en la cabeza y podréis conectaros 135 00:15:59,400 --> 00:16:02,400 y que lo hiciera todo y aprobarais, incluso en ese caso no os vale para nada, 136 00:16:03,400 --> 00:16:07,400 no os vale para nada que hay muchos chavales fuera que han durado un mes en las prácticas, 137 00:16:07,400 --> 00:16:13,400 no os vale para nada, entonces por favor, no perdáis el tiempo que estáis dedicando a estar aquí. 138 00:16:16,400 --> 00:16:19,400 Bueno, y yo no os he hecho la charla por nada personal, obviamente, 139 00:16:20,400 --> 00:16:21,400 sino porque es que es mi obligación. 140 00:16:24,400 --> 00:16:29,400 Vale, pues entonces, la clase A, ¿tú de qué te pones? 141 00:16:30,400 --> 00:16:31,400 ¿Tienes algún comentario que hacerme? 142 00:16:33,400 --> 00:16:34,400 No pasaría nada, yo la cogería. 143 00:16:38,400 --> 00:16:39,400 Sí, seguro que sí, venga, a ver. 144 00:16:45,400 --> 00:16:49,400 Bueno, sobre esta clase está claro, ¿no? Ya está, no hay más. 145 00:16:50,400 --> 00:16:54,400 Vale, pues venga, ahora vámonos a la otra clase que el que ha hecho el diseño ha decidido. 146 00:16:55,400 --> 00:16:58,400 El almacén de aplicaciones, el que gestiona las aplicaciones que se van instalando, 147 00:16:59,400 --> 00:17:00,400 desinstalando, lo que sea. 148 00:17:01,400 --> 00:17:04,400 Vale, esto es la clase aplicación, que es una aplicación que lo único que puede hacer es ejecutarse, ya está. 149 00:17:05,400 --> 00:17:12,400 Y luego otra clase, almacén de aplicaciones, que gestiona las aplicaciones que pueden estar ahí. 150 00:17:14,400 --> 00:17:18,400 Pues venga, esa clase ya está decidida también, que se llame App Store, 151 00:17:19,400 --> 00:17:23,400 y está decidida su propiedad, que es un array de aplicaciones, 152 00:17:24,400 --> 00:17:27,400 porque el almacén de aplicaciones puede tener varias, ¿vale? 153 00:17:28,400 --> 00:17:33,400 Entonces aquí, pues simplemente, pues para cambiar y hacer diferentes cosas, 154 00:17:34,400 --> 00:17:36,400 vamos a hacer un constructor distinto. 155 00:17:37,400 --> 00:17:40,400 Entonces el constructor, que es el que instancia el almacén, 156 00:17:41,400 --> 00:17:45,400 va a recibir un conjunto de aplicaciones para instanciarlos, 157 00:17:46,400 --> 00:17:50,400 pero las va a recibir de una manera muy rara, en un stream, 158 00:17:51,400 --> 00:17:55,400 para que nosotros destripemos el stream y de ese stream saquemos ya cada una de las aplicaciones. 159 00:17:56,400 --> 00:17:58,400 A ver, vamos por partes. 160 00:17:59,400 --> 00:18:01,400 Vamos a empezar con esta clase App Store, que es la siguiente. 161 00:18:03,400 --> 00:18:07,400 Pues venga, dentro del modelo, como esta es una entidad, pues otra clase. 162 00:18:07,400 --> 00:18:29,400 Venga, pues esta tiene propiedades, el conjunto de aplicaciones. 163 00:18:30,400 --> 00:18:32,400 Un conjunto de aplicaciones. 164 00:18:33,400 --> 00:18:36,400 Entonces, por ahora, esperemos ya que por poco tiempo, 165 00:18:37,400 --> 00:18:42,400 para guardar un conjunto de muchas cosas, pues esto es lo único que tenemos. 166 00:18:43,400 --> 00:18:44,400 ¿Vale? 167 00:18:46,400 --> 00:18:47,400 Vale. 168 00:18:50,400 --> 00:18:52,400 Entonces, el get y el set sí que vamos a ponérselo, 169 00:18:53,400 --> 00:18:56,400 porque esa es una propiedad privada y desde fuera queremos dar permiso para acceder a ella, 170 00:18:57,400 --> 00:18:58,400 si es que queremos darlo. 171 00:18:59,400 --> 00:19:00,400 El get y el set, pues bueno, vamos a ponérselo. 172 00:19:01,400 --> 00:19:02,400 Vale. 173 00:19:03,400 --> 00:19:06,400 Otra cosa sería que una vez hecha una aplicación, ya funcionando ya, 174 00:19:07,400 --> 00:19:14,400 pues uno dijera, a ver, que las otras clases no van a necesitar nunca hacer ni get ni set 175 00:19:15,400 --> 00:19:17,400 de estos objetos, porque nunca van a quitar leer ni escribir, 176 00:19:18,400 --> 00:19:19,400 pues entonces hasta podría quitar los get y los set. 177 00:19:20,400 --> 00:19:23,400 Cuanto más proteja yo y más encapsule, casi mejor. 178 00:19:24,400 --> 00:19:26,400 Pero por defecto, no. 179 00:19:26,400 --> 00:19:28,400 Cuanto más proteja yo y más encapsule, casi mejor. 180 00:19:29,400 --> 00:19:32,400 Pero por defecto, yo ofrezco get y set. 181 00:19:33,400 --> 00:19:34,400 Vale. Y ahora, el constructor. 182 00:19:35,400 --> 00:19:36,400 El constructor aquí es el raro uno. 183 00:19:37,400 --> 00:19:38,400 ¿Vale? El constructor. 184 00:19:39,400 --> 00:19:43,400 Vamos a hacer un constructor que reciba apps para el store, para el almacén, 185 00:19:44,400 --> 00:19:48,400 que reciba apps, pero las va a recibir en un string con esta pinta tan rara. 186 00:19:49,400 --> 00:19:50,400 ¿Vale? 187 00:19:50,400 --> 00:19:51,400 Vale. 188 00:19:55,400 --> 00:20:01,400 Entonces, el constructor va a ser, como todos los constructores, 189 00:20:02,400 --> 00:20:04,400 se tendrá que llamar igual que el nombre de la clase, 190 00:20:05,400 --> 00:20:07,400 y va a recibir una cadena. 191 00:20:17,400 --> 00:20:19,400 Y esta cadena es de este estilo. 192 00:20:20,400 --> 00:20:22,400 Es una sucesión de nombre de aplicación, coma, 193 00:20:23,400 --> 00:20:25,400 versión de aplicación, coma, tamaño de aplicación. 194 00:20:26,400 --> 00:20:27,400 Punto y coma. 195 00:20:28,400 --> 00:20:29,400 Patatín, patatín, patatín. Punto y coma. 196 00:20:30,400 --> 00:20:33,400 Entonces, cada uno de estos packs que van en punto y coma, 197 00:20:34,400 --> 00:20:35,400 es todo un string entero. 198 00:20:40,400 --> 00:20:42,400 A ver si lo consigo hacer grande o no. 199 00:20:45,400 --> 00:20:46,400 Vale. 200 00:20:47,400 --> 00:20:48,400 Aquí, a lo mejor, en un ejemplo concreto, 201 00:20:48,400 --> 00:20:50,400 aquí en el ejemplo igual, se ve mejor. 202 00:20:51,400 --> 00:20:52,400 ¿Vale? 203 00:20:52,400 --> 00:20:54,400 Entonces, lo que recibe es un string entero. 204 00:20:55,400 --> 00:20:57,400 Y ahora, de este string, tendremos que entrar nosotros, 205 00:20:58,400 --> 00:21:01,400 a ver cómo hacemos, para ir separándolo primero por puntos y comas. 206 00:21:02,400 --> 00:21:06,400 Porque cada punto y coma separa la información de una app en concreto. 207 00:21:07,400 --> 00:21:11,400 Y ahora, entre los puntos y comas, viene la información de una app, 208 00:21:12,400 --> 00:21:13,400 separada por comas. 209 00:21:14,400 --> 00:21:17,400 El nombre, la versión y el tamaño. 210 00:21:18,400 --> 00:21:20,400 Nombre, versión y tamaño. 211 00:21:21,400 --> 00:21:23,400 Nombre, versión y tamaño. 212 00:21:24,400 --> 00:21:25,400 ¿Vale? 213 00:21:26,400 --> 00:21:27,400 Pero todo eso que tiene un string. 214 00:21:28,400 --> 00:21:29,400 ¿Pero qué pasa? 215 00:21:30,400 --> 00:21:32,400 Que string, como ya sabemos, es una clase. 216 00:21:33,400 --> 00:21:35,400 Entonces, como string es una clase, 217 00:21:36,400 --> 00:21:40,400 ahora ya sabemos que los objetos, 218 00:21:41,400 --> 00:21:44,400 string, como apps, tienen métodos para aburrir. 219 00:21:45,400 --> 00:21:46,400 String no lo hemos hecho nosotros. 220 00:21:46,400 --> 00:21:48,400 Claro, pero esta clase string, 221 00:21:49,400 --> 00:21:51,400 está dentro de la máquina virtual, esta JRE, 222 00:21:52,400 --> 00:21:53,400 y si entramos en ella, en su código, 223 00:21:54,400 --> 00:21:56,400 pues la clase string, que es esta, 224 00:21:57,400 --> 00:21:59,400 esta es la clase string que no hemos hecho nosotros, 225 00:22:00,400 --> 00:22:01,400 pero la estamos utilizando todo el rato, 226 00:22:02,400 --> 00:22:05,400 esta clase string, tiene tropecientos métodos, 227 00:22:06,400 --> 00:22:08,400 algunos estáticos y otros no, 228 00:22:09,400 --> 00:22:10,400 para hacer cosas. 229 00:22:11,400 --> 00:22:12,400 ¿Vale? Tiene un montón. 230 00:22:12,400 --> 00:22:13,400 Ya tiene un montón. 231 00:22:15,400 --> 00:22:16,400 ¿Vale? 232 00:22:19,400 --> 00:22:22,400 A ver si llego a alguno que podamos entender el nombrecito. 233 00:22:26,400 --> 00:22:27,400 Primero están... 234 00:22:28,400 --> 00:22:30,400 A ver, vámonos muy abajo, a ver. 235 00:22:31,400 --> 00:22:33,400 Get bytes equals... 236 00:22:34,400 --> 00:22:36,400 Bueno, la clase string tiene tropecientos métodos. 237 00:22:37,400 --> 00:22:40,400 El que hizo la clase y la metió en la librería de la JRE 238 00:22:41,400 --> 00:22:42,400 para que nosotros la usemos, 239 00:22:43,400 --> 00:22:44,400 que ya hemos visto varias veces 240 00:22:45,400 --> 00:22:47,400 cómo nuestros proyectos siempre tienen esas clases ahí, 241 00:22:48,400 --> 00:22:49,400 las que pueden usar, ¿no? 242 00:22:50,400 --> 00:22:51,400 Tienen estas, 243 00:22:52,400 --> 00:22:53,400 y las otras, 244 00:22:54,400 --> 00:22:55,400 y las otras, 245 00:22:56,400 --> 00:22:57,400 y las otras, 246 00:22:57,400 --> 00:22:58,400 tienen estas 247 00:23:00,400 --> 00:23:01,400 clases, 248 00:23:02,400 --> 00:23:03,400 ¿verdad? 249 00:23:04,400 --> 00:23:05,400 Ahí en la JRE metidas 250 00:23:06,400 --> 00:23:08,400 hay tropecientos mil millones de clases 251 00:23:09,400 --> 00:23:10,400 que nosotros podemos usar si nos da la gana. 252 00:23:11,400 --> 00:23:12,400 ¿Vale? Como por ejemplo, 253 00:23:13,400 --> 00:23:14,400 esta que estoy yo mirando, 254 00:23:15,400 --> 00:23:16,400 esta que he abierto, 255 00:23:17,400 --> 00:23:18,400 la clase string. 256 00:23:20,400 --> 00:23:21,400 Entonces, string, 257 00:23:22,400 --> 00:23:23,400 bueno, ahí está, ¿vale? string. 258 00:23:24,400 --> 00:23:25,400 ¿Qué es esa? 259 00:23:25,400 --> 00:23:26,400 String es una clase, 260 00:23:27,400 --> 00:23:28,400 más, 261 00:23:29,400 --> 00:23:30,400 qué curioso, esa clase el que la hizo, 262 00:23:31,400 --> 00:23:32,400 ¿qué le puso como propiedad? 263 00:23:33,400 --> 00:23:35,400 Pues le puso como propiedad a la clase string 264 00:23:36,400 --> 00:23:38,400 los caracteres que la componen. 265 00:23:40,400 --> 00:23:41,400 ¿Veis? 266 00:23:42,400 --> 00:23:44,400 Que la clase string tiene como propiedad, 267 00:23:47,400 --> 00:23:48,400 me he saltado la propiedad, 268 00:23:49,400 --> 00:23:50,400 ¿ya o no me la he saltado? 269 00:23:50,400 --> 00:23:51,400 No. 270 00:23:52,400 --> 00:23:53,400 Ahí, clase string, 271 00:23:54,400 --> 00:23:55,400 ¿veis? 272 00:23:57,400 --> 00:23:59,400 La propiedad que tiene la clase string 273 00:24:00,400 --> 00:24:03,400 son los caracteres que componen la cadena. 274 00:24:04,400 --> 00:24:05,400 ¿Vale? 275 00:24:06,400 --> 00:24:07,400 Los caracteres. 276 00:24:08,400 --> 00:24:09,400 Y luego tiene un montón de métodos 277 00:24:10,400 --> 00:24:11,400 para hacer cosas con esos caracteres. 278 00:24:12,400 --> 00:24:14,400 Nosotros estamos usando los objetos string 279 00:24:15,400 --> 00:24:16,400 como si fueran variables primitivas, 280 00:24:17,400 --> 00:24:18,400 pero ahora ya podemos entender perfectamente 281 00:24:18,400 --> 00:24:19,400 que no lo son. 282 00:24:20,400 --> 00:24:21,400 Cada vez que usamos una cadena, 283 00:24:22,400 --> 00:24:23,400 algo entre dos comillas, 284 00:24:24,400 --> 00:24:25,400 un objeto string es un objeto. 285 00:24:26,400 --> 00:24:28,400 ¿Cuál es la propiedad que tiene dentro? 286 00:24:29,400 --> 00:24:31,400 Sus caracteres que estarán guardados aquí en value. 287 00:24:32,400 --> 00:24:33,400 ¿Vale? 288 00:24:34,400 --> 00:24:35,400 Lo que pasa es que yo no puedo acceder directamente, 289 00:24:36,400 --> 00:24:37,400 cuando tengo una cadena string 290 00:24:38,400 --> 00:24:39,400 no puedo acceder directamente a punto value 291 00:24:40,400 --> 00:24:41,400 porque es privada, no puedo. 292 00:24:42,400 --> 00:24:43,400 Pero cuando yo tengo un objeto string ese, 293 00:24:44,400 --> 00:24:45,400 si esto en lugar de privado fuera public 294 00:24:46,400 --> 00:24:47,400 yo podría hacer ese punto value 295 00:24:48,400 --> 00:24:49,400 y podría, ¿a dónde estaría accediendo? 296 00:24:50,400 --> 00:24:51,400 A los caracteres que forman la cadena. 297 00:24:52,400 --> 00:24:53,400 ¿Vale? 298 00:24:54,400 --> 00:24:55,400 Pero el que hizo la clase string 299 00:24:56,400 --> 00:24:57,400 no me permite acceder así a esos caracteres 300 00:24:58,400 --> 00:24:59,400 porque le ha puesto un private. 301 00:25:00,400 --> 00:25:01,400 ¿Qué es lo que hace? 302 00:25:02,400 --> 00:25:03,400 Ofrecerme un montón de métodos, 303 00:25:04,400 --> 00:25:05,400 la tira que tengo por ahí abajo, 304 00:25:06,400 --> 00:25:07,400 para hacer cosas con ese string. 305 00:25:08,400 --> 00:25:09,400 Ver si es igual a otro con equals. 306 00:25:10,400 --> 00:25:11,400 Ver cuál es el carácter de una posición con charAt. 307 00:25:12,400 --> 00:25:13,400 Algunos, muy poquitos los hemos visto, ¿verdad? 308 00:25:14,400 --> 00:25:15,400 Ver qué tamaño tiene ese string 309 00:25:16,400 --> 00:25:17,400 con el punto length. 310 00:25:18,400 --> 00:25:19,400 ¿Vale? 311 00:25:20,400 --> 00:25:21,400 El método punto length, 312 00:25:22,400 --> 00:25:23,400 si lo buscamos ahora, 313 00:25:24,400 --> 00:25:25,400 ¿qué nos devuelve? 314 00:25:26,400 --> 00:25:27,400 La longitud de este array. 315 00:25:28,400 --> 00:25:29,400 ¿Vale? 316 00:25:30,400 --> 00:25:31,400 O sea, cuando nosotros usamos una cadena 317 00:25:32,400 --> 00:25:33,400 y hacemos esto, 318 00:25:34,400 --> 00:25:35,400 por ejemplo, yo aquí tengo apps 319 00:25:36,400 --> 00:25:37,400 y apps es una cadena, ¿no? 320 00:25:38,400 --> 00:25:39,400 Entonces yo puedo acceder a su tamaño 321 00:25:40,400 --> 00:25:41,400 con el método length 322 00:25:42,400 --> 00:25:43,400 porque ya lo hemos hecho muchas veces, ¿verdad? 323 00:25:44,400 --> 00:25:45,400 Imagínate que yo quiero aquí mostrar esto. 324 00:25:46,400 --> 00:25:47,400 Vale. 325 00:25:48,400 --> 00:25:49,400 Directamente diciendo, 326 00:25:50,400 --> 00:25:51,400 cuando tienes un objeto, 327 00:25:52,400 --> 00:25:53,400 una variable string, 328 00:25:54,400 --> 00:25:55,400 puedes mostrar su tamaño con este método. 329 00:25:56,400 --> 00:25:57,400 Vale, pues hemos llamado al método 330 00:25:58,400 --> 00:25:59,400 y nos hemos creído 331 00:26:00,400 --> 00:26:01,400 que este método te devuelve 332 00:26:02,400 --> 00:26:03,400 el número de caracteres del objeto string. 333 00:26:04,400 --> 00:26:05,400 Claro, 334 00:26:06,400 --> 00:26:07,400 porque esto pertenece, 335 00:26:08,400 --> 00:26:09,400 es un objeto que pertenece a la clase string 336 00:26:10,400 --> 00:26:11,400 y esa clase string está aquí hecha 337 00:26:12,400 --> 00:26:13,400 y la estamos usando 338 00:26:14,400 --> 00:26:15,400 y esa clase string 339 00:26:16,400 --> 00:26:17,400 tiene como propiedad interna 340 00:26:18,400 --> 00:26:19,400 y de bytes 341 00:26:20,400 --> 00:26:21,400 que la componen 342 00:26:22,400 --> 00:26:23,400 y luego tendrá un método por ahí abajo, 343 00:26:24,400 --> 00:26:25,400 el length. 344 00:26:26,400 --> 00:26:27,400 Si pude, 345 00:26:28,400 --> 00:26:29,400 ¿cuál es el atajo para buscar aquí rápido 346 00:26:30,400 --> 00:26:31,400 en este 347 00:26:32,400 --> 00:26:33,400 control F, verdad? 348 00:26:34,400 --> 00:26:35,400 Lo de los atajos 349 00:26:37,400 --> 00:26:38,400 lo llevo fatal. 350 00:26:44,400 --> 00:26:45,400 ¿Vale? 351 00:26:46,400 --> 00:26:47,400 El método length de la clase string, 352 00:26:48,400 --> 00:26:49,400 ¿el método que hace? 353 00:26:50,400 --> 00:26:51,400 Te devuelve el tamaño del array value. 354 00:26:52,400 --> 00:26:53,400 Es lo que te devuelve. 355 00:26:54,400 --> 00:26:55,400 Lo que quiero es que 356 00:26:56,400 --> 00:26:57,400 veáis como todo cuadra, 357 00:26:58,400 --> 00:26:59,400 todo casa, 358 00:27:00,400 --> 00:27:01,400 que lo vayáis entendiendo todo 359 00:27:02,400 --> 00:27:03,400 porque esa es la base 360 00:27:04,400 --> 00:27:05,400 de que podéis seguir aprendiendo 361 00:27:06,400 --> 00:27:07,400 y también quiero que veáis 362 00:27:08,400 --> 00:27:09,400 que lo que está en el fondo de todo 363 00:27:10,400 --> 00:27:11,400 siempre son los arrays, 364 00:27:12,400 --> 00:27:13,400 siempre. 365 00:27:14,400 --> 00:27:15,400 En la base de string, por supuesto, 366 00:27:16,400 --> 00:27:17,400 porque es un array de bytes. 367 00:27:18,400 --> 00:27:19,400 Bueno, 368 00:27:20,400 --> 00:27:21,400 pues entonces, todo esto venía 369 00:27:22,400 --> 00:27:23,400 igual que me ofrece el método length 370 00:27:24,400 --> 00:27:25,400 de la clase string, 371 00:27:26,400 --> 00:27:27,400 me ofrece tropecientos métodos. 372 00:27:28,400 --> 00:27:29,400 Pues nuestra forma de trabajo ahora será, 373 00:27:30,400 --> 00:27:31,400 oye, ojo, 374 00:27:32,400 --> 00:27:33,400 que yo necesito 375 00:27:34,400 --> 00:27:35,400 de un string path 376 00:27:36,400 --> 00:27:37,400 que tiene todo este chorizo, 377 00:27:38,400 --> 00:27:39,400 voy a tener que ponerme ahora a trabajar 378 00:27:40,400 --> 00:27:41,400 y a ver cómo hago 379 00:27:42,400 --> 00:27:43,400 para sacarle estas partes, 380 00:27:44,400 --> 00:27:45,400 separarlas en diferentes variables 381 00:27:46,400 --> 00:27:47,400 para luego coger cada una de ellas 382 00:27:48,400 --> 00:27:49,400 y llegar con ella a un objeto app 383 00:27:50,400 --> 00:27:51,400 y darle estos valores. 384 00:27:52,400 --> 00:27:53,400 Bueno, pues entonces, 385 00:27:54,400 --> 00:27:55,400 cuando ya se me plantean esos temas, 386 00:27:56,400 --> 00:27:57,400 digo, a ver, 387 00:27:58,400 --> 00:27:59,400 gracias a la aprobación de todos los objetos, 388 00:28:00,400 --> 00:28:01,400 la clase string seguramente tenga ya 389 00:28:02,400 --> 00:28:03,400 un montón de métodos hechos 390 00:28:04,400 --> 00:28:05,400 que yo puedo usar. 391 00:28:06,400 --> 00:28:07,400 Pues voy a cotillear en ellos 392 00:28:08,400 --> 00:28:09,400 y voy a buscarlos. 393 00:28:10,400 --> 00:28:11,400 A ver si tiene algún método 394 00:28:12,400 --> 00:28:13,400 que me permita separar una cadena 395 00:28:14,400 --> 00:28:15,400 en partes dándole el carácter separador 396 00:28:16,400 --> 00:28:17,400 que me interesa. 397 00:28:18,400 --> 00:28:19,400 Voy a resolver mi problema final 398 00:28:20,400 --> 00:28:21,400 que es 399 00:28:22,400 --> 00:28:23,400 coger cada una de estas porciones 400 00:28:24,400 --> 00:28:25,400 a su vez para cada porción 401 00:28:26,400 --> 00:28:27,400 coger cada una de ellas 402 00:28:28,400 --> 00:28:29,400 y con cada una de ellas 403 00:28:30,400 --> 00:28:31,400 instanciar un objeto app 404 00:28:32,400 --> 00:28:33,400 y pasarlo al array 405 00:28:34,400 --> 00:28:35,400 interno de App Store. 406 00:28:36,400 --> 00:28:37,400 ¿Vale? 407 00:28:38,400 --> 00:28:39,400 Y esa es la dinámica habitual. 408 00:28:40,400 --> 00:28:41,400 Uno, cuando tiene que hacer cosas 409 00:28:42,400 --> 00:28:43,400 lo que tendrá que indagar es 410 00:28:44,400 --> 00:28:45,400 si las clases a las que pertenecen 411 00:28:46,400 --> 00:28:47,400 los objetos con las que hace cosas 412 00:28:48,400 --> 00:28:49,400 tienen métodos que le hagan 413 00:28:50,400 --> 00:28:51,400 lo que necesita. 414 00:28:52,400 --> 00:28:53,400 Es lo que tenemos que hacer ahora. 415 00:28:54,400 --> 00:28:55,400 La clase string tiene métodos 416 00:28:56,400 --> 00:28:57,400 que hacen lo que yo necesito 417 00:28:58,400 --> 00:28:59,400 que es dividir en partes. 418 00:29:00,400 --> 00:29:01,400 Bueno, pues es el trabajo ahora. 419 00:29:02,400 --> 00:29:03,400 Pues venga, poneros en un rato 420 00:29:04,400 --> 00:29:05,400 a ver de este constructor 421 00:29:06,400 --> 00:29:07,400 de aquí 422 00:29:08,400 --> 00:29:09,400 que sacamos. 423 00:29:10,400 --> 00:29:11,400 ¿Vale? 424 00:29:12,400 --> 00:29:13,400 Entonces el objetivo de este constructor 425 00:29:14,400 --> 00:29:15,400 repito es 426 00:29:18,400 --> 00:29:19,400 recibir esta string 427 00:29:20,400 --> 00:29:21,400 y romper esa string 428 00:29:22,400 --> 00:29:23,400 o sea sacar de ella los datos 429 00:29:24,400 --> 00:29:25,400 para con ella 430 00:29:26,400 --> 00:29:27,400 crear un array 431 00:29:28,400 --> 00:29:29,400 de objetos app 432 00:29:30,400 --> 00:29:31,400 que se guarden en Store. 433 00:29:32,400 --> 00:29:33,400 ¿Vale? 434 00:29:34,400 --> 00:29:35,400 Ese es el objetivo de este constructor. 435 00:29:36,400 --> 00:29:37,400 Entonces 436 00:29:38,400 --> 00:29:39,400 en este ejemplo concreto 437 00:29:40,400 --> 00:29:41,400 crearía un array con tres 438 00:29:42,400 --> 00:29:43,400 con cinco, ¿no? 439 00:29:44,400 --> 00:29:45,400 Uno 440 00:29:46,400 --> 00:29:47,400 dos 441 00:29:48,400 --> 00:29:49,400 tres 442 00:29:50,400 --> 00:29:51,400 cuatro 443 00:29:52,400 --> 00:29:53,400 y cinco. 444 00:29:54,400 --> 00:29:55,400 El resultado final de ese constructor 445 00:29:56,400 --> 00:29:57,400 tendría que ser 446 00:29:58,400 --> 00:29:59,400 haber creado un array 447 00:30:00,400 --> 00:30:01,400 de cinco objetos app 448 00:30:02,400 --> 00:30:03,400 para almacendárselo a esta propiedad. 449 00:30:04,400 --> 00:30:05,400 Es decir, es un constructor 450 00:30:06,400 --> 00:30:07,400 que en realidad también está 451 00:30:08,400 --> 00:30:09,400 inicializando la propiedad 452 00:30:10,400 --> 00:30:11,400 pero la está inicializando 453 00:30:12,400 --> 00:30:13,400 en lugar de que yo le pase un array 454 00:30:14,400 --> 00:30:15,400 directamente o igual se lo paso 455 00:30:16,400 --> 00:30:17,400 lo asigna y listo 456 00:30:18,400 --> 00:30:19,400 para construir el array de arriba. 457 00:30:20,400 --> 00:30:21,400 ¿Vale? 458 00:30:26,400 --> 00:30:27,400 A ver 459 00:30:28,400 --> 00:30:29,400 claro la idea no es abrir el código 460 00:30:30,400 --> 00:30:31,400 y buscar porque uno se vuelve loco. 461 00:30:32,400 --> 00:30:33,400 Entonces 462 00:30:34,400 --> 00:30:35,400 gracias a la ayuda 463 00:30:36,400 --> 00:30:37,400 a la ayuda del Eclipse 464 00:30:38,400 --> 00:30:39,400 pues ya sabéis que si uno 465 00:30:40,400 --> 00:30:42,400 y el que no lo tenga presente 466 00:30:43,400 --> 00:30:44,400 claro 467 00:30:45,400 --> 00:30:46,400 pues si uno teclea un objeto 468 00:30:46,400 --> 00:30:47,400 de una clase 469 00:30:48,400 --> 00:30:49,400 y da a punto 470 00:30:50,400 --> 00:30:51,400 le salen todos los métodos que tiene 471 00:30:52,400 --> 00:30:53,400 a los que puede llamar por ser de esa clase 472 00:30:54,400 --> 00:30:55,400 y aquí le sale 473 00:30:56,400 --> 00:30:57,400 de todo 474 00:30:58,400 --> 00:30:59,400 cada uno con su ayuda correspondiente. 475 00:31:00,400 --> 00:31:01,400 Entonces aquí 476 00:31:02,400 --> 00:31:03,400 esta tarea es importante 477 00:31:04,400 --> 00:31:05,400 porque es una tarea que hay que realizar 478 00:31:06,400 --> 00:31:07,400 continuamente uno de forma autónoma 479 00:31:08,400 --> 00:31:09,400 que es imposible que uno se sepa 480 00:31:10,400 --> 00:31:11,400 de millones de clases 481 00:31:12,400 --> 00:31:13,400 los millones de métodos. 482 00:31:14,400 --> 00:31:15,400 Entonces uno tiene que desarrollar 483 00:31:16,400 --> 00:31:17,400 los métodos 484 00:31:18,400 --> 00:31:19,400 pero y voy a mirar en los métodos 485 00:31:20,400 --> 00:31:21,400 a ver me valdrá este 486 00:31:22,400 --> 00:31:23,400 por ejemplo este 487 00:31:23,400 --> 00:31:24,400 ¿Este qué te hace? 488 00:31:25,400 --> 00:31:26,400 Hombre pues tiene toda la pinta 489 00:31:27,400 --> 00:31:28,400 de que te convierte 490 00:31:29,400 --> 00:31:30,400 el objeto string que llame al método 491 00:31:31,400 --> 00:31:32,400 en un Array de Char 492 00:31:33,400 --> 00:31:34,400 y se lo devuelve. 493 00:31:35,400 --> 00:31:36,400 vale, este substring 494 00:31:37,400 --> 00:31:38,400 la ayuda lo dirá 495 00:31:39,400 --> 00:31:40,400 pero tiene pinta de que lo que hace 496 00:31:41,400 --> 00:31:42,400 es devolverte un string 497 00:31:43,400 --> 00:31:44,400 Lo que te pone a la derecha 498 00:31:44,400 --> 00:31:45,400 que es el substring 499 00:31:46,400 --> 00:31:47,400 que está encerrado 500 00:31:48,400 --> 00:31:49,400 entre este índice y este otro 501 00:31:50,400 --> 00:31:51,400 bueno pues aquí uno va viendo 502 00:31:52,400 --> 00:31:53,400 las posibilidades que tiene 503 00:31:54,400 --> 00:31:55,400 aquí tiene la ayuda 504 00:31:56,400 --> 00:31:57,400 y decide qué métodos 505 00:31:58,400 --> 00:31:59,400 le pueden interesar 506 00:32:00,400 --> 00:32:01,400 para conseguir su objetivo 507 00:32:02,400 --> 00:32:03,400 vale 508 00:32:04,400 --> 00:32:05,400 y 509 00:32:07,400 --> 00:32:08,400 uno tiene si no siempre 510 00:32:09,400 --> 00:32:10,400 aunque es la misma 511 00:32:11,400 --> 00:32:12,400 la documentación que te ofrece 512 00:32:12,400 --> 00:32:13,400 ¿qué te gira de esta? 513 00:32:14,400 --> 00:32:15,400 pues claro 514 00:32:16,400 --> 00:32:17,400 imaginaos que uno quiere buscar 515 00:32:18,400 --> 00:32:19,400 los métodos de una clase 516 00:32:20,400 --> 00:32:21,400 pues yo creo que ya lo primero 517 00:32:22,400 --> 00:32:23,400 que me va a salir 518 00:32:24,400 --> 00:32:25,400 JavaScript no 519 00:32:31,400 --> 00:32:32,400 a ver 520 00:32:39,400 --> 00:32:40,400 no, esto no quiero 521 00:32:40,400 --> 00:32:41,400 quiero la 522 00:32:47,400 --> 00:32:48,400 la documentación oficial 523 00:32:49,400 --> 00:32:50,400 de Oracle 524 00:32:54,400 --> 00:32:55,400 que no, que quiero yo 525 00:32:56,400 --> 00:32:57,400 que me salga 526 00:32:58,400 --> 00:32:59,400 vale 527 00:33:09,400 --> 00:33:10,400 vale esto por ejemplo 528 00:33:11,400 --> 00:33:12,400 vale 529 00:33:15,400 --> 00:33:16,400 vale 530 00:33:17,400 --> 00:33:18,400 fijaos que aspecto tiene esta web 531 00:33:19,400 --> 00:33:20,400 de estilo 532 00:33:21,400 --> 00:33:22,400 de estilo es idéntica 533 00:33:23,400 --> 00:33:24,400 a la web que generamos nosotros 534 00:33:25,400 --> 00:33:26,400 el otro día para documentar 535 00:33:27,400 --> 00:33:28,400 o la que estamos documentando 536 00:33:29,400 --> 00:33:30,400 o la de teclado 537 00:33:31,400 --> 00:33:32,400 tiene el mismo estilo 538 00:33:33,400 --> 00:33:34,400 claro porque es una documentación 539 00:33:35,400 --> 00:33:36,400 JavaDoc generada igual 540 00:33:37,400 --> 00:33:38,400 que generamos nosotros la nuestra 541 00:33:39,400 --> 00:33:40,400 para la clase teclado 542 00:33:41,400 --> 00:33:42,400 igual, generada igual 543 00:33:43,400 --> 00:33:44,400 vale pues esta es 544 00:33:45,400 --> 00:33:46,400 la documentación que tiene Oracle 545 00:33:47,400 --> 00:33:48,400 sobre todas las clases 546 00:33:49,400 --> 00:33:50,400 que distribuyen todas sus JDKs 547 00:33:51,400 --> 00:33:52,400 es la documentación oficial 548 00:33:53,400 --> 00:33:54,400 y uno podría navegar por aquí 549 00:33:55,400 --> 00:33:56,400 y encontrarlo todo 550 00:33:57,400 --> 00:33:58,400 con esa documentación estándar 551 00:33:59,400 --> 00:34:00,400 y lo que nos escribe aquí 552 00:34:02,400 --> 00:34:03,400 cuando 553 00:34:05,400 --> 00:34:06,400 lo que nos escribe aquí a la derecha 554 00:34:07,400 --> 00:34:08,400 cuando nos ofrece la ayuda de un método 555 00:34:09,400 --> 00:34:10,400 es lo mismito que encontraríamos 556 00:34:11,400 --> 00:34:12,400 en esa documentación 557 00:34:12,400 --> 00:34:13,400 lo mismo 558 00:34:13,400 --> 00:34:14,400 vale entonces uno puede encontrar 559 00:34:15,400 --> 00:34:16,400 la explicación de lo que hace cada método 560 00:34:17,400 --> 00:34:18,400 bien a través del eclipse 561 00:34:19,400 --> 00:34:20,400 o bien a través de la web 562 00:34:20,400 --> 00:34:21,400 siempre el eclipse es más cómodo 563 00:34:22,400 --> 00:34:23,400 y a veces es que incluso el propio nombre 564 00:34:24,400 --> 00:34:25,400 si el nombre está bien elegido 565 00:34:25,400 --> 00:34:26,400 ya es que te dice lo que hace 566 00:34:27,400 --> 00:34:28,400 y el tipo de dato que te devuelve 567 00:34:29,400 --> 00:34:30,400 entonces a veces el propio nombre 568 00:34:31,400 --> 00:34:32,400 ya te lo dice 569 00:34:33,400 --> 00:34:34,400 de ahí la importancia de elegir bien 570 00:34:35,400 --> 00:34:36,400 los nombres de los métodos 571 00:34:37,400 --> 00:34:38,400 que os dice en su momento 572 00:34:39,400 --> 00:34:40,400 porque la idea es que cuando uno vea 573 00:34:41,400 --> 00:34:42,400 el nombre de tu método 574 00:34:43,400 --> 00:34:44,400 rápidamente sepa lo que hace 575 00:34:45,400 --> 00:34:46,400 y no le dificultes las cosas 576 00:34:47,400 --> 00:34:48,400 y te va a irse a buscar documentaciones 577 00:34:49,400 --> 00:34:50,400 etcétera 578 00:34:51,400 --> 00:34:52,400 vale 579 00:34:53,400 --> 00:34:54,400 venga pues por favor 580 00:34:55,400 --> 00:34:56,400 empleaos un rato 581 00:34:57,400 --> 00:34:58,400 a ver que sacamos de ese 582 00:34:59,400 --> 00:35:00,400 de ese constructor 583 00:35:01,400 --> 00:35:02,400 vale 584 00:35:03,400 --> 00:35:04,400 pues venga 585 00:35:05,400 --> 00:35:06,400 apps 586 00:35:07,400 --> 00:35:08,400 a ver que métodos tiene 587 00:35:11,400 --> 00:35:12,400 aquí pues claro 588 00:35:13,400 --> 00:35:14,400 cuanto más inglés tenga uno 589 00:35:15,400 --> 00:35:16,400 mejor porque si los métodos 590 00:35:17,400 --> 00:35:18,400 están escritos en inglés 591 00:35:19,400 --> 00:35:20,400 vale 592 00:35:21,400 --> 00:35:22,400 pues estos primeros 593 00:35:23,400 --> 00:35:24,400 contiene bueno 594 00:35:25,400 --> 00:35:26,400 patatín 595 00:35:27,400 --> 00:35:28,400 a ver que vamos a hacer 596 00:35:29,400 --> 00:35:30,400 la búsqueda rápida 597 00:35:31,400 --> 00:35:32,400 indexOf 598 00:35:33,400 --> 00:35:34,400 mira este tiene pinta 599 00:35:35,400 --> 00:35:36,400 de que te dice en qué posición 600 00:35:37,400 --> 00:35:38,400 está un char que tú le pasas 601 00:35:39,400 --> 00:35:40,400 isEmpty 602 00:35:41,400 --> 00:35:42,400 si está vacío 603 00:35:43,400 --> 00:35:44,400 bueno tiene un montón de métodos 604 00:35:45,400 --> 00:35:46,400 laxtIndexOf 605 00:35:47,400 --> 00:35:48,400 tiene pinta de que te dice 606 00:35:48,400 --> 00:35:49,400 en qué posición 607 00:35:50,400 --> 00:35:51,400 en la que está 608 00:35:52,400 --> 00:35:53,400 un carácter que tú le pasas 609 00:35:54,400 --> 00:35:55,400 como parámetro 610 00:35:56,400 --> 00:35:57,400 te da la última posición 611 00:35:58,400 --> 00:35:59,400 bueno hay un montón de utilidades 612 00:36:00,400 --> 00:36:01,400 seguimos por aquí 613 00:36:02,400 --> 00:36:03,400 leen que la conocemos 614 00:36:04,400 --> 00:36:05,400 seguimos 615 00:36:06,400 --> 00:36:07,400 seguimos 616 00:36:08,400 --> 00:36:09,400 entonces 617 00:36:10,400 --> 00:36:11,400 hay una palabra 618 00:36:12,400 --> 00:36:13,400 que todos conocéis del inglés 619 00:36:14,400 --> 00:36:15,400 porque entiendo que sois bilingües 620 00:36:16,400 --> 00:36:17,400 splitting 621 00:36:18,400 --> 00:36:19,400 porque tú estás con tus colegas 622 00:36:20,400 --> 00:36:21,400 y cada uno 623 00:36:22,400 --> 00:36:23,400 tú te dices por aquí, está por aquí 624 00:36:24,400 --> 00:36:25,400 hablo yo más en inglés que vosotros 625 00:36:26,400 --> 00:36:27,400 split 626 00:36:28,400 --> 00:36:29,400 es dividirse 627 00:36:30,400 --> 00:36:31,400 o tú haces un splitting 628 00:36:32,400 --> 00:36:33,400 es porque unos van para acá 629 00:36:34,400 --> 00:36:35,400 otros van para allá 630 00:36:36,400 --> 00:36:37,400 vale pues entonces 631 00:36:38,400 --> 00:36:39,400 split 632 00:36:40,400 --> 00:36:41,400 ya cuando vemos la palabra split 633 00:36:42,400 --> 00:36:43,400 cuando vemos la palabra split 634 00:36:45,400 --> 00:36:46,400 split es dividirse en ramas 635 00:36:46,400 --> 00:36:47,400 en ramas 636 00:36:48,400 --> 00:36:49,400 si uno ve la palabra split ya 637 00:36:50,400 --> 00:36:51,400 pum se le enciende una luz 638 00:36:52,400 --> 00:36:53,400 pero es que encima 639 00:36:54,400 --> 00:36:55,400 cuando ve que lo que devuelve split 640 00:36:56,400 --> 00:36:57,400 es varias cadenas 641 00:36:58,400 --> 00:36:59,400 dice ostras 642 00:37:00,400 --> 00:37:01,400 va a ser que igual va por aquí la cosa 643 00:37:02,400 --> 00:37:03,400 porque 644 00:37:04,400 --> 00:37:05,400 una cadena llama al método split 645 00:37:06,400 --> 00:37:07,400 y me devuelve varias 646 00:37:08,400 --> 00:37:09,400 tiene toda la pinta que lo que me hace 647 00:37:10,400 --> 00:37:11,400 es dividir una cadena en varias 648 00:37:12,400 --> 00:37:13,400 que es justo lo que estamos buscando 649 00:37:14,400 --> 00:37:15,400 dividir una cadena en varias 650 00:37:16,400 --> 00:37:17,400 a ver si este es el método que queremos 651 00:37:18,400 --> 00:37:19,400 vale pues 652 00:37:20,400 --> 00:37:21,400 nos vamos a la ayuda de split 653 00:37:22,400 --> 00:37:23,400 y nos dice 654 00:37:24,400 --> 00:37:25,400 efectivamente 655 00:37:26,400 --> 00:37:27,400 divide esta cadena 656 00:37:28,400 --> 00:37:29,400 eh 657 00:37:30,400 --> 00:37:31,400 alrededor 658 00:37:32,400 --> 00:37:33,400 de 659 00:37:34,400 --> 00:37:35,400 de los caracteres 660 00:37:36,400 --> 00:37:37,400 del patrón que tú le pasas como parámetro 661 00:37:38,400 --> 00:37:39,400 ¿verdad? 662 00:37:40,400 --> 00:37:41,400 te pone aquí ejemplos y todo 663 00:37:42,400 --> 00:37:43,400 entonces 664 00:37:44,400 --> 00:37:45,400 efectivamente 665 00:37:46,400 --> 00:37:47,400 si tú le pasas 666 00:37:48,400 --> 00:37:49,400 aquí un string 667 00:37:50,400 --> 00:37:51,400 entonces si tú le pasas un string cualquiera 668 00:37:52,400 --> 00:37:53,400 te divide 669 00:37:54,400 --> 00:37:55,400 en todas las subcadenas 670 00:37:56,400 --> 00:37:57,400 que quedan divididas 671 00:37:58,400 --> 00:37:59,400 que están separadas 672 00:38:00,400 --> 00:38:01,400 por ese patrón que tú le pasas aquí 673 00:38:02,400 --> 00:38:03,400 por ese patrón 674 00:38:04,400 --> 00:38:05,400 eso es lo que te viene a decir la ayuda 675 00:38:06,400 --> 00:38:07,400 y tiene un ejemplito abajo y todo eso 676 00:38:08,400 --> 00:38:09,400 pero claro aquí la palabra clave es que uno ve split 677 00:38:10,400 --> 00:38:11,400 y sobre todo que ha visto 678 00:38:12,400 --> 00:38:13,400 que lo que devuelve 679 00:38:14,400 --> 00:38:15,400 son varias cadenas 680 00:38:16,400 --> 00:38:17,400 una cadena llama split 681 00:38:18,400 --> 00:38:19,400 y obtenemos varias 682 00:38:20,400 --> 00:38:21,400 suena que es lo que queremos 683 00:38:22,400 --> 00:38:23,400 dividir una cadena en varias 684 00:38:24,400 --> 00:38:25,400 a ver 685 00:38:26,400 --> 00:38:27,400 tú aquí con esto ves 686 00:38:32,400 --> 00:38:33,400 bueno pero 687 00:38:34,400 --> 00:38:35,400 a ver un string puede tener un solo carácter 688 00:38:36,400 --> 00:38:37,400 entonces es más general 689 00:38:38,400 --> 00:38:39,400 a lo mejor el separador no tiene que ser solo un char 690 00:38:40,400 --> 00:38:41,400 el separador puede ser dos puntos y comas 691 00:38:42,400 --> 00:38:43,400 por ejemplo imagínate 692 00:38:44,400 --> 00:38:45,400 entonces es más general 693 00:38:46,400 --> 00:38:47,400 entonces 694 00:38:48,400 --> 00:38:49,400 el nombre lo que te devuelve 695 00:38:50,400 --> 00:38:51,400 te hace ver que puede ser eso 696 00:38:52,400 --> 00:38:53,400 uno busca la ayuda y luego dice 697 00:38:54,400 --> 00:38:55,400 ah pues puede ser esto 698 00:38:56,400 --> 00:38:57,400 y luego ya lo prueba 699 00:38:58,400 --> 00:38:59,400 luego lo prueba a ver si es verdad 700 00:39:00,400 --> 00:39:01,400 que eso hace lo que tiene que hacer 701 00:39:02,400 --> 00:39:03,400 entonces vamos a 702 00:39:04,400 --> 00:39:05,400 uno haría su primera prueba 703 00:39:06,400 --> 00:39:07,400 por ejemplo que es 704 00:39:08,400 --> 00:39:09,400 aquí vamos a 705 00:39:10,400 --> 00:39:11,400 como nuestro carácter separador 706 00:39:12,400 --> 00:39:13,400 en este caso es 707 00:39:14,400 --> 00:39:15,400 el punto y coma 708 00:39:16,400 --> 00:39:17,400 es el carácter separador 709 00:39:18,400 --> 00:39:19,400 vamos a ver 710 00:39:25,400 --> 00:39:26,400 vamos a ver 711 00:39:32,400 --> 00:39:33,400 no tengo nada que se llame apps por aquí 712 00:39:34,400 --> 00:39:35,400 no 713 00:39:36,400 --> 00:39:37,400 vamos a ver antes que nada 714 00:39:38,400 --> 00:39:39,400 vale 715 00:39:42,400 --> 00:39:43,400 a ver que estoy haciendo mal 716 00:39:44,400 --> 00:39:45,400 si que si que hay algo que se llama apps 717 00:39:46,400 --> 00:39:47,400 este 718 00:39:48,400 --> 00:39:49,400 que soy tonta 719 00:39:50,400 --> 00:39:51,400 estaba justo arriba y no lo veía 720 00:39:52,400 --> 00:39:53,400 vale string 721 00:39:54,400 --> 00:39:55,400 subcadenas 722 00:39:56,400 --> 00:39:57,400 voy a llamar 723 00:39:58,400 --> 00:39:59,400 espera no 724 00:40:00,400 --> 00:40:01,400 va a quedar más claro si esto lo llamo apps 725 00:40:02,400 --> 00:40:03,400 y esta es la cadena parámetro 726 00:40:04,400 --> 00:40:05,400 esta es la cadena que le paso como parámetro 727 00:40:06,400 --> 00:40:07,400 la cadena 728 00:40:08,400 --> 00:40:09,400 vale y la voy a dividir con el split 729 00:40:10,400 --> 00:40:11,400 oe 730 00:40:11,400 --> 00:40:12,400 la voy a dividir con el split 731 00:40:13,400 --> 00:40:14,400 vale vamos a ver primero 732 00:40:15,400 --> 00:40:16,400 vamos a recorrer 733 00:40:17,400 --> 00:40:18,400 estas subcadenas 734 00:40:19,400 --> 00:40:20,400 a ver si este método hace lo que queremos 735 00:40:21,400 --> 00:40:22,400 vamos a verlo 736 00:40:23,400 --> 00:40:24,400 fue 737 00:40:25,400 --> 00:40:26,400 ay que torpe 738 00:40:27,400 --> 00:40:28,400 fuera 739 00:40:29,400 --> 00:40:30,400 lo quería hacer 740 00:40:31,400 --> 00:40:32,400 vamos a 741 00:40:33,400 --> 00:40:34,400 como esto es solamente para comprobar en plan rápido 742 00:40:35,400 --> 00:40:36,400 vamos a mostrar 743 00:40:38,400 --> 00:40:39,400 cada una de ellas 744 00:40:39,400 --> 00:40:40,400 cada una de ellas 745 00:40:41,400 --> 00:40:42,400 por string 746 00:40:43,400 --> 00:40:44,400 app in 747 00:40:45,400 --> 00:40:46,400 apps 748 00:40:52,400 --> 00:40:53,400 vale vamos a mostrarlas 749 00:40:54,400 --> 00:40:55,400 vamos a hacer esta primera prueba 750 00:40:56,400 --> 00:40:57,400 hacer el split 751 00:40:58,400 --> 00:40:59,400 en torno al punto y coma 752 00:41:00,400 --> 00:41:01,400 hacer el split 753 00:41:02,400 --> 00:41:03,400 vamos a ver que subcadenas 754 00:41:04,400 --> 00:41:05,400 nos ha mostrado 755 00:41:06,400 --> 00:41:07,400 a ver si es verdad que son los trocitos 756 00:41:07,400 --> 00:41:08,400 yo estoy metiendo en un constructor directamente 757 00:41:09,400 --> 00:41:10,400 entonces para ejecutar esto 758 00:41:11,400 --> 00:41:12,400 tengo que instanciar un objeto 759 00:41:13,400 --> 00:41:14,400 y probarlo 760 00:41:15,400 --> 00:41:16,400 pero como estoy en mi fase de pruebas 761 00:41:17,400 --> 00:41:18,400 que estoy probando haciendo cositas 762 00:41:19,400 --> 00:41:20,400 me voy a hacer un main 763 00:41:21,400 --> 00:41:22,400 en cualquier lado 764 00:41:23,400 --> 00:41:24,400 me voy a hacer un main en cualquier parte 765 00:41:25,400 --> 00:41:26,400 y ejecuto esa clase que tiene ese main 766 00:41:27,400 --> 00:41:28,400 entonces quiero que 767 00:41:29,400 --> 00:41:30,400 no os perdáis en esto lo que estoy haciendo 768 00:41:31,400 --> 00:41:32,400 entonces 769 00:41:33,400 --> 00:41:34,400 hasta aquí esta claro no 770 00:41:35,400 --> 00:41:36,400 este es mi constructor 771 00:41:37,400 --> 00:41:38,400 que es primero 772 00:41:39,400 --> 00:41:40,400 dividir toda esta cadena gordota 773 00:41:41,400 --> 00:41:42,400 en trozos separados por punto y coma 774 00:41:43,400 --> 00:41:44,400 cuando tenga cada trozo 775 00:41:45,400 --> 00:41:46,400 a su vez dividirlo por las comas 776 00:41:47,400 --> 00:41:48,400 con ellos instanciar un objeto app 777 00:41:49,400 --> 00:41:50,400 y mandarlo al 778 00:41:51,400 --> 00:41:52,400 a la variable esta 779 00:41:53,400 --> 00:41:54,400 este constructor tendría que hacer todo esto 780 00:41:55,400 --> 00:41:56,400 pero bueno vamos por partes 781 00:41:57,400 --> 00:41:58,400 vamos a ver si este split 782 00:41:59,400 --> 00:42:00,400 por lo pronto hace lo que queremos 783 00:42:01,400 --> 00:42:02,400 entonces yo lo he usado 784 00:42:03,400 --> 00:42:04,400 lo voy a mostrar 785 00:42:05,400 --> 00:42:06,400 y ahora simplemente para hacer una prueba rápida 786 00:42:07,400 --> 00:42:08,400 voy a hacer un método main 787 00:42:09,400 --> 00:42:10,400 voy a hacer un método main aquí mismo 788 00:42:11,400 --> 00:42:12,400 aquí mismo 789 00:42:13,400 --> 00:42:14,400 ya está en esta misma clase 790 00:42:15,400 --> 00:42:16,400 luego ya lo borraré 791 00:42:17,400 --> 00:42:18,400 aunque esta es una clase entidad 792 00:42:19,400 --> 00:42:20,400 me voy a hacer un método main 793 00:42:21,400 --> 00:42:22,400 aquí mismo porque no 794 00:42:23,400 --> 00:42:24,400 yo puedo meter aquí un método main 795 00:42:25,400 --> 00:42:26,400 y donde me dé la gana 796 00:42:30,400 --> 00:42:31,400 me voy a hacer aquí un método main 797 00:42:32,400 --> 00:42:33,400 y ahora 798 00:42:34,400 --> 00:42:35,400 dentro de este main 799 00:42:35,400 --> 00:42:36,400 que voy a hacer 800 00:42:37,400 --> 00:42:38,400 instanciar un objeto app store 801 00:42:39,400 --> 00:42:40,400 instanciar uno 802 00:42:41,400 --> 00:42:42,400 porque al instanciarlo 803 00:42:43,400 --> 00:42:44,400 llamará el constructor que está aquí arriba 804 00:42:45,400 --> 00:42:46,400 lo llamará y me mostrará esto 805 00:42:47,400 --> 00:42:48,400 pues venga vamos a instanciar 806 00:42:49,400 --> 00:42:50,400 un objeto app store de estos 807 00:42:58,400 --> 00:42:59,400 y ahora este constructor 808 00:43:00,400 --> 00:43:01,400 hay que pasarle una cadena 809 00:43:02,400 --> 00:43:03,400 con todas las 810 00:43:03,400 --> 00:43:04,400 vamos a 811 00:43:05,400 --> 00:43:06,400 copiar y pegar esto 812 00:43:07,400 --> 00:43:08,400 a ver si este ejemplito por ejemplo 813 00:43:13,400 --> 00:43:14,400 y 814 00:43:15,400 --> 00:43:16,400 aquí 815 00:43:17,400 --> 00:43:18,400 esto 816 00:43:25,400 --> 00:43:26,400 vale 817 00:43:27,400 --> 00:43:28,400 vale pues en esta clase 818 00:43:29,400 --> 00:43:30,400 he metido un método main 819 00:43:31,400 --> 00:43:32,400 que significa que ya he metido un método main 820 00:43:33,400 --> 00:43:34,400 y esta clase automáticamente 821 00:43:35,400 --> 00:43:36,400 la puede ejecutar la máquina virtual 822 00:43:37,400 --> 00:43:38,400 claro porque tiene un método main 823 00:43:39,400 --> 00:43:40,400 la máquina virtual puede ejecutar 824 00:43:41,400 --> 00:43:42,400 cualquier clase que tenga un método main 825 00:43:43,400 --> 00:43:44,400 vale pues cuando yo ejecute esta clase 826 00:43:45,400 --> 00:43:46,400 que hará 827 00:43:47,400 --> 00:43:48,400 instanciará un objeto app store 828 00:43:49,400 --> 00:43:50,400 vale 829 00:43:51,400 --> 00:43:52,400 la clase app store cuál es 830 00:43:53,400 --> 00:43:54,400 esta misma en la que está el main 831 00:43:55,400 --> 00:43:56,400 pero que más da, da igual 832 00:43:57,400 --> 00:43:58,400 instancia un objeto app store 833 00:43:59,400 --> 00:44:00,400 lo instancia 834 00:44:01,400 --> 00:44:02,400 al instanciarlo 835 00:44:03,400 --> 00:44:04,400 con todo esto 836 00:44:05,400 --> 00:44:06,400 a ver si me muestra esto 837 00:44:07,400 --> 00:44:08,400 vamos a probar 838 00:44:09,400 --> 00:44:10,400 a ver si el split funciona 839 00:44:11,400 --> 00:44:12,400 vale 840 00:44:13,400 --> 00:44:14,400 entonces 841 00:44:15,400 --> 00:44:16,400 de nuevo 842 00:44:17,400 --> 00:44:18,400 no os liéis 843 00:44:19,400 --> 00:44:20,400 no os liéis 844 00:44:21,400 --> 00:44:22,400 y no os liaréis 845 00:44:23,400 --> 00:44:24,400 si vais teniendo esto cada vez más claro 846 00:44:25,400 --> 00:44:26,400 con que ya he metido aquí un main 847 00:44:27,400 --> 00:44:28,400 de nuevo para probar 848 00:44:29,400 --> 00:44:30,400 que problema hay que haya metido yo aquí un main 849 00:44:31,400 --> 00:44:32,400 eso es un método más 850 00:44:33,400 --> 00:44:34,400 vale 851 00:44:35,400 --> 00:44:36,400 sus parámetros 852 00:44:37,400 --> 00:44:38,400 su valor de retorno 853 00:44:39,400 --> 00:44:40,400 que es nada 854 00:44:41,400 --> 00:44:42,400 static 855 00:44:43,400 --> 00:44:44,400 porque efectivamente lo que hace el main 856 00:44:45,400 --> 00:44:46,400 el main no puede usar 857 00:44:47,400 --> 00:44:48,400 ninguna propiedad de la clase 858 00:44:49,400 --> 00:44:50,400 es un método estático 859 00:44:51,400 --> 00:44:52,400 vale y no las usa 860 00:44:53,400 --> 00:44:54,400 y public 861 00:44:55,400 --> 00:44:56,400 para que lo pueda llamar 862 00:44:57,400 --> 00:44:58,400 la máquina virtual 863 00:44:59,400 --> 00:45:00,400 que está fuera del paquete 864 00:45:01,400 --> 00:45:02,400 es un método más 865 00:45:03,400 --> 00:45:04,400 esta clase la puede ejecutar 866 00:45:05,400 --> 00:45:06,400 la máquina virtual 867 00:45:07,400 --> 00:45:08,400 es decir 868 00:45:09,400 --> 00:45:10,400 puede irse a este main 869 00:45:11,400 --> 00:45:12,400 bueno pues ya está 870 00:45:13,400 --> 00:45:14,400 pues vamos a ejecutar esta clase 871 00:45:15,400 --> 00:45:16,400 se irá a este main 872 00:45:17,400 --> 00:45:18,400 creará un objeto de esta clase 873 00:45:19,400 --> 00:45:20,400 que está declarada en la misma 874 00:45:21,400 --> 00:45:22,400 y que más da 875 00:45:23,400 --> 00:45:24,400 creará un objeto de esta clase 876 00:45:25,400 --> 00:45:26,400 llamará al constructor etc. 877 00:45:27,400 --> 00:45:28,400 venga vamos a ejecutar esta entonces 878 00:45:29,400 --> 00:45:30,400 ejecuto esta misma 879 00:45:31,400 --> 00:45:32,400 y justo 880 00:45:33,400 --> 00:45:34,400 me da un montón de cadenas 881 00:45:35,400 --> 00:45:36,400 que son la separación 882 00:45:37,400 --> 00:45:38,400 el splitting 883 00:45:40,400 --> 00:45:41,400 el splitting de la cadena 884 00:45:42,400 --> 00:45:43,400 vale 885 00:45:45,400 --> 00:45:46,400 ala pues ya está 886 00:45:47,400 --> 00:45:48,400 la primera parte ya la tenemos 887 00:45:51,400 --> 00:45:52,400 ahí el main por ahora no molesta 888 00:45:53,400 --> 00:45:54,400 por si quiero seguir haciendo pruebas 889 00:45:55,400 --> 00:45:56,400 lo puedo dejar 890 00:45:57,400 --> 00:45:58,400 pero luego cuando yo la aplicación 891 00:45:59,400 --> 00:46:00,400 ya haya pasado yo la fase de pruebas 892 00:46:01,400 --> 00:46:02,400 y de todo 893 00:46:03,400 --> 00:46:04,400 a la entidad a Pestor 894 00:46:05,400 --> 00:46:06,400 y no tiene ahí ningún main 895 00:46:07,400 --> 00:46:08,400 la que se va a ejecutar es otra 896 00:46:09,400 --> 00:46:10,400 vale pero bueno he puesto ahí ese main 897 00:46:11,400 --> 00:46:12,400 para hacer mis pruebas 898 00:46:13,400 --> 00:46:14,400 bueno pues entonces 899 00:46:15,400 --> 00:46:16,400 nos volvemos al constructor 900 00:46:17,400 --> 00:46:18,400 ahora 901 00:46:19,400 --> 00:46:20,400 ahora que ya conocemos 902 00:46:21,400 --> 00:46:22,400 como funciona el método split 903 00:46:23,400 --> 00:46:24,400 ahora ya que habría que hacer 904 00:46:25,400 --> 00:46:26,400 pues ir uno por uno 905 00:46:27,400 --> 00:46:28,400 hacerle a su vez split 906 00:46:29,400 --> 00:46:30,400 pero ahora con la coma 907 00:46:31,400 --> 00:46:32,400 usar esos parámetros 908 00:46:33,400 --> 00:46:34,400 con esos objetos 909 00:46:35,400 --> 00:46:36,400 ir construyendo 910 00:46:37,400 --> 00:46:38,400 este array 911 00:46:39,400 --> 00:46:40,400 para guardarlo aquí 912 00:46:41,400 --> 00:46:42,400 eso es lo que tiene que terminar 913 00:46:43,400 --> 00:46:44,400 de hacer el constructor 914 00:46:45,400 --> 00:46:46,400 venga pues continuadlo 915 00:46:47,400 --> 00:46:48,400 a ver