1 00:00:00,500 --> 00:00:02,259 eso, muy bien 2 00:00:02,259 --> 00:00:04,400 así con calma 3 00:00:04,400 --> 00:00:07,019 vale, pues estamos haciendo 4 00:00:07,019 --> 00:00:08,880 este método que quiero 5 00:00:08,880 --> 00:00:10,519 que me lea del teclado algo 6 00:00:10,519 --> 00:00:12,320 y me devuelva 7 00:00:12,320 --> 00:00:14,839 alguno de estos objetos, solo 8 00:00:14,839 --> 00:00:15,800 uno de esos cinco 9 00:00:15,800 --> 00:00:18,699 y así yo invoco luego ese método para 10 00:00:18,699 --> 00:00:20,879 leer mis objetos que pertenezcan 11 00:00:20,879 --> 00:00:21,800 a este tipo de datos 12 00:00:21,800 --> 00:00:24,839 ese es mi objetivo, hacer aquí 13 00:00:24,839 --> 00:00:26,839 algo para que me devuelva uno de esos 14 00:00:26,839 --> 00:00:28,699 cinco, entonces 15 00:00:28,699 --> 00:00:47,950 Pues por ejemplo, podemos hacer, vamos a leer la cadena que él nos diga, que esa no podemos elegir, cadena que él nos dice, pues teclado, si tenéis que hacer un escáner, pues tenéis que hacer un escáner, leer cadena. 16 00:00:47,950 --> 00:01:07,319 Y ahora voy a recorrer todos estos, voy a recorrer todos estos para ver cuál de ellos coincide en nombre con el que acaban de meter, ignorando las mayúsculas y minúsculas. 17 00:01:07,319 --> 00:01:09,480 porque el nombre de estos 18 00:01:09,480 --> 00:01:11,219 que lo hemos visto antes con el get name 19 00:01:11,219 --> 00:01:12,540 es con mayúsculas también 20 00:01:12,540 --> 00:01:15,280 vale pues como puedo recorrer yo esto 21 00:01:15,280 --> 00:01:17,659 como puedo ir yo recorriendo todos estos 22 00:01:17,659 --> 00:01:19,620 para ahora 23 00:01:19,620 --> 00:01:21,219 a ver si alguno de ellos 24 00:01:21,219 --> 00:01:23,280 es igual 25 00:01:23,280 --> 00:01:25,420 en nombre a esta entrada 26 00:01:25,420 --> 00:01:27,719 de aquí saltándome mayúsculas minúsculas 27 00:01:27,719 --> 00:01:29,319 bueno pues 28 00:01:29,319 --> 00:01:35,719 cualquier cosa que sea enum 29 00:01:35,719 --> 00:01:37,239 por ser un enum 30 00:01:37,239 --> 00:01:39,799 hereda de otras 31 00:01:39,799 --> 00:01:41,640 cosas, porque cualquier clase que tiene 32 00:01:41,640 --> 00:01:43,680 la máquina virtual, las que usamos 33 00:01:43,680 --> 00:01:45,500 Scanner, System.out 34 00:01:45,500 --> 00:01:47,280 String 35 00:01:47,280 --> 00:01:49,640 y muchísimas otras más 36 00:01:49,640 --> 00:01:51,079 las millones que usemos, todas 37 00:01:51,079 --> 00:01:53,840 están metidas en realidad en una jerarquía 38 00:01:53,840 --> 00:01:54,480 de clases 39 00:01:54,480 --> 00:01:57,780 ¿vale? la máquina virtual 40 00:01:57,780 --> 00:01:59,480 de Java ha diseñado sus clases 41 00:01:59,480 --> 00:02:01,519 todas en una jerarquía para optimizar 42 00:02:01,519 --> 00:02:03,480 el diseño, pues en un 43 00:02:03,480 --> 00:02:05,480 como hereda de otra cosa 44 00:02:05,480 --> 00:02:07,939 tiene cosas aquí, aunque nosotros no las veamos. 45 00:02:08,759 --> 00:02:09,780 Pues, ¿qué cosas tiene? 46 00:02:09,860 --> 00:02:11,139 Tiene un método values, 47 00:02:11,539 --> 00:02:15,439 tiene un método values que me devuelve un array 48 00:02:15,439 --> 00:02:19,659 de todo esto de aquí. 49 00:02:22,550 --> 00:02:32,080 Es decir, este método values me devuelve, ¿vale? 50 00:02:32,080 --> 00:02:36,259 Día, semana, días, ¿veis? 51 00:02:37,439 --> 00:02:41,680 Este método values está aquí, aunque yo no lo vea, 52 00:02:41,759 --> 00:02:45,979 Porque está heredado de la superclase de la que hereda cualquier enum. 53 00:02:45,979 --> 00:02:48,680 Cualquier enum que tú hagas, por el hecho de ser enum, 54 00:02:49,319 --> 00:02:51,159 por el hecho de ser enum, hereda de alguien. 55 00:02:53,389 --> 00:02:55,430 Y eso significa que tiene un método values 56 00:02:55,430 --> 00:02:58,069 que te devuelve un array con todos estos. 57 00:02:58,770 --> 00:03:00,289 ¿Veis? Un array de días a la semana. 58 00:03:01,530 --> 00:03:03,129 Vale, pues vamos a recorrerlo. 59 00:03:03,969 --> 00:03:05,729 Para cada día de la semana, 60 00:03:06,990 --> 00:03:08,949 comprendido en todo tu array, 61 00:03:09,729 --> 00:03:12,370 perdón, en todas tus posibilidades, 62 00:03:13,129 --> 00:03:18,030 Vamos a ver si esta posibilidad es la que tú me has metido. 63 00:03:21,539 --> 00:03:38,159 Si dia.main es igual, saltándose mayúsculas y minúsculas, 64 00:03:38,379 --> 00:03:41,539 porque string tiene muchos métodos, podemos ir cotillando los que tiene, 65 00:03:41,539 --> 00:03:43,539 es igual 66 00:03:43,539 --> 00:03:46,719 saltándose mayúsculas y minúsculas 67 00:03:46,719 --> 00:03:48,199 que esto que tú me has escrito 68 00:03:48,199 --> 00:03:49,840 es igual 69 00:03:49,840 --> 00:03:52,960 ya está, ya tengo el día que querías 70 00:03:52,960 --> 00:03:54,099 pues ala, para afuera 71 00:03:54,099 --> 00:03:56,520 retúndio, para afuera 72 00:03:56,520 --> 00:03:59,159 ya está 73 00:03:59,159 --> 00:04:01,180 y así vamos avanzando 74 00:04:01,180 --> 00:04:04,580 ¿qué puede ocurrir? para hacer esto más sencillo 75 00:04:04,580 --> 00:04:06,319 no complicarlo, para no meterle en un bucle 76 00:04:06,319 --> 00:04:07,740 hasta que el tío no meta uno así 77 00:04:07,740 --> 00:04:10,240 eso lo podemos hacer luego en el main 78 00:04:10,240 --> 00:04:12,240 si este for termina 79 00:04:12,240 --> 00:04:16,120 y no ha salido por aquí nunca 80 00:04:16,120 --> 00:04:19,500 es porque lo que él metió 81 00:04:19,500 --> 00:04:21,639 no se corresponde en nombre 82 00:04:21,639 --> 00:04:23,839 saltando mayúsculas y minúsculas 83 00:04:23,839 --> 00:04:24,759 a ninguno de los días. 84 00:04:25,339 --> 00:04:26,720 Pues en ese caso que salga por aquí 85 00:04:26,720 --> 00:04:27,360 devolviendo nul. 86 00:04:28,259 --> 00:04:29,420 Luego este método 87 00:04:29,420 --> 00:04:31,379 o te devuelve directamente 88 00:04:31,379 --> 00:04:34,639 una de las cinco posibilidades 89 00:04:34,639 --> 00:04:36,259 o te devuelve nul. 90 00:04:37,180 --> 00:04:38,540 Y ahora nosotros ya en el mail 91 00:04:38,540 --> 00:04:39,699 pues ya gestionamos eso. 92 00:04:39,699 --> 00:04:41,920 pero esto ya es una forma 93 00:04:41,920 --> 00:04:43,879 cómoda de leer 94 00:04:43,879 --> 00:04:44,379 un enum 95 00:04:44,379 --> 00:04:47,800 llamo al método leer teclado 96 00:04:47,800 --> 00:04:49,579 y sé que me va a devolver 97 00:04:49,579 --> 00:04:51,879 o un objeto enum válido 98 00:04:51,879 --> 00:04:53,699 o un null 99 00:04:53,699 --> 00:04:57,800 ahora ya lo usamos desde el main 100 00:04:57,800 --> 00:04:59,259 ¿vale? 101 00:05:10,610 --> 00:05:12,350 ¿pero no tengo que volver esto siempre 102 00:05:12,350 --> 00:05:14,370 null? no, porque puede 103 00:05:14,370 --> 00:05:15,370 haber salido por aquí 104 00:05:15,370 --> 00:05:18,610 si ha salido por aquí con el return, el método terminó 105 00:05:18,610 --> 00:05:20,410 return hace que el método acabe 106 00:05:20,410 --> 00:05:21,990 con lo cual 107 00:05:21,990 --> 00:05:23,689 lo que haya después 108 00:05:23,689 --> 00:05:24,949 inalcanzable 109 00:05:24,949 --> 00:05:27,949 va a llegar solamente aquí 110 00:05:27,949 --> 00:05:30,529 si nunca jamás este if fue true 111 00:05:30,529 --> 00:05:34,430 que es porque este input pone Pepito Pérez 112 00:05:34,430 --> 00:05:36,209 no pone ni lunes, ni martes, ni miércoles 113 00:05:36,209 --> 00:05:42,199 vale, pues entonces ahora ya 114 00:05:42,199 --> 00:05:44,139 vamos a usar esto en nuestro main 115 00:05:44,139 --> 00:05:45,100 de citas 116 00:05:45,100 --> 00:05:46,699 ahora 117 00:05:46,699 --> 00:05:51,620 queremos leer, estamos aquí 118 00:05:51,620 --> 00:05:54,019 nuestra cita, pues ya está 119 00:05:54,019 --> 00:05:55,939 día de la semana leer teclado, pero podría 120 00:05:55,939 --> 00:05:57,939 ocurrir que esto fuera 121 00:05:57,939 --> 00:05:58,240 nul 122 00:05:58,240 --> 00:06:01,240 entonces vamos a 123 00:06:01,240 --> 00:06:04,000 meter esto en un 124 00:06:04,000 --> 00:06:10,839 en un 125 00:06:10,839 --> 00:06:12,519 while y hasta que no sea diferente 126 00:06:12,519 --> 00:06:13,819 de nul vamos a estar ahí 127 00:06:13,819 --> 00:06:22,290 pues ala, estate ahí atascado 128 00:06:22,290 --> 00:06:24,029 mientras 129 00:06:24,029 --> 00:06:26,050 cita.día 130 00:06:26,050 --> 00:06:28,350 sea igual a nul 131 00:06:28,350 --> 00:06:30,550 ala, ahí te dejo 132 00:06:30,550 --> 00:06:45,680 vale, vamos a 133 00:06:45,680 --> 00:06:47,259 ponerle aquí para ver 134 00:06:47,259 --> 00:06:52,370 tu cita 135 00:06:52,370 --> 00:06:54,490 y ponemos aquí 136 00:06:54,490 --> 00:06:58,990 cita.doctor 137 00:06:58,990 --> 00:07:04,410 cita.día 138 00:07:04,410 --> 00:07:11,860 vale, pues este va a estar aquí 139 00:07:11,860 --> 00:07:12,459 todo el rato 140 00:07:12,459 --> 00:07:15,800 entonces vamos a poner un system out 141 00:07:15,800 --> 00:07:16,160 aquí 142 00:07:16,160 --> 00:07:19,120 para saber que es lo que estamos haciendo 143 00:07:19,120 --> 00:07:23,100 introduzca día 144 00:07:23,100 --> 00:07:24,879 de la cita 145 00:07:24,879 --> 00:07:27,480 vale, introduzca 146 00:07:27,480 --> 00:07:28,360 día de la cita 147 00:07:28,360 --> 00:07:31,000 mientras no ponga un día válido 148 00:07:31,000 --> 00:07:32,120 está ahí emperrado. 149 00:07:33,060 --> 00:07:34,259 Vale, vamos a ejecutar esto. 150 00:07:43,120 --> 00:07:44,180 Introduzca el día de la cita. 151 00:07:44,360 --> 00:07:45,019 Pi, pi, pi. 152 00:07:46,180 --> 00:07:46,660 Nada. 153 00:07:48,240 --> 00:07:49,060 Ahora ya sí. 154 00:07:50,360 --> 00:07:52,600 Tu cita es con este doctor 155 00:07:52,600 --> 00:07:59,490 el martes. Bueno, pues es un 156 00:07:59,490 --> 00:08:01,569 posible uso del enum. 157 00:08:02,029 --> 00:08:03,569 No es que estas cosas se hagan 158 00:08:03,569 --> 00:08:05,589 así. Lo importante es que sepamos 159 00:08:05,589 --> 00:08:06,509 el enum que es 160 00:08:06,509 --> 00:08:09,790 un tipo personalizado nuestro en el cual 161 00:08:09,790 --> 00:08:11,529 damos un 162 00:08:11,529 --> 00:08:13,589 conjunto finito de posibilidades. 163 00:08:13,670 --> 00:08:16,629 porque hay una variable, una propiedad 164 00:08:16,629 --> 00:08:18,649 de una clase que solo admite un conjunto 165 00:08:18,649 --> 00:08:19,889 finito de posibilidades 166 00:08:19,889 --> 00:08:22,629 entonces como eso no lo puedo 167 00:08:22,629 --> 00:08:24,589 recoger, reflejar, ni en un string 168 00:08:24,589 --> 00:08:26,850 ni en un conjunto finito 169 00:08:26,850 --> 00:08:28,610 no lo puedo reflejar, ni en int 170 00:08:28,610 --> 00:08:30,509 ni en nada, pues me hago un 171 00:08:30,509 --> 00:08:33,090 personalizado con mis posibilidades 172 00:08:33,090 --> 00:08:34,509 y esa propiedad 173 00:08:34,509 --> 00:08:35,710 que pertenezca a ese enum 174 00:08:35,710 --> 00:08:37,830 y ahora ya 175 00:08:37,830 --> 00:08:38,889 pues 176 00:08:38,889 --> 00:08:42,250 profundizando más, buscando más 177 00:08:42,250 --> 00:08:44,789 investigando más en el funcionamiento 178 00:08:44,789 --> 00:08:46,509 de enum, pues ya podemos 179 00:08:46,509 --> 00:08:47,789 manejarlo como nos interese 180 00:08:47,789 --> 00:08:50,210 y este es un uso 181 00:08:50,210 --> 00:08:52,450 relativamente 182 00:08:52,450 --> 00:08:53,350 cómodo 183 00:08:53,350 --> 00:08:56,429 ¿vale? para leerlo por teclado 184 00:08:56,429 --> 00:08:58,450 y luego 185 00:08:58,450 --> 00:09:00,610 sobre todo el enum, pues le pega muy bien 186 00:09:00,610 --> 00:09:02,610 esto, en función de las posibilidades 187 00:09:02,610 --> 00:09:03,990 pues haces una cosa u otra 188 00:09:03,990 --> 00:09:13,960 ¿vale? 189 00:09:15,039 --> 00:09:17,299 enum tiene más métodos, más chorradinas 190 00:09:17,299 --> 00:09:18,220 para hacer cosas, pero 191 00:09:18,220 --> 00:09:21,899 bueno, ¿vuestra curiosidad del enum 192 00:09:21,899 --> 00:09:22,700 se ha satisfecho? 193 00:09:23,620 --> 00:09:25,179 me alegro muchísimo 194 00:09:25,179 --> 00:09:30,149 pues volvemos a nuestro 195 00:09:30,149 --> 00:09:30,769 manejador 196 00:09:30,769 --> 00:09:41,620 entonces, nuestro manejador, que ya nos habíamos 197 00:09:41,620 --> 00:09:43,159 perdido, teníamos un enum 198 00:09:43,159 --> 00:09:45,799 que es tipo figura 199 00:09:45,799 --> 00:09:48,139 triángulo, círculo, cuadrado 200 00:09:48,139 --> 00:09:51,659 vale, pues vamos a ponerle 201 00:09:51,659 --> 00:09:53,740 ese leer teclado 202 00:09:53,740 --> 00:09:54,480 que nos ha gustado 203 00:09:54,480 --> 00:09:56,980 para cuando le pidamos al tipo 204 00:09:56,980 --> 00:09:59,299 Oye, ¿qué figura vas a meter? 205 00:09:59,500 --> 00:10:01,659 Porque en función de eso, instancio con un constructor 206 00:10:01,659 --> 00:10:02,659 O instancio con otro 207 00:10:02,659 --> 00:10:05,879 Pues venga, vamos a copiar 208 00:10:05,879 --> 00:10:07,559 Del otro que hemos hecho 209 00:10:07,559 --> 00:10:12,120 Vamos a copiar el leer teclado 210 00:10:12,120 --> 00:10:14,340 Cambiando los tipos de datos 211 00:10:14,340 --> 00:10:14,679 Claro 212 00:10:14,679 --> 00:10:23,379 Aquí no será día-semana 213 00:10:23,379 --> 00:10:24,360 Sino que será 214 00:10:24,360 --> 00:10:31,639 Tipo figura 215 00:10:31,639 --> 00:10:37,159 Aquí será también 216 00:10:37,159 --> 00:10:43,019 ¿Puedes explicar otra vez lo que hace Valius? 217 00:10:44,200 --> 00:10:45,659 Valius te devuelve 218 00:10:45,659 --> 00:10:48,740 un array con todas las posibilidades 219 00:10:48,740 --> 00:10:49,379 del enum 220 00:10:49,379 --> 00:10:51,460 en el que estás llamándolo 221 00:10:51,460 --> 00:10:52,600 o sea, values es un método 222 00:10:52,600 --> 00:10:55,460 o sea, enum hereda de una clase 223 00:10:55,460 --> 00:10:57,299 enumeratio, algo así se llama 224 00:10:57,299 --> 00:10:58,600 no lo sé, no me acuerdo 225 00:10:58,600 --> 00:11:00,919 y esa clase tiene ya métodos hechos 226 00:11:00,919 --> 00:11:02,860 entre ellos tiene un método values 227 00:11:02,860 --> 00:11:05,259 que sirve para devolverte un array 228 00:11:05,259 --> 00:11:06,940 con todos 229 00:11:06,940 --> 00:11:08,519 estos objetos 230 00:11:08,519 --> 00:11:11,360 ¿vale? por eso te devuelve un array 231 00:11:11,360 --> 00:11:12,440 de tipo figura 232 00:11:12,440 --> 00:11:14,779 ¿y el roce no puede ser donde abajo pone 233 00:11:14,779 --> 00:11:17,019 Bueno 234 00:11:17,019 --> 00:11:21,299 Sí, sí, claro que podrías 235 00:11:21,299 --> 00:11:23,740 Lo he hecho así para que se vea claro lo que devuelve Valius 236 00:11:23,740 --> 00:11:25,500 Claro, podría poner aquí Valius 237 00:11:25,500 --> 00:11:27,620 Lo que pasa es que antes lo he desglosado en líneas 238 00:11:27,620 --> 00:11:29,279 Para que se viera claro 239 00:11:29,279 --> 00:11:31,039 Que devuelve un array de esto 240 00:11:31,039 --> 00:11:31,879 ¿Vale? 241 00:11:33,200 --> 00:11:35,240 Pero sí, claro, te puedes ahorrar esa línea 242 00:11:35,240 --> 00:11:39,139 FIX 243 00:11:39,139 --> 00:11:41,720 Le voy a cambiar los nombres para que no quede tan feo 244 00:11:41,720 --> 00:11:43,779 FIX 245 00:11:43,779 --> 00:11:54,840 Vale, ya tenemos nuestro 246 00:11:54,840 --> 00:11:56,679 leer del teclado una figura 247 00:11:56,679 --> 00:11:58,539 que va a estar ahí con el null, mientras el 248 00:11:58,539 --> 00:12:00,580 que nos escribe no nos diga, triángulo, 249 00:12:00,700 --> 00:12:01,519 círculo o cuadrado. 250 00:12:03,419 --> 00:12:04,720 Vale, y aquí hay algo 251 00:12:04,720 --> 00:12:05,019 que 252 00:12:05,019 --> 00:12:07,740 está mal hecho. 253 00:12:14,320 --> 00:12:16,120 Ah, que aquí hay día-semana 254 00:12:16,120 --> 00:12:18,320 y esto es tipo 255 00:12:18,320 --> 00:12:22,179 figura. 256 00:12:23,759 --> 00:12:24,700 Vale, ahora ya sí. 257 00:12:25,440 --> 00:12:27,019 Vale, pues nuestro main raro, 258 00:12:27,019 --> 00:12:28,799 nuestro main de figura geométrica. 259 00:12:29,620 --> 00:12:29,639 Vale. 260 00:12:31,059 --> 00:12:33,139 Crear figura, fin para terminar. 261 00:12:33,159 --> 00:12:45,710 ahora ahora es cuando le vamos a preguntar el tipo de figura entonces hacemos aquí tipo figura 262 00:12:45,710 --> 00:13:23,200 y ahora do y esto sí que se lo ponemos aquí dentro do y ahora tipo figura igual a esto punto leer del 263 00:13:23,200 --> 00:13:48,559 teclado mientras esto sea diferente mientras esto sea igual a no vale pues 264 00:13:48,559 --> 00:13:53,539 vamos a crear figura introduce el tipo y ahora ya sí que tenemos que hacer el 265 00:13:53,539 --> 00:13:57,899 switch en función del tipo que quieras crear o pedimos un lado pedimos tres o 266 00:13:57,899 --> 00:14:01,940 pedimos un radio entonces aquí ahora ya sí que no queda más remedio que hacer 267 00:14:01,940 --> 00:14:03,940 un switch en función 268 00:14:03,940 --> 00:14:06,000 del tipo de figura que tú me has dicho 269 00:14:06,000 --> 00:14:12,610 si es 270 00:14:12,610 --> 00:14:16,820 triángulo 271 00:14:16,820 --> 00:14:21,659 pues si es triángulo, aquí habría que decirle 272 00:14:21,659 --> 00:14:22,639 introduzca 273 00:14:22,639 --> 00:14:24,639 lado del triángulo 274 00:14:24,639 --> 00:14:29,860 vale 275 00:14:29,860 --> 00:14:31,480 vamos a 276 00:14:31,480 --> 00:14:46,529 case círculo 277 00:14:46,529 --> 00:14:50,409 case cuadrado 278 00:14:50,409 --> 00:14:58,570 entonces aquí 279 00:14:58,570 --> 00:14:59,950 para no hacer crecer 280 00:14:59,950 --> 00:15:01,169 los 281 00:15:01,169 --> 00:15:04,750 los case 282 00:15:04,750 --> 00:15:08,629 indefinidamente, aquí deberíais meter un auxiliar 283 00:15:08,629 --> 00:15:12,009 entonces vamos a dejar los huecos 284 00:15:12,009 --> 00:15:13,230 para que lo completéis 285 00:15:13,230 --> 00:15:18,659 la figura que vamos a crear 286 00:15:18,659 --> 00:15:21,419 figura geométrica 287 00:15:21,419 --> 00:15:25,159 figura geométrica 288 00:15:25,159 --> 00:15:26,960 la figura que vamos a crear 289 00:15:26,960 --> 00:15:29,519 inicialmente es null 290 00:15:29,519 --> 00:15:35,899 y ahora aquí se instanciará 291 00:15:35,899 --> 00:15:39,080 pidiendo lo que toque en cada caso 292 00:15:39,080 --> 00:15:41,740 y ahora una vez que esté instanciada 293 00:15:41,740 --> 00:15:43,279 cuando el switch case ha terminado 294 00:15:43,279 --> 00:15:44,059 que estamos aquí 295 00:15:44,059 --> 00:15:47,460 este es el fin del switch 296 00:15:47,460 --> 00:15:51,220 este es el fin del switch 297 00:15:51,220 --> 00:15:52,600 cuando el switch case ha terminado 298 00:15:52,600 --> 00:15:55,830 ahora ya 299 00:15:55,830 --> 00:15:58,389 ¿qué hacemos? 300 00:15:59,730 --> 00:16:00,889 pues meterlo 301 00:16:00,889 --> 00:16:02,889 en el array de figuras geométricas 302 00:16:02,889 --> 00:16:04,250 entonces 303 00:16:04,250 --> 00:16:09,600 add figura 304 00:16:09,600 --> 00:16:10,919 al array 305 00:16:10,919 --> 00:16:16,700 figuras 306 00:16:16,700 --> 00:16:23,820 No, porque es un método que vamos a hacer nosotros 307 00:16:23,820 --> 00:16:32,480 Configura, vale 308 00:16:32,480 --> 00:16:34,440 String, lectura 309 00:16:34,440 --> 00:16:44,759 Vale, a ver 310 00:16:44,759 --> 00:16:46,460 Este bucle de aquí 311 00:16:46,460 --> 00:16:48,620 Era para crear el array de figuras 312 00:16:48,620 --> 00:16:49,419 Todo el rato 313 00:16:49,419 --> 00:16:51,740 Es un bucle para crear el array de figuras 314 00:16:51,740 --> 00:16:53,080 Entonces 315 00:16:53,080 --> 00:16:56,539 Aquí lo único que 316 00:16:56,539 --> 00:16:59,940 Claro, como yo he puesto 317 00:16:59,940 --> 00:17:02,360 Que fin sea una posibilidad también 318 00:17:02,360 --> 00:17:06,319 y he metido lo de leer el tipo de figura por aquí 319 00:17:06,319 --> 00:17:09,559 nunca va a ser fin, lectura no se está leyendo 320 00:17:09,559 --> 00:17:10,740 entonces no puede meter fin 321 00:17:10,740 --> 00:17:13,799 entonces crear el array de figuras 322 00:17:13,799 --> 00:17:17,299 tendríamos que cambiar la estructura 323 00:17:17,299 --> 00:17:20,759 para no cambiarlo vamos a hacer que crea un array de 10 figuras 324 00:17:20,759 --> 00:17:22,079 y ya está, así no lo tocamos mucho 325 00:17:22,079 --> 00:17:24,059 quiero que completéis ahora vosotros esto 326 00:17:24,059 --> 00:17:28,380 entonces vamos a cambiarlo así 327 00:17:28,380 --> 00:17:30,680 que nos diga primero el número de figuras que va a hacer 328 00:17:30,680 --> 00:17:36,519 pues que yo había hecho este bucle 329 00:17:36,519 --> 00:17:38,319 para que se haida por lectura igual a 330 00:17:38,319 --> 00:17:40,599 pero entonces lectura también tiene que admitir fin 331 00:17:40,599 --> 00:17:42,940 y yo no estoy admitiendo que sea fin 332 00:17:42,940 --> 00:17:43,900 porque he metido aquí 333 00:17:43,900 --> 00:17:46,700 porque lectura 334 00:17:46,700 --> 00:17:48,240 es una variable local a esto 335 00:17:48,240 --> 00:17:50,380 entonces tendría que pasárselo como parámetro 336 00:17:50,380 --> 00:17:51,180 a tipo figura 337 00:17:51,180 --> 00:17:52,880 que lo puedo hacer 338 00:17:52,880 --> 00:17:53,700 ¿vale? 339 00:18:00,759 --> 00:18:01,720 ¿pongo un fin dónde? 340 00:18:04,140 --> 00:18:04,880 o sea es que 341 00:18:04,880 --> 00:18:07,000 el valor que se ha leído 342 00:18:07,000 --> 00:18:09,079 se ha leído y se ha quedado aquí encapsulado 343 00:18:09,079 --> 00:18:10,039 no está visible fuera 344 00:18:10,039 --> 00:18:12,619 entonces no puedo acceder al valor leído 345 00:18:12,619 --> 00:18:14,720 no puedo acceder, entonces hombre 346 00:18:14,720 --> 00:18:16,839 puedo cambiarlo de mil formas 347 00:18:16,839 --> 00:18:18,880 pero para no liarla, para no liar 348 00:18:18,880 --> 00:18:20,900 este código y deshacerlo 349 00:18:20,900 --> 00:18:22,740 de, o sea, el método de Lennon 350 00:18:22,740 --> 00:18:25,160 para no tocarlo, ahora que más o menos está bien entendido 351 00:18:25,160 --> 00:18:26,799 voy a hacer 352 00:18:26,799 --> 00:18:28,960 que lo haga 10 veces 353 00:18:28,960 --> 00:18:29,519 y ya está 354 00:18:29,519 --> 00:18:32,140 bueno, más que 10 veces le vamos a 355 00:18:32,140 --> 00:18:34,700 le vamos a preguntar cuántas figuras 356 00:18:34,700 --> 00:18:35,460 quiere crear 357 00:18:35,460 --> 00:18:37,839 que se me ha abierto esto 358 00:18:37,839 --> 00:18:39,740 le vamos a preguntar cuantas figuras quiere 359 00:18:39,740 --> 00:18:41,480 y que el bucle se haga tantas veces como esa 360 00:18:41,480 --> 00:18:41,980 y ya está 361 00:18:41,980 --> 00:18:46,990 cuantas va a crear 362 00:18:46,990 --> 00:18:53,289 y ahora que lo lea desde aquí 363 00:18:53,289 --> 00:18:54,930 teclado punto 364 00:18:54,930 --> 00:18:57,309 leer de entero 365 00:18:57,309 --> 00:19:00,660 y ahora ya 366 00:19:00,660 --> 00:19:04,720 mientras decrementamos num 367 00:19:04,720 --> 00:19:05,420 aquí al final 368 00:19:05,420 --> 00:19:12,859 y mientras num sea diferente 369 00:19:12,859 --> 00:19:14,660 de cero y ya está, es el arreglo 370 00:19:14,660 --> 00:19:16,039 con el que menos código toco 371 00:19:16,039 --> 00:19:22,569 mientras sea mayor o igual que 0 372 00:19:22,569 --> 00:19:23,450 por ejemplo 373 00:19:23,450 --> 00:19:28,799 vale, entonces le pregunto al principio 374 00:19:28,799 --> 00:19:29,720 cuántas va a crear 375 00:19:29,720 --> 00:19:32,799 y me hago un do mientras sea mayor o igual que 0 376 00:19:32,799 --> 00:19:34,000 lo voy decrementando y ya está 377 00:19:34,000 --> 00:19:36,779 así no toco ni el enum, ni el método del enum, ni toco nada 378 00:19:36,779 --> 00:19:37,700 vale 379 00:19:37,700 --> 00:19:44,460 no lo puedo enseñar, pues lo vais a hacer vosotros 380 00:19:44,460 --> 00:19:45,619 está vacío 381 00:19:45,619 --> 00:19:47,539 vale 382 00:19:47,539 --> 00:19:50,180 este es el bucle de nuestro main 383 00:19:50,180 --> 00:19:52,299 para crear este array 384 00:19:52,299 --> 00:19:56,539 luego ya llamaremos a los manejadores 385 00:19:56,539 --> 00:19:58,380 para que hagan lo que sean, ya veremos 386 00:19:58,380 --> 00:20:00,579 este bucle es solo para crear el array de figuras 387 00:20:00,579 --> 00:20:02,539 ¿vale? entonces ¿cómo lo estoy 388 00:20:02,539 --> 00:20:04,579 haciendo? pues he forzado 389 00:20:04,579 --> 00:20:05,779 que 390 00:20:05,779 --> 00:20:08,660 solamente pueda meter 391 00:20:08,660 --> 00:20:10,279 uno de tres tipos 392 00:20:10,279 --> 00:20:12,339 y en función del tipo, ahora 393 00:20:12,339 --> 00:20:14,539 tendréis que instanciar la figura geométrica 394 00:20:14,539 --> 00:20:16,440 que toque, luego aquí 395 00:20:16,440 --> 00:20:17,920 hay código por completar 396 00:20:17,920 --> 00:20:20,380 aquí hay código por completar 397 00:20:20,380 --> 00:20:22,160 que es instanciar la figura que toca 398 00:20:22,160 --> 00:20:25,759 en función del enum que ha metido el tío 399 00:20:25,759 --> 00:20:29,920 y ahora ya esa figura que habré instanciado 400 00:20:29,920 --> 00:20:32,839 en alguno de los tres case, en alguno de los tres 401 00:20:32,839 --> 00:20:37,640 esa figura que habré instanciado se lo añado al array de figuras 402 00:20:37,640 --> 00:20:41,960 mediante este método, haz figuras, que tenéis que hacer aquí 403 00:20:41,960 --> 00:20:45,059 recibe este y se lo añade a este array 404 00:20:45,059 --> 00:20:58,220 de figuras, el array de figuras 405 00:20:58,220 --> 00:21:01,079 ¿Por qué le tengo que pasar el array de figuras? 406 00:21:01,140 --> 00:21:02,480 Porque es local al método main 407 00:21:02,480 --> 00:21:22,039 Bueno, pues antes de instanciar ya los manejadores 408 00:21:22,039 --> 00:21:24,539 Para no volvernos más locos 409 00:21:24,539 --> 00:21:26,299 Y ya manejar estas figuras 410 00:21:26,299 --> 00:21:28,240 Cuadrados, círculos, lo que sea 411 00:21:28,240 --> 00:21:30,500 Completáis esto vosotros 412 00:21:30,500 --> 00:21:34,240 Y ya mañana 413 00:21:34,240 --> 00:21:36,319 Terminamos este ejemplito 414 00:21:36,319 --> 00:21:37,960 Y ya está 415 00:21:37,960 --> 00:22:14,849 Claro 416 00:22:14,849 --> 00:22:19,299 Claro, en función de lo que haya introducido el tipo 417 00:22:19,299 --> 00:22:20,359 Que es una de estas 418 00:22:20,359 --> 00:22:23,059 tres cosas, sí o sí, no puede ser ninguna 419 00:22:23,059 --> 00:22:24,880 de ellas, no puede ser ninguna diferente 420 00:22:24,880 --> 00:22:26,900 instanciar la que toque, es decir 421 00:22:26,900 --> 00:22:28,960 será, en este caso 422 00:22:28,960 --> 00:22:30,500 pedir los tres lados 423 00:22:30,500 --> 00:22:32,319 e instanciar la figuración 424 00:22:32,319 --> 00:22:34,980 el nombre se puede pedir 425 00:22:34,980 --> 00:22:36,180 como el nombre es común a todos 426 00:22:36,180 --> 00:22:37,980 el nombre se puede pedir antes 427 00:22:37,980 --> 00:22:39,140 del switch case 428 00:22:39,140 --> 00:22:43,079 y luego ya, una vez que tenemos la figura 429 00:22:43,079 --> 00:22:44,960 instanciada, se la 430 00:22:44,960 --> 00:22:46,119 metemos al array 431 00:22:46,119 --> 00:22:48,059 a través de este método 432 00:22:48,059 --> 00:23:01,940 Claro, que son los que tú recogerás aquí 433 00:23:01,940 --> 00:23:03,920 Claro 434 00:23:03,920 --> 00:23:05,920 A ver, el parámetro nombre 435 00:23:05,920 --> 00:23:07,000 Como lo tienen todas 436 00:23:07,000 --> 00:23:09,579 Lo podemos pedir antes del switch case 437 00:23:09,579 --> 00:23:12,099 ¿No? Podríamos hacer aquí 438 00:23:12,099 --> 00:23:12,880 Directamente 439 00:23:12,880 --> 00:23:15,660 Hacer una primera instanciación 440 00:23:15,660 --> 00:23:18,880 Bueno, no, porque 441 00:23:18,880 --> 00:23:22,359 la instanciación 442 00:23:22,359 --> 00:23:24,759 hay que hacerla aquí porque es o new cuadrado 443 00:23:24,759 --> 00:23:26,559 o new círculo o new triángulo, claro 444 00:23:26,559 --> 00:23:28,680 lo que podemos es pedir el nombre aquí 445 00:23:28,680 --> 00:23:30,819 vale, para no pedir el nombre en los tres 446 00:23:30,819 --> 00:23:32,420 sitios, porque el nombre 447 00:23:32,420 --> 00:23:33,420 podemos hacer 448 00:23:33,420 --> 00:23:36,700 dime nombre 449 00:23:36,700 --> 00:23:38,759 de figura 450 00:23:38,759 --> 00:23:40,799 porque el nombre se pide para todos 451 00:23:40,799 --> 00:23:41,359 los casos 452 00:23:41,359 --> 00:23:44,700 y dejarlo aquí guardado en un string 453 00:23:44,700 --> 00:23:44,960 ya 454 00:23:44,960 --> 00:23:47,539 string nombre 455 00:23:47,539 --> 00:23:51,019 igual a pues lo que hayan metido 456 00:23:51,019 --> 00:23:56,240 y ahora aquí 457 00:23:56,240 --> 00:23:58,420 pedir lo que toque, en cada caso lo que 458 00:23:58,420 --> 00:24:00,740 falte, que aquí faltarán 459 00:24:00,740 --> 00:24:02,180 tres lados 460 00:24:02,180 --> 00:24:03,500 aquí faltará un radio 461 00:24:03,500 --> 00:24:05,779 y aquí faltará un lado 462 00:24:05,779 --> 00:24:08,420 y ya con eso que hemos añadido 463 00:24:08,420 --> 00:24:10,240 y con este nombre, aquí hacer new 464 00:24:10,240 --> 00:24:12,200 triángulo, aquí hacer new círculo y aquí 465 00:24:12,200 --> 00:24:13,079 hacer new cuadrado 466 00:24:13,079 --> 00:24:16,180 lo que queda feo en esta aplicación es 467 00:24:16,180 --> 00:24:17,740 lo del num lados 468 00:24:17,740 --> 00:24:19,819 es que eso lo voy a pulir directamente 469 00:24:19,819 --> 00:24:23,259 En figura geométrica 470 00:24:23,259 --> 00:24:25,640 Vamos a quitarle esta propiedad 471 00:24:25,640 --> 00:24:26,940 Porque es un poco estúpida 472 00:24:26,940 --> 00:24:32,099 Esta propiedad es absurda 473 00:24:32,099 --> 00:24:38,609 Vale, voy a subir ahora este proyecto 474 00:24:38,609 --> 00:24:40,069 Tal cual está 475 00:24:40,069 --> 00:24:46,640 Y lo indico 476 00:24:46,640 --> 00:24:47,720 Entonces figura geométrica 477 00:24:47,720 --> 00:24:49,140 Los nublados se van fuera 478 00:24:49,140 --> 00:24:51,240 No queremos los nublados 479 00:24:51,240 --> 00:24:54,220 Este nublado es fuera 480 00:24:54,220 --> 00:24:56,119 Y este nublado es fuera 481 00:24:56,119 --> 00:24:58,119 Y en el toString 482 00:24:58,119 --> 00:25:00,259 Los nublados no los queremos 483 00:25:00,259 --> 00:25:15,430 Esto no lo queremos 484 00:25:15,430 --> 00:25:25,160 Vale, he quitado nublados de figura geométrica 485 00:25:25,160 --> 00:25:31,579 Y eso me fuerza a quitarlo de aquí 486 00:25:31,579 --> 00:25:38,539 Y ya está 487 00:25:38,539 --> 00:25:45,240 A quitarlo de aquí 488 00:25:45,240 --> 00:25:54,640 A quitarlo de ahí 489 00:25:54,640 --> 00:26:17,779 Y a quitarlo del toString 490 00:26:17,779 --> 00:26:45,390 Y ya está