1 00:00:00,000 --> 00:00:00,960 Venga, quince. 2 00:00:01,659 --> 00:00:02,299 Quince. 3 00:00:02,960 --> 00:00:10,220 Trabaja con esta clase, que se caracteriza por un autor, un instrumento y una velocidad, 4 00:00:10,800 --> 00:00:13,199 en la que se interpreta la partitura. 5 00:00:14,660 --> 00:00:17,300 Constructor y los métodos. 6 00:00:17,980 --> 00:00:18,539 Vamos a ver. 7 00:00:19,480 --> 00:00:21,460 Una única clase con métodos. 8 00:00:21,679 --> 00:00:22,100 Pues ya está. 9 00:00:23,100 --> 00:00:23,760 Vamos a ver. 10 00:00:24,019 --> 00:00:27,800 Ejercicio quince, que es esto. 11 00:00:27,800 --> 00:00:40,380 Ah no, esto es el paquete 12 00:00:40,380 --> 00:00:41,340 Que me estoy liando 13 00:00:41,340 --> 00:00:48,140 Venga, Ejer 15 14 00:00:48,140 --> 00:00:52,539 Una clase 15 00:00:52,539 --> 00:00:56,880 Partitura 16 00:00:56,880 --> 00:00:58,039 Partitura 17 00:00:58,039 --> 00:00:58,899 Vale 18 00:00:58,899 --> 00:01:01,820 Se caracteriza 19 00:01:01,820 --> 00:01:05,859 Por un autor 20 00:01:05,859 --> 00:01:09,280 Un instrumento 21 00:01:09,280 --> 00:01:11,700 ¿Qué más cosas me dice? 22 00:01:12,420 --> 00:01:13,879 Un tempo 23 00:01:13,879 --> 00:01:15,019 Asumimos que 24 00:01:15,019 --> 00:01:16,859 Un entero 25 00:01:16,859 --> 00:01:19,420 Y ya está 26 00:01:19,420 --> 00:01:20,739 Nada más 27 00:01:20,739 --> 00:01:28,480 Vale, pues con esto 28 00:01:28,480 --> 00:01:30,760 Get, set y constructores 29 00:01:30,760 --> 00:01:34,840 Constructor que use los parámetros 30 00:01:34,840 --> 00:01:40,219 Y get y set 31 00:01:40,219 --> 00:01:43,349 Ahora, ya está 32 00:01:43,349 --> 00:01:45,349 Y ahora, con las partituras 33 00:01:45,349 --> 00:01:46,430 Se pueden hacer cosas 34 00:01:46,430 --> 00:01:48,870 ¿Qué cosas? Las que me piden aquí 35 00:01:48,870 --> 00:01:50,829 Aumentar 36 00:01:50,829 --> 00:01:52,950 Pues venga 37 00:01:52,950 --> 00:01:56,290 Este método no me devuelve nada 38 00:01:56,290 --> 00:01:57,230 Porque el efecto 39 00:01:57,230 --> 00:02:00,090 Se queda registrado en la propiedad 40 00:02:00,090 --> 00:02:02,150 Aumentar el tempo en esto 41 00:02:02,150 --> 00:02:07,590 Pues entonces 42 00:02:07,590 --> 00:02:10,009 Dis.tempo 43 00:02:10,009 --> 00:02:11,150 Más igual 44 00:02:11,150 --> 00:02:12,530 Tempo, ala 45 00:02:12,530 --> 00:02:14,810 Ya tenemos ese método, ¿correcto? 46 00:02:16,030 --> 00:02:17,409 Venga, siguiente 47 00:02:17,409 --> 00:02:20,840 Reducirlo 48 00:02:20,840 --> 00:02:23,219 Ah, perdón, aumentar es en 10 49 00:02:23,219 --> 00:02:24,219 Yo le he pasado un parámetro 50 00:02:24,219 --> 00:02:26,759 Yo le he pasado un parámetro y aquí decía 10 51 00:02:26,759 --> 00:02:29,520 vale, pues hombre 52 00:02:29,520 --> 00:02:31,639 sería más fácil todavía, sería quitar 53 00:02:31,639 --> 00:02:32,340 el parámetro 54 00:02:32,340 --> 00:02:35,060 y sumarle 10 55 00:02:35,060 --> 00:02:37,840 disminuir 56 00:02:37,840 --> 00:02:39,719 lo mismo pero al revés, esto es más fácil 57 00:02:39,719 --> 00:02:40,539 que lo que hemos hecho 58 00:02:40,539 --> 00:02:45,129 disminuye 59 00:02:45,129 --> 00:02:47,509 disminuye 60 00:02:47,509 --> 00:02:50,229 pues lo mismo 61 00:02:50,229 --> 00:02:51,449 pero menos igual 62 00:02:51,449 --> 00:02:54,129 ambos devuelven void porque no hace 63 00:02:54,129 --> 00:02:56,050 falta devolver nada, el efecto ya se queda 64 00:02:56,050 --> 00:02:57,090 en la propiedad del objeto 65 00:02:57,090 --> 00:02:59,650 vale, ¿qué más hay que hacer? 66 00:03:00,849 --> 00:03:01,169 una 67 00:03:01,169 --> 00:03:02,889 un método 68 00:03:02,889 --> 00:03:05,150 venga 69 00:03:05,150 --> 00:03:07,069 si te vas no te despidas 70 00:03:07,069 --> 00:03:09,310 y si no te quedas, hasta luego 71 00:03:09,310 --> 00:03:11,250 vale, un método 72 00:03:11,250 --> 00:03:13,009 tu string que devuelve un string que 73 00:03:13,009 --> 00:03:15,270 representa esa partitura, el formato string se refiere 74 00:03:15,270 --> 00:03:16,490 que te cuenta 75 00:03:16,490 --> 00:03:18,449 ya está, entonces este método 76 00:03:18,449 --> 00:03:22,919 public string 77 00:03:22,919 --> 00:03:26,810 vaya, fíjate que puñetera 78 00:03:26,810 --> 00:03:27,409 casualidad 79 00:03:27,409 --> 00:03:30,349 tu string no recibe nada 80 00:03:30,349 --> 00:03:32,530 como parámetro, vale, no recibe 81 00:03:32,530 --> 00:03:34,389 nada, y ahora ya nosotros aquí ya 82 00:03:34,389 --> 00:03:35,830 construimos lo que queramos 83 00:03:35,830 --> 00:03:37,930 retun, pues 84 00:03:37,930 --> 00:03:39,229 autor 85 00:03:39,229 --> 00:03:42,530 venga, pues 86 00:03:42,530 --> 00:03:44,409 autor, el autor 87 00:03:44,409 --> 00:03:46,210 no hace falta que ponga dis, porque 88 00:03:46,210 --> 00:03:48,689 aquí tampoco hubiera hecho falta 89 00:03:48,689 --> 00:03:50,430 desde el momento de que quite el parámetro 90 00:03:50,430 --> 00:03:51,969 autor 91 00:03:51,969 --> 00:03:53,530 más 92 00:03:53,530 --> 00:03:56,389 pues concateno con 93 00:03:56,389 --> 00:03:57,870 instrumento 94 00:03:57,870 --> 00:04:00,129 instrumento 95 00:04:00,129 --> 00:04:02,349 pues el instrumento 96 00:04:02,349 --> 00:04:05,009 más 97 00:04:05,009 --> 00:04:08,770 el tempo al que lo vamos a tocar 98 00:04:08,770 --> 00:04:10,689 pues va a ser 99 00:04:10,689 --> 00:04:11,509 este 100 00:04:11,509 --> 00:04:14,629 y este sería el método 101 00:04:14,629 --> 00:04:16,230 toString que me dicen 102 00:04:16,230 --> 00:04:18,569 fijaos que aquí ha aparecido algo 103 00:04:18,569 --> 00:04:20,509 que no ha aparecido 104 00:04:20,509 --> 00:04:21,870 en los otros métodos que hemos hecho 105 00:04:21,870 --> 00:04:25,939 ¿veis algo diferente entre este método de arriba? 106 00:04:29,379 --> 00:04:35,480 El triangulito verde, ese no ha aparecido arriba. 107 00:04:36,420 --> 00:04:38,300 ¿Qué significa el triangulito verde? 108 00:04:39,420 --> 00:04:43,259 A ver, ahora mismo significa algo que todavía no podemos entender, porque es la herencia. 109 00:04:44,279 --> 00:04:52,720 Significa que ese es un método, quedémonos por ahora con la palabra demasiado estándar, o sea, muy estándar. 110 00:04:52,720 --> 00:04:57,680 Un método que normalmente se usa en muchas clases. 111 00:04:57,680 --> 00:04:59,500 es decir, el método aumentar 112 00:04:59,500 --> 00:05:00,620 tiempo, disminuir tiempo 113 00:05:00,620 --> 00:05:03,180 no lo usa en el resto de clases del universo 114 00:05:03,180 --> 00:05:05,459 no lo usa la clase punto, no lo usa 115 00:05:05,459 --> 00:05:07,420 la clase vehículo, porque en ellas aumentar 116 00:05:07,420 --> 00:05:09,279 tiempo, disminuir tiempo no tiene ningún sentido 117 00:05:09,279 --> 00:05:11,620 pero el método toString 118 00:05:11,620 --> 00:05:13,399 que es, dame una explicación en 119 00:05:13,399 --> 00:05:15,339 formato string, ese vale 120 00:05:15,339 --> 00:05:17,339 para cualquiera, vehículo, dame 121 00:05:17,339 --> 00:05:19,360 una explicación de tu vehículo en formato string 122 00:05:19,360 --> 00:05:21,360 punto, dame una explicación de tu punto en formato 123 00:05:21,360 --> 00:05:23,459 string, entonces esos métodos 124 00:05:23,459 --> 00:05:25,399 que en principio tienen 125 00:05:25,399 --> 00:05:27,660 interés para cualquier clase 126 00:05:27,660 --> 00:05:28,899 tiene interés para cualquiera 127 00:05:28,899 --> 00:05:31,279 son métodos que se llaman 128 00:05:31,279 --> 00:05:33,540 sobreescritos, que ya lo entenderemos 129 00:05:33,540 --> 00:05:35,660 cuando veamos la herencia, y como este 130 00:05:35,660 --> 00:05:37,839 es ese, me ha puesto un triangulito 131 00:05:37,839 --> 00:05:39,259 verde, vale 132 00:05:39,259 --> 00:05:41,720 de hecho, el método 133 00:05:41,720 --> 00:05:43,639 toString es tan estándar 134 00:05:43,639 --> 00:05:45,480 como método para 135 00:05:45,480 --> 00:05:47,459 devolver una explicación sobre 136 00:05:47,459 --> 00:05:49,600 de qué va eso, es tan 137 00:05:49,600 --> 00:05:51,740 estándar, que también el eclipse 138 00:05:51,740 --> 00:05:53,759 me lo genera automáticamente 139 00:05:53,759 --> 00:05:55,680 si a mí me da la gana, igual que 140 00:05:55,680 --> 00:05:57,639 me generaba el get, el set y el constructor 141 00:05:57,639 --> 00:05:59,819 igual que me generaba eso 142 00:05:59,819 --> 00:06:01,819 si dais 143 00:06:01,819 --> 00:06:02,779 al botón derecho 144 00:06:02,779 --> 00:06:08,009 en source, pues tenéis 145 00:06:08,009 --> 00:06:09,750 un generate to string 146 00:06:09,750 --> 00:06:11,990 vamos a 147 00:06:11,990 --> 00:06:13,050 eliminar el que hemos hecho 148 00:06:13,050 --> 00:06:15,829 a ver como es el que me genera este entorno 149 00:06:15,829 --> 00:06:19,610 de desarrollo, te dice 150 00:06:19,610 --> 00:06:21,569 oye, que parámetros quieres, perdón 151 00:06:21,569 --> 00:06:23,769 que propiedades quieres incluir en la descripción 152 00:06:23,769 --> 00:06:25,889 quiero incluir las tres propiedades 153 00:06:25,889 --> 00:06:27,629 en la descripción, venga 154 00:06:27,629 --> 00:06:29,670 pues 155 00:06:29,670 --> 00:06:31,910 fijaos lo que me ha hecho, me ha construido 156 00:06:31,910 --> 00:06:32,490 un string 157 00:06:32,490 --> 00:06:34,769 con la descripción 158 00:06:34,769 --> 00:06:37,949 que nos gusta este formato 159 00:06:37,949 --> 00:06:39,949 magnífico 160 00:06:39,949 --> 00:06:41,129 nos lo quedamos así 161 00:06:41,129 --> 00:06:42,689 que no nos gusta 162 00:06:42,689 --> 00:06:44,850 lo retocamos aquí dentro 163 00:06:44,850 --> 00:06:45,870 ¿vale? 164 00:06:47,050 --> 00:06:49,990 y además del triangulito verde me ha metido esto 165 00:06:49,990 --> 00:06:52,089 que significa 166 00:06:52,089 --> 00:06:53,490 precisamente lo que he dicho antes 167 00:06:53,490 --> 00:06:54,490 sobre escrito 168 00:06:54,490 --> 00:06:56,589 esa traducción es eterna 169 00:06:56,589 --> 00:06:59,550 ahora mismo repito, no sabemos 170 00:06:59,550 --> 00:07:01,670 qué significa sobre escrito, pero 171 00:07:01,670 --> 00:07:03,730 quedémonos con que son 172 00:07:03,730 --> 00:07:05,350 métodos que 173 00:07:05,350 --> 00:07:07,350 aplicables 174 00:07:07,350 --> 00:07:09,430 para cualquier entidad, me da igual lo que 175 00:07:09,430 --> 00:07:11,629 signifique, cualquier entidad puede 176 00:07:11,629 --> 00:07:13,910 necesitar mostrar una descripción 177 00:07:13,910 --> 00:07:14,529 cualquiera 178 00:07:14,529 --> 00:07:17,389 ¿vale? otros métodos son demasiado 179 00:07:17,389 --> 00:07:19,370 específicos, estos dos son demasiado 180 00:07:19,370 --> 00:07:21,470 específicos, este 181 00:07:21,470 --> 00:07:23,589 no, este cae bien en cualquier 182 00:07:23,589 --> 00:07:25,329 clase, cae bien, un dame 183 00:07:25,329 --> 00:07:27,329 descripción, en cualquiera cae bien 184 00:07:27,329 --> 00:07:28,649 ¿vale? 185 00:07:29,550 --> 00:07:31,629 bueno, pues esta clase en particular 186 00:07:31,629 --> 00:07:33,110 me han dicho, dame un toString 187 00:07:33,110 --> 00:07:35,990 pues venga, lo puedo generar así si quiero 188 00:07:35,990 --> 00:07:37,829 o me lo hago malo, lo que me dé la gana 189 00:07:37,829 --> 00:07:38,769 dime 190 00:07:38,769 --> 00:08:17,389 Es decir, a los que os da error 191 00:08:17,389 --> 00:08:20,829 es porque no habéis respetado 192 00:08:20,829 --> 00:08:23,470 exactamente esta cabecera 193 00:08:23,470 --> 00:08:25,230 por ejemplo, no poniendo el público 194 00:08:25,230 --> 00:08:26,550 ¿vale? 195 00:08:27,449 --> 00:08:29,790 porque este sería ese método 196 00:08:29,790 --> 00:08:31,069 estándar 197 00:08:31,069 --> 00:08:33,509 aplicable a cualquier tipo de entidad 198 00:08:33,509 --> 00:08:35,230 porque todas pueden necesitar 199 00:08:35,230 --> 00:08:36,870 mostrar su contenido 200 00:08:36,870 --> 00:08:39,149 para informar, para informar solamente 201 00:08:39,149 --> 00:08:41,289 pero claro, lo que me dice 202 00:08:41,289 --> 00:08:42,649 el compilador me dice 203 00:08:42,649 --> 00:08:45,870 oye, si tú quieres usar ese método 204 00:08:45,870 --> 00:08:47,789 aplicable a cualquier entidad 205 00:08:47,789 --> 00:08:49,190 o me parece perfecto que lo uses 206 00:08:49,190 --> 00:08:51,889 juega bien las reglas 207 00:08:51,889 --> 00:08:53,509 respeta las reglas 208 00:08:53,509 --> 00:08:55,570 para que todos nos entendamos 209 00:08:55,570 --> 00:08:58,029 pues respetar las reglas 210 00:08:58,029 --> 00:09:00,669 implica respetar exactamente 211 00:09:00,669 --> 00:09:01,470 la cabecera 212 00:09:01,470 --> 00:09:04,169 ¿vale? porque si no 213 00:09:04,169 --> 00:09:06,509 estás es un quiero y no puedo 214 00:09:06,509 --> 00:09:08,809 estás tratando de decir 215 00:09:08,809 --> 00:09:10,070 oye que yo me apunto 216 00:09:10,070 --> 00:09:12,470 me subo al carro de este método que muestra descripción 217 00:09:12,470 --> 00:09:13,850 me subo al carro de él 218 00:09:13,850 --> 00:09:16,309 ¿vale? pero no respeto 219 00:09:16,309 --> 00:09:17,789 exactamente la cabecera 220 00:09:17,789 --> 00:09:20,529 ¿vale? entonces ahí se genera 221 00:09:20,529 --> 00:09:22,009 una ambigüedad, una confusión 222 00:09:22,009 --> 00:09:25,929 a ver, que nosotros 223 00:09:25,929 --> 00:09:27,990 podríamos pasar de este método y llamarlo 224 00:09:27,990 --> 00:09:29,289 descríbeme el objeto 225 00:09:29,289 --> 00:09:31,490 vale, no pasa nada 226 00:09:31,490 --> 00:09:34,149 pero respetando esta cabecera 227 00:09:34,149 --> 00:09:35,970 y respetando el nombre 228 00:09:35,970 --> 00:09:38,110 y todo eso, facilitamos la vida 229 00:09:38,110 --> 00:09:40,190 a los demás, porque si jugamos 230 00:09:40,190 --> 00:09:42,289 bien las reglas del juego y jugarlas 231 00:09:42,289 --> 00:09:44,370 significa respetar la cabecera tal cual 232 00:09:44,370 --> 00:09:46,370 en cuanto a dar acceso público 233 00:09:46,370 --> 00:09:47,350 llamarlo tu stream 234 00:09:47,350 --> 00:09:48,870 si las jugamos bien 235 00:09:48,870 --> 00:09:51,629 cualquier otro asume 236 00:09:51,629 --> 00:09:54,009 que si necesita describir mi objeto 237 00:09:54,009 --> 00:09:55,769 puede llamar a tu stream 238 00:09:55,769 --> 00:09:57,389 porque tú has hecho un método que se llama así. 239 00:09:58,750 --> 00:09:59,169 Entonces, 240 00:09:59,629 --> 00:10:01,149 si jugamos bien las reglas 241 00:10:01,149 --> 00:10:03,190 y alguien llama a mi tu stream, 242 00:10:03,470 --> 00:10:04,610 va a encontrar un resultado. 243 00:10:04,990 --> 00:10:06,669 Porque yo me he adaptado al estándar. 244 00:10:06,809 --> 00:10:07,809 Me he adaptado a ese estándar. 245 00:10:08,409 --> 00:10:10,230 Si cambio las reglas, 246 00:10:10,450 --> 00:10:11,409 lo cambio a la cabecera, 247 00:10:11,509 --> 00:10:12,190 lo llamo a otra manera, 248 00:10:12,669 --> 00:10:13,289 pues muy bien. 249 00:10:13,809 --> 00:10:15,129 Pero voy a tener que informar 250 00:10:15,129 --> 00:10:16,470 porque he cambiado el nombre. 251 00:10:17,590 --> 00:10:19,730 Los demás no van a dar por sentado, 252 00:10:19,730 --> 00:10:21,230 no lo van a dar por sentado 253 00:10:21,230 --> 00:10:21,830 que yo tengo uno 254 00:10:21,830 --> 00:10:22,470 que se llama así 255 00:10:22,470 --> 00:10:25,840 ¿vale? 256 00:10:25,940 --> 00:10:27,340 entonces esto de aquí arriba 257 00:10:27,340 --> 00:10:28,419 que se llama anotación 258 00:10:28,419 --> 00:10:30,159 como no sabemos 259 00:10:30,159 --> 00:10:31,080 lo que significa 260 00:10:31,080 --> 00:10:32,779 lo podéis quitar 261 00:10:32,779 --> 00:10:33,759 y no pasa nada 262 00:10:33,759 --> 00:10:35,039 da exactamente igual 263 00:10:35,039 --> 00:10:35,360 que esté 264 00:10:35,360 --> 00:10:35,919 que no esté 265 00:10:35,919 --> 00:10:37,139 eso es una especie 266 00:10:37,139 --> 00:10:37,779 de validación 267 00:10:37,779 --> 00:10:38,379 que ya entenderemos 268 00:10:38,379 --> 00:10:39,000 más adelante 269 00:10:39,000 --> 00:10:40,179 esta validación 270 00:10:40,179 --> 00:10:41,240 porque puede tener interés 271 00:10:41,240 --> 00:10:42,559 ¿vale? 272 00:10:42,600 --> 00:10:43,279 es una especie 273 00:10:43,279 --> 00:10:44,340 de cosa para validar 274 00:10:44,340 --> 00:10:45,299 que a mí no nos importa 275 00:10:45,299 --> 00:10:45,659 dime 276 00:10:45,659 --> 00:10:46,580 nada 277 00:10:46,580 --> 00:10:47,559 te voy a preguntar 278 00:10:47,559 --> 00:10:48,320 si es un comentario 279 00:10:48,320 --> 00:10:49,299 no, no, no 280 00:10:49,299 --> 00:10:50,440 no es un comentario 281 00:10:50,440 --> 00:10:51,480 es otra cosa 282 00:10:51,480 --> 00:10:52,559 lo que empieza por arrobas 283 00:10:52,559 --> 00:10:55,039 se llama anotación, no es un comentario. 284 00:10:55,580 --> 00:10:58,000 Entonces, son cosas que son código también. 285 00:10:58,340 --> 00:11:00,159 Es decir, la máquina virtual las interpreta 286 00:11:00,159 --> 00:11:02,519 y las tiene en cuenta, no como los comentarios. 287 00:11:03,059 --> 00:11:04,580 Los comentarios no existen. 288 00:11:04,659 --> 00:11:06,700 Desde el momento en que el compilador entra, 289 00:11:06,899 --> 00:11:08,639 el comentario está filtrado y desaparece. 290 00:11:09,159 --> 00:11:11,779 Entonces, la máquina virtual las tiene en cuenta. 291 00:11:12,019 --> 00:11:15,320 En este caso, ¿para qué la tendría en cuenta 292 00:11:15,320 --> 00:11:17,179 si yo pongo verray del compilador? 293 00:11:17,679 --> 00:11:20,559 La tiene en cuenta para validar 294 00:11:20,559 --> 00:11:22,759 si has respetado la cabecera. 295 00:11:23,299 --> 00:11:24,840 ¿Vale? O sea, si yo 296 00:11:24,840 --> 00:11:26,899 no pongo el override y aquí 297 00:11:26,899 --> 00:11:28,799 me he equivocado y he puesto 298 00:11:28,799 --> 00:11:31,039 dos Gs, al compilador 299 00:11:31,039 --> 00:11:32,879 le parece estupendo. No pasa nada. 300 00:11:33,620 --> 00:11:34,559 Porque él dice, 301 00:11:34,779 --> 00:11:36,659 vale, has hecho un método que se llama 302 00:11:36,659 --> 00:11:38,919 tu string. Y ya está, y estupendo. 303 00:11:39,539 --> 00:11:41,059 Ya está. Sin embargo, 304 00:11:41,159 --> 00:11:42,179 yo a este mismo método 305 00:11:42,179 --> 00:11:44,179 le pongo override arriba. 306 00:11:49,720 --> 00:11:50,720 Automáticamente me dice, 307 00:11:50,720 --> 00:11:52,919 ¿eh? ¿Me estás diciendo 308 00:11:52,919 --> 00:11:54,639 que este método es uno de esos 309 00:11:54,639 --> 00:11:57,019 estándares sobrescritos que tú quieres adherirte 310 00:11:57,019 --> 00:11:58,659 a él, pues perdona, 311 00:11:58,799 --> 00:12:00,820 no me casa, porque no encuentro ninguno 312 00:12:00,820 --> 00:12:02,340 en ese catálogo de métodos. 313 00:12:02,860 --> 00:12:03,620 No encuentro ninguno. 314 00:12:04,519 --> 00:12:06,379 Entonces, valdría para hacer una validación. 315 00:12:06,980 --> 00:12:09,019 Ahora mismo, esto se nos escapa 316 00:12:09,019 --> 00:12:10,899 porque tiene que ver con la herencia. 317 00:12:12,059 --> 00:12:12,799 Entonces, simplemente 318 00:12:12,799 --> 00:12:14,799 lo comentamos porque, como en este 319 00:12:14,799 --> 00:12:16,620 ejercicio ha salido lo del método toString, 320 00:12:17,500 --> 00:12:17,700 ¿vale? 321 00:12:19,440 --> 00:12:20,779 Entonces, tiene interés 322 00:12:20,779 --> 00:12:22,299 en cualquier clase que uno haga, 323 00:12:22,299 --> 00:12:24,620 tiene interés hacer por defecto 324 00:12:24,620 --> 00:12:25,179 este método 325 00:12:25,179 --> 00:12:27,899 porque no cuesta nada hacerlo 326 00:12:27,899 --> 00:12:29,879 se lo genera el entorno automáticamente 327 00:12:29,879 --> 00:12:32,120 y todos 328 00:12:32,120 --> 00:12:34,659 toda la comunidad desarrolladora de Java 329 00:12:34,659 --> 00:12:35,899 asume 330 00:12:35,899 --> 00:12:38,360 que si va a usar un objeto tuyo 331 00:12:38,360 --> 00:12:39,899 y por la razón que sea 332 00:12:39,899 --> 00:12:41,139 necesita una descripción 333 00:12:41,139 --> 00:12:43,360 asume que va a poder llamar a un 3D 334 00:12:43,360 --> 00:12:45,019 lo asume 335 00:12:45,019 --> 00:12:47,559 si tú no lo has hecho 336 00:12:47,559 --> 00:12:50,299 pues no va a funcionar 337 00:12:50,299 --> 00:12:57,419 Bueno, todo esto tiene sus matices 338 00:12:57,419 --> 00:12:59,200 Insisto, relacionados con la herencia 339 00:12:59,200 --> 00:13:01,379 Los hemos apuntado 340 00:13:01,379 --> 00:13:03,100 Solamente los hemos apuntado 341 00:13:03,100 --> 00:13:04,360 Pero ya está 342 00:13:04,360 --> 00:13:08,019 Bueno, pues este es el método 343 00:13:08,019 --> 00:13:09,080 Este de aquí 344 00:13:09,080 --> 00:13:10,299 El siguiente que me pedían 345 00:13:10,299 --> 00:13:12,379 ¿Qué más métodos me piden? 346 00:13:13,600 --> 00:13:15,259 ¿Cambiar? Pues ala 347 00:13:15,259 --> 00:13:21,120 Dime 348 00:13:21,120 --> 00:13:22,100 ¿Cambiar no es como en set? 349 00:13:22,779 --> 00:13:23,220 ¿Perdón? 350 00:13:24,360 --> 00:13:26,419 Sí, sería un set exactamente 351 00:13:26,419 --> 00:13:28,240 Pero bueno, este enunciado 352 00:13:28,240 --> 00:13:29,600 pues bueno, tiene sus limitaciones 353 00:13:29,600 --> 00:13:32,200 cambiar instrumentos como el set 354 00:13:32,200 --> 00:13:33,659 lo que pasa es que bueno 355 00:13:33,659 --> 00:13:36,519 que si yo hago uno específico de cambiar instrumento 356 00:13:36,519 --> 00:13:44,370 así, le paso 357 00:13:44,370 --> 00:13:45,710 efectivamente el nuevo 358 00:13:45,710 --> 00:13:50,889 y se queda igual que el set 359 00:13:50,889 --> 00:13:54,830 pero algún matiz podemos añadir 360 00:13:55,429 --> 00:14:00,580 vale, entonces 361 00:14:00,580 --> 00:14:02,519 efectivamente el código así 362 00:14:02,519 --> 00:14:04,720 diríamos, jo, tenemos dos métodos iguales 363 00:14:04,720 --> 00:14:07,059 sí, pero puede tener su sentido 364 00:14:07,059 --> 00:14:08,419 el set 365 00:14:08,419 --> 00:14:09,879 está claro para lo que vale 366 00:14:09,879 --> 00:14:11,840 para dar acceso de escritura 367 00:14:11,840 --> 00:14:15,919 la propiedad y es estándar 368 00:14:15,919 --> 00:14:17,860 que lo hagamos así y yo no cambio 369 00:14:17,860 --> 00:14:19,200 su estructura 370 00:14:19,200 --> 00:14:21,919 ni su cabecera ni su contenido 371 00:14:21,919 --> 00:14:23,480 porque todos asumen 372 00:14:23,480 --> 00:14:25,559 que para cambiar el valor de mi propiedad 373 00:14:25,559 --> 00:14:27,799 van a llamar ese método, todos asumen que lo voy a tener 374 00:14:27,799 --> 00:14:29,659 con ese nombre, pues lo tengo así 375 00:14:29,659 --> 00:14:31,100 tal cual y no lo toco 376 00:14:31,100 --> 00:14:33,179 pero luego puede ser 377 00:14:33,179 --> 00:14:34,919 que esté ahí apuntando 378 00:14:34,919 --> 00:14:37,419 una funcionalidad 379 00:14:37,419 --> 00:14:39,220 futura de mi aplicación que es cambiar 380 00:14:39,220 --> 00:14:41,440 el instrumento y que cambiarlo 381 00:14:41,440 --> 00:14:43,100 tenga más implicaciones 382 00:14:43,100 --> 00:14:44,100 que fijarlo sin más. 383 00:14:44,779 --> 00:14:46,519 A lo mejor cambiar el instrumento 384 00:14:46,519 --> 00:14:48,000 implica también 385 00:14:48,000 --> 00:14:49,899 mandar una notificación por e-mail 386 00:14:49,899 --> 00:14:51,399 de que he cambiado el instrumento 387 00:14:51,399 --> 00:14:53,080 o cambiar la partitura. 388 00:14:53,779 --> 00:14:54,860 Entonces, ahí sí tiene sentido 389 00:14:54,860 --> 00:14:56,320 hacer un método aparte. 390 00:14:56,779 --> 00:14:58,299 Porque cambiar instrumento 391 00:14:58,299 --> 00:15:00,220 aparte de cambiar la propiedad, 392 00:15:01,039 --> 00:15:02,460 en el futuro puede ser 393 00:15:02,460 --> 00:15:03,960 que se necesiten más cosas. 394 00:15:11,320 --> 00:15:12,440 Venga, lánzate. 395 00:15:13,080 --> 00:15:14,019 Nada, es tímido. 396 00:15:15,879 --> 00:15:16,200 Ahora. 397 00:15:19,570 --> 00:15:19,830 Vale. 398 00:15:19,830 --> 00:15:22,730 entonces, esto es más escalable 399 00:15:22,730 --> 00:15:25,509 si en el futuro cambiar el instrumento 400 00:15:25,509 --> 00:15:26,730 tiene implicaciones 401 00:15:26,730 --> 00:15:28,470 yo las meto aquí 402 00:15:28,470 --> 00:15:30,309 este sería su sitio 403 00:15:30,309 --> 00:15:33,210 el set no lo tocaría, el set no lo puedo tocar 404 00:15:33,210 --> 00:15:34,889 tiene una única función 405 00:15:34,889 --> 00:15:37,169 una única función que es 406 00:15:37,169 --> 00:15:38,870 darle valor a la propiedad 407 00:15:38,870 --> 00:15:41,009 pero cambiar el instrumento puede ser 408 00:15:41,009 --> 00:15:42,389 algo más amplio, más general 409 00:15:42,389 --> 00:15:44,730 pues todo eso iría aquí metido 410 00:15:44,730 --> 00:15:48,169 ¿cuál es tu duda? 411 00:15:48,169 --> 00:16:03,440 y lo añade en el campo instrumentos 412 00:16:03,440 --> 00:16:05,879 sin sobreescribir los que había antes 413 00:16:05,879 --> 00:16:09,000 es que este enunciado está muy feo 414 00:16:09,000 --> 00:16:10,240 porque no queda muy claro 415 00:16:10,240 --> 00:16:11,620 instrumento 416 00:16:11,620 --> 00:16:13,799 entonces se supone que es un array 417 00:16:13,799 --> 00:16:14,620 o como es 418 00:16:14,620 --> 00:16:16,200 claro, es que no está muy claro 419 00:16:16,200 --> 00:16:18,460 añade, ¿a qué añades? 420 00:16:19,740 --> 00:16:21,500 es una cadena 421 00:16:21,500 --> 00:16:26,879 indica para cuantos 422 00:16:26,879 --> 00:16:28,620 es esta partitura 423 00:16:28,620 --> 00:16:29,659 claro, es que esto no está 424 00:16:29,659 --> 00:16:32,240 muy bien definido 425 00:16:32,240 --> 00:16:33,779 este enunciado no está definido 426 00:16:33,779 --> 00:16:36,460 porque tendría que decir, los instrumentos 427 00:16:36,460 --> 00:16:38,620 estarían concatenados en el array 428 00:16:38,620 --> 00:16:40,419 el instrumento musical asociado 429 00:16:40,419 --> 00:16:41,779 con la partitura 430 00:16:41,779 --> 00:16:44,919 la velocidad de impulsaciones por minuto 431 00:16:44,919 --> 00:16:46,860 cambiar 432 00:16:46,860 --> 00:16:48,360 y lo cambia en la partitura 433 00:16:48,360 --> 00:16:50,299 del libro antiguo y añade un nuevo 434 00:16:50,299 --> 00:16:52,279 y lo añade en el campo instrumentos 435 00:16:52,279 --> 00:16:54,580 sin sobreescribirlos que había, concatenando 436 00:16:54,580 --> 00:16:55,779 es lo único que podemos hacer 437 00:16:55,779 --> 00:16:58,159 y cuenta, puedes hacer un split 438 00:16:58,159 --> 00:16:58,600 con 439 00:16:58,600 --> 00:17:01,580 sí, vamos a terminarlo 440 00:17:01,580 --> 00:17:04,039 añade instrumentos, vamos a interpretarlo como vosotros 441 00:17:04,039 --> 00:17:04,359 vale 442 00:17:04,359 --> 00:17:12,099 claro, habría que ese string que tiene 443 00:17:12,099 --> 00:17:14,440 muchos separados con espacios, pues contar cuánto 444 00:17:14,440 --> 00:17:15,799 lo que pasa es que claro, si es el 445 00:17:15,799 --> 00:17:17,680 oboe de amor, por ejemplo 446 00:17:17,680 --> 00:17:20,599 es una versión del OE 447 00:17:20,599 --> 00:17:26,220 pues ahí tengo dos espacios 448 00:17:26,220 --> 00:17:27,220 y un solo instrumento 449 00:17:27,220 --> 00:17:29,960 a ver, que está muy mal 450 00:17:29,960 --> 00:17:30,880 este enunciado 451 00:17:39,880 --> 00:17:43,880 yo lo he cortado con comas 452 00:17:43,880 --> 00:17:45,119 yo he cortado las comas 453 00:17:45,119 --> 00:17:47,339 ah, pues con comas sería mejor que con espacios 454 00:17:47,339 --> 00:17:48,039 efectivamente 455 00:17:48,039 --> 00:17:50,220 pero sí, aquí esto 456 00:17:50,220 --> 00:17:51,640 instrumento 457 00:17:51,640 --> 00:17:53,519 claro, pues aquí 458 00:17:53,519 --> 00:18:00,839 claro, a ver, pues tu duda 459 00:18:00,839 --> 00:18:02,779 viene de que el enunciado 460 00:18:02,779 --> 00:18:04,900 está mal planteado, está ambiguo 461 00:18:04,900 --> 00:18:06,700 entonces pues claro, hay que tomar una decisión 462 00:18:06,700 --> 00:18:07,839 ¿cómo lo hacemos? 463 00:18:07,940 --> 00:18:11,099 si lo hacemos concatenando 464 00:18:11,099 --> 00:18:12,779 que tiene su interés para ya ver 465 00:18:12,779 --> 00:18:14,140 el método split que es muy útil 466 00:18:14,140 --> 00:18:16,500 vale, pues vamos a suponer que 467 00:18:16,500 --> 00:18:18,619 si añadimos un instrumento más, pues concatenamos 468 00:18:18,619 --> 00:18:20,819 coma y el instrumento, y ya está 469 00:18:20,819 --> 00:18:24,160 ahora, ahora, ahora, en el siguiente 470 00:18:24,160 --> 00:18:25,680 entonces 471 00:18:25,680 --> 00:18:29,359 instrumento 472 00:18:29,359 --> 00:18:32,279 más igual coma 473 00:18:32,279 --> 00:18:34,779 el instrumento que me han dado 474 00:18:34,779 --> 00:18:36,599 perdón, this instrumento 475 00:18:36,599 --> 00:18:45,079 vale, por ejemplo, os supone que cada vez que ponemos 476 00:18:45,079 --> 00:18:47,039 un instrumento nuevo, pim, le añadimos 477 00:18:47,039 --> 00:18:47,500 con coma 478 00:18:47,500 --> 00:18:52,619 jolín, perdón 479 00:18:52,619 --> 00:18:54,900 soy tonta, ¿vale? por ejemplo 480 00:18:54,900 --> 00:18:56,900 vamos a asumir que 481 00:18:56,900 --> 00:18:59,400 este convenio, que podría ser otro 482 00:18:59,400 --> 00:19:01,759 podría ser como un array que tendría mucho más sentido 483 00:19:01,759 --> 00:19:03,680 tendría mucho más sentido guardarlos en un array 484 00:19:03,680 --> 00:19:05,200 que no separados por comas 485 00:19:05,200 --> 00:19:07,660 pero bueno, ya que tenemos la oportunidad y así ya jugamos 486 00:19:07,660 --> 00:19:08,319 luego con 487 00:19:08,319 --> 00:19:11,759 métodos de stream, vale, añadir instrumento 488 00:19:11,759 --> 00:19:13,700 y ya está, con cambiar 489 00:19:13,700 --> 00:19:15,480 con esto directamente 490 00:19:15,480 --> 00:19:17,039 cambio 491 00:19:17,039 --> 00:19:19,160 este instrumento 492 00:19:19,160 --> 00:19:20,640 por lo que haya 493 00:19:20,640 --> 00:19:22,240 vale 494 00:19:22,240 --> 00:19:25,180 y aquí podemos poner incluso 495 00:19:25,180 --> 00:19:27,259 añadiendo 496 00:19:27,259 --> 00:19:28,660 añadiendo 497 00:19:28,660 --> 00:19:30,579 vale, vamos a hacer el último 498 00:19:30,579 --> 00:19:32,640 y nos vamos 499 00:19:32,640 --> 00:19:35,259 pues venga, el último es 500 00:19:35,259 --> 00:19:36,099 cuenta 501 00:19:36,099 --> 00:19:41,259 contar, ya sí que me devuelve un valor 502 00:19:41,259 --> 00:19:42,720 el número de instrumentos 503 00:19:42,720 --> 00:19:48,920 ¿necesita algún parámetro? 504 00:19:49,200 --> 00:19:51,200 no, porque sus datos 505 00:19:51,200 --> 00:19:53,119 de trabajo, sus datos 506 00:19:53,119 --> 00:19:54,859 son estos, es este string 507 00:19:54,859 --> 00:19:58,140 estos son sus datos de trabajo 508 00:19:58,140 --> 00:19:59,019 vale 509 00:19:59,019 --> 00:20:01,420 pues ahora 510 00:20:01,420 --> 00:20:03,579 con este convenio 511 00:20:03,579 --> 00:20:06,000 podríamos contar las comas 512 00:20:06,000 --> 00:20:06,440 que hay 513 00:20:06,440 --> 00:20:09,839 y instrumentos va a ser el número de comas más uno 514 00:20:09,839 --> 00:20:11,660 ¿verdad? 515 00:20:14,039 --> 00:20:15,240 sí, vale 516 00:20:15,240 --> 00:20:17,700 pero vamos a aprovechar para meter un método 517 00:20:17,700 --> 00:20:19,460 que es muy útil, a ver, yo tengo 518 00:20:19,460 --> 00:20:21,140 instrumento 519 00:20:21,140 --> 00:20:23,079 que es un objeto string 520 00:20:23,079 --> 00:20:25,640 y al ser un objeto puede llamar 521 00:20:25,640 --> 00:20:28,519 a un montón de métodos y a un montón de cosas, ¿verdad? 522 00:20:29,160 --> 00:20:31,019 Bueno, pues hay un método muy útil 523 00:20:31,019 --> 00:20:32,720 que es el método split 524 00:20:32,720 --> 00:20:36,960 que si tú le das un carácter 525 00:20:36,960 --> 00:20:39,259 como en nuestro caso la coma 526 00:20:39,259 --> 00:20:40,960 le doy un carácter 527 00:20:40,960 --> 00:20:45,059 te separa ese string en substring 528 00:20:45,059 --> 00:20:48,559 los que quedan separados precisamente 529 00:20:48,559 --> 00:20:50,220 por ese separador, por esa coma 530 00:20:50,220 --> 00:20:52,000 y te los mete todos en un array. 531 00:20:53,000 --> 00:20:54,319 Es decir, este método 532 00:20:54,319 --> 00:20:55,859 me devolvería 533 00:20:55,859 --> 00:20:57,880 un array de string 534 00:20:57,880 --> 00:21:00,819 con todos los instrumentos 535 00:21:00,819 --> 00:21:04,099 que hay ahí, que los tengo 536 00:21:04,099 --> 00:21:06,039 separados por espacios, pues cambio eso 537 00:21:06,039 --> 00:21:08,160 por un espacio, que los tengo separados 538 00:21:08,160 --> 00:21:10,160 por dos puntos, cambio eso por dos puntos 539 00:21:10,160 --> 00:21:12,259 ¿vale? entonces la clase 540 00:21:12,259 --> 00:21:13,920 string, como cualquier otra clase 541 00:21:13,920 --> 00:21:16,220 tiene un montón 542 00:21:16,220 --> 00:21:17,539 de métodos para hacer cosas 543 00:21:17,539 --> 00:21:20,339 entonces siempre está bien aprovechar 544 00:21:20,339 --> 00:21:21,839 un despliegue para decir 545 00:21:21,839 --> 00:21:24,240 oye, voy a ver que en lugar de hacer algo yo a mano 546 00:21:24,240 --> 00:21:26,319 voy a ver si hay algún método que me lo haga 547 00:21:26,319 --> 00:21:28,759 bueno, pues este 548 00:21:28,759 --> 00:21:30,740 me separa 549 00:21:30,740 --> 00:21:32,859 todo el string en subcadenas 550 00:21:32,859 --> 00:21:34,599 que se hayan 551 00:21:34,599 --> 00:21:36,759 precisamente separadas 552 00:21:36,759 --> 00:21:38,259 por este separador que yo he puesto aquí 553 00:21:38,259 --> 00:21:40,799 entonces en este caso 554 00:21:40,799 --> 00:21:42,740 el número de instrumentos sería el tamaño 555 00:21:42,740 --> 00:21:43,619 del string, ¿verdad? 556 00:21:44,259 --> 00:21:46,700 pero vamos a aprovechar y vamos a mostrar los instrumentos 557 00:21:46,700 --> 00:21:48,799 vamos a mostrar los instrumentos 558 00:21:48,799 --> 00:21:50,099 que hay y luego ya devolvemos la cantidad 559 00:21:50,099 --> 00:21:51,220 ya que estamos 560 00:21:51,220 --> 00:21:56,099 pues entonces podríamos hacerlo así 561 00:21:56,099 --> 00:21:58,759 instrumentos 562 00:21:58,759 --> 00:22:03,640 inst, no int 563 00:22:03,640 --> 00:22:09,619 vale, y ya de paso 564 00:22:09,619 --> 00:22:11,519 voy a devolver ahora ya el tamaño 565 00:22:11,519 --> 00:22:13,720 que es instrumentos 566 00:22:13,720 --> 00:22:14,480 punto len 567 00:22:14,480 --> 00:22:17,859 vale, entonces este método es muy cómodo 568 00:22:17,859 --> 00:22:19,720 y muy útil para trabajar con string 569 00:22:19,720 --> 00:22:21,619 pues ya, como lo hemos hecho una vez, ya se nos 570 00:22:21,619 --> 00:22:22,759 queda ahí la idea de que está 571 00:22:22,759 --> 00:22:25,619 vale, entonces, pues de que 572 00:22:25,619 --> 00:22:27,480 otra manera se puede hacer, pues claro 573 00:22:27,480 --> 00:22:29,539 depende de que me lo detallen un poquito 574 00:22:29,539 --> 00:22:30,980 más, vale 575 00:22:30,980 --> 00:22:36,259 no, porque es el tamaño 576 00:22:36,259 --> 00:22:37,619 del array lo que estoy devolviendo 577 00:22:37,619 --> 00:22:40,160 la cantidad de subcadenas 578 00:22:40,160 --> 00:22:41,420 que hay separadas por comas 579 00:22:41,420 --> 00:22:43,839 si contara las comas 580 00:22:43,839 --> 00:22:45,519 entonces sí, tendría que sumarle uno 581 00:22:45,519 --> 00:22:51,859 vale, pues bueno 582 00:22:51,859 --> 00:22:53,799 haced un mail y lo probáis