1 00:00:00,880 --> 00:00:06,219 Pues tenemos estos tres métodos magníficos que nos podrían ya facilitar la vida. 2 00:00:07,059 --> 00:00:14,019 Por ejemplo, ahora yo voy a hacerme aquí otro paquete distinto. 3 00:00:26,019 --> 00:00:30,100 Vale, pues por ejemplo, ahora yo me voy a hacer otro ejercicio cualquiera. 4 00:00:30,780 --> 00:00:36,299 Por ejemplo, que no lo vamos a hacer, porque vamos a arrancar y vamos a imaginar que arrancamos cualquier ejercicio. 5 00:00:36,299 --> 00:00:43,179 Por ejemplo, vamos a suponer que vamos a arrancar 6 00:00:43,179 --> 00:00:45,420 Que igual luego lo hacemos a la vuelta 7 00:00:45,420 --> 00:00:55,299 Por ejemplo, ¿qué ejercicio de aquí os gustaría que hiciéramos a la vuelta 8 00:00:55,299 --> 00:00:58,380 Para calentar un poco motores antes de ponernos 9 00:00:58,380 --> 00:01:00,320 De vacaciones 10 00:01:00,320 --> 00:01:05,640 Para arrancarlo, para verlo del teclado 11 00:01:05,640 --> 00:01:07,540 por ejemplo, yo que sé, ¿cuál os gustaría 12 00:01:07,540 --> 00:01:09,900 que, imaginaos 13 00:01:09,900 --> 00:01:12,519 ¿eh? 14 00:01:15,579 --> 00:01:16,959 vale, pues imaginaos 15 00:01:16,959 --> 00:01:18,019 que vamos a arrancar 16 00:01:18,019 --> 00:01:20,620 el ejercicio 17 00:01:20,620 --> 00:01:22,700 16 18 00:01:22,700 --> 00:01:24,340 por ejemplo, ¿vale? 19 00:01:24,799 --> 00:01:26,640 que tiene, si no tiene un main o no, vale 20 00:01:26,640 --> 00:01:28,620 que una clase alumno 21 00:01:28,620 --> 00:01:30,840 asignatura tiene dos métodos 22 00:01:30,840 --> 00:01:32,319 que una clase asignatura 23 00:01:32,319 --> 00:01:34,819 partitura ya la hemos hecho 24 00:01:34,819 --> 00:01:35,480 vale 25 00:01:35,480 --> 00:01:45,519 Bueno, es que como habría que hacer muchas clases... 26 00:01:45,519 --> 00:01:49,540 Venga, vamos a hacer una clase main cualquiera para usar eso y ya está. 27 00:01:50,120 --> 00:01:51,540 No asociada a ningún ejercicio. 28 00:01:52,459 --> 00:01:58,519 Venga, pues por ejemplo, voy a llamar a este paquete ejemplo teclado. 29 00:01:59,219 --> 00:02:03,799 Vale, entonces vamos a hacer una clase. 30 00:02:08,360 --> 00:02:09,860 Ejemplo teclado. 31 00:02:09,860 --> 00:02:19,300 Vale, pues por ejemplo, en esta clase yo voy a necesitar leer un número entero. 32 00:02:19,939 --> 00:02:23,659 En condiciones normales haríamos el escáner, bla, bla, bla, etc. 33 00:02:24,199 --> 00:02:25,400 Pero ahora, ¿qué ocurre? 34 00:02:25,620 --> 00:02:29,199 Que tenemos nuestra clase que se llama así. 35 00:02:30,500 --> 00:02:35,539 Este es su nombre largo, porque está en el paquete teclado, es su nombre largo. 36 00:02:36,900 --> 00:02:40,919 Si quiero usar el nombre corto, le pongo el import y ya está. 37 00:02:41,580 --> 00:02:42,659 Eso ya va en gustos. 38 00:02:43,520 --> 00:02:46,659 O le pongo el import aquí. 39 00:02:47,379 --> 00:02:48,120 Uy, perdón. 40 00:02:48,120 --> 00:02:55,620 o le pongo el 41 00:02:55,620 --> 00:03:00,840 no me lo deja 42 00:03:00,840 --> 00:03:02,080 ah, es que se llama 43 00:03:02,080 --> 00:03:04,879 teclado, la clase, teclado con mayúsculas 44 00:03:04,879 --> 00:03:07,000 no me hace el input automáticamente 45 00:03:07,000 --> 00:03:08,259 pero bueno, dime 46 00:03:08,259 --> 00:03:09,439 cuando haces input 47 00:03:09,439 --> 00:03:12,759 todas las clases, todos los objetos 48 00:03:12,759 --> 00:03:14,099 privados que tienes 49 00:03:14,099 --> 00:03:15,680 de donde importa 50 00:03:15,680 --> 00:03:18,039 se pueden hacer 51 00:03:18,039 --> 00:03:19,180 desde el mismo 52 00:03:19,180 --> 00:03:21,919 todo lo que sea private 53 00:03:21,919 --> 00:03:24,340 por mucho que hagas import, solamente vas a poder 54 00:03:24,340 --> 00:03:25,340 hacer algo que sea public 55 00:03:25,340 --> 00:03:28,379 import, lo único que te ahorra es 56 00:03:28,379 --> 00:03:30,020 usar el nombre corto 57 00:03:30,020 --> 00:03:31,080 si yo hago aquí 58 00:03:31,080 --> 00:03:32,740 import 59 00:03:32,740 --> 00:03:40,270 el problema es que claro, cuando arrastra 60 00:03:40,270 --> 00:03:41,270 un error de compilación 61 00:03:41,270 --> 00:03:43,789 ya el plugin 62 00:03:43,789 --> 00:03:46,509 no te funciona bien porque ya está arrastrado el error 63 00:03:46,509 --> 00:03:47,449 pero vamos 64 00:03:47,449 --> 00:03:50,330 entonces si lo quitas instanciando lo que sea 65 00:03:50,330 --> 00:03:53,689 venga, pues ahí 66 00:03:53,689 --> 00:03:56,370 vale, entonces yo lo puedo importar así directamente 67 00:03:56,370 --> 00:03:57,310 y 68 00:03:57,310 --> 00:03:59,490 vale 69 00:03:59,490 --> 00:04:02,330 entonces, que yo quiero leer un número 70 00:04:02,330 --> 00:04:04,469 decimal, pues ya está 71 00:04:04,469 --> 00:04:18,259 ya está, llamo 72 00:04:18,259 --> 00:04:19,540 a mi método estático 73 00:04:19,540 --> 00:04:22,899 de la clase 74 00:04:22,899 --> 00:04:25,939 y ya está, este es mi método 75 00:04:25,939 --> 00:04:27,680 estático que tiene ya escondida 76 00:04:27,680 --> 00:04:29,899 toda la complejidad que sea, me lee 77 00:04:29,899 --> 00:04:32,139 un número decimal, me lo devuelve y yo lo guardo 78 00:04:32,139 --> 00:04:34,100 aquí, un método estático 79 00:04:34,100 --> 00:04:35,019 de la clase teclado 80 00:04:35,019 --> 00:04:37,620 Aquí no tengo que declarar escáner 81 00:04:37,620 --> 00:04:38,620 Ni que tengo que hacer nada 82 00:04:38,620 --> 00:04:40,079 Lo tengo todo ahí metido 83 00:04:40,079 --> 00:04:42,060 ¿Que quiero meter un entero ahora? 84 00:04:48,769 --> 00:04:50,670 Pues venga, leo yo aquí un entero 85 00:04:50,670 --> 00:04:57,120 Y ahí lo tengo 86 00:04:57,120 --> 00:04:58,579 Son métodos estáticos 87 00:04:58,579 --> 00:05:00,839 No tengo que instanciar el objeto teclado 88 00:05:00,839 --> 00:05:01,660 Y no tengo que hacer nada 89 00:05:01,660 --> 00:05:03,220 ¿Vale? 90 00:05:03,720 --> 00:05:11,949 Y no tengo el problema del buffer ni de nada 91 00:05:11,949 --> 00:05:14,170 Porque esa sentencia que hemos puesto no lo tiene 92 00:05:14,170 --> 00:05:34,980 ¿Vale? 93 00:05:35,939 --> 00:05:38,160 Entonces voy a mostrar aquí lo que hemos leído 94 00:05:38,160 --> 00:05:40,000 Num1 95 00:05:40,000 --> 00:05:46,389 num2 96 00:05:46,389 --> 00:05:48,790 cadena 97 00:05:48,790 --> 00:05:51,110 ¿vale? 98 00:05:52,110 --> 00:05:54,170 me he hecho una pequeña 99 00:05:54,170 --> 00:05:55,829 clase de librería 100 00:05:55,829 --> 00:05:58,029 es como si fuera una librería de métodos 101 00:05:58,029 --> 00:06:00,250 y aquí tengo yo 102 00:06:00,250 --> 00:06:02,170 unos métodos de librería guardaditos 103 00:06:02,170 --> 00:06:04,089 con estas utilidades 104 00:06:04,089 --> 00:06:05,290 pues ya está 105 00:06:05,290 --> 00:06:09,470 entonces los métodos static 106 00:06:09,470 --> 00:06:12,110 nos son muy útiles 107 00:06:12,110 --> 00:06:14,610 para hacer funciones de librería 108 00:06:14,610 --> 00:06:15,910 meto ahí utilidades 109 00:06:15,910 --> 00:06:18,209 que hacen lo que tenga que hacer 110 00:06:18,209 --> 00:06:20,110 no está asociado a ningún objeto 111 00:06:20,110 --> 00:06:21,050 que los llama 112 00:06:21,050 --> 00:06:23,670 no, son utilidades de mi aplicación 113 00:06:23,670 --> 00:06:25,009 como por ejemplo estas 114 00:06:25,009 --> 00:06:28,629 vale, entonces ejecutamos esto 115 00:06:28,629 --> 00:06:30,509 y lógicamente 116 00:06:30,509 --> 00:06:31,490 no funcionará, claro 117 00:06:31,490 --> 00:06:39,189 introduce decimal 118 00:06:39,189 --> 00:06:41,589 vale, introduce entero 119 00:06:41,589 --> 00:06:44,209 introduce cadena 120 00:06:44,209 --> 00:06:45,689 vale 121 00:06:45,689 --> 00:06:48,009 ahí está todo lo bien introducido 122 00:06:48,009 --> 00:06:51,730 bueno, pues un ejemplito 123 00:06:51,730 --> 00:06:54,750 entonces cuando un método 124 00:06:54,750 --> 00:06:55,730 empieza a quedar muy largo 125 00:06:55,730 --> 00:06:56,870 se puede sacar todo 126 00:06:56,870 --> 00:06:59,610 fuera, a métodos auxiliares 127 00:06:59,610 --> 00:07:00,829 y ya está 128 00:07:00,829 --> 00:07:05,319 luego conceptualmente 129 00:07:05,319 --> 00:07:07,459 tenemos dos tipos de métodos 130 00:07:07,459 --> 00:07:08,120 entre comillas 131 00:07:08,120 --> 00:07:11,300 los métodos que son cosas que hacen los objetos 132 00:07:11,300 --> 00:07:13,300 que cuando yo describo mi realidad 133 00:07:13,300 --> 00:07:15,779 digo, oye, este objeto va a necesitar hacer esto 134 00:07:15,779 --> 00:07:18,360 pues esos métodos van en la clase 135 00:07:18,360 --> 00:07:19,379 y no son estáticos 136 00:07:19,379 --> 00:07:20,500 porque los hace un objeto 137 00:07:20,500 --> 00:07:23,759 y luego conceptualmente 138 00:07:23,759 --> 00:07:25,000 tengo otra cosa que serían 139 00:07:25,000 --> 00:07:26,699 métodos auxiliares de librería 140 00:07:26,699 --> 00:07:28,600 que hacen trocitos de código 141 00:07:28,600 --> 00:07:30,899 que me vienen bien hacerlos en cualquier sitio 142 00:07:30,899 --> 00:07:35,339 son conceptualmente dos ideas distintas 143 00:07:35,339 --> 00:07:37,100 métodos de clase 144 00:07:37,100 --> 00:07:40,449 que nos llama un objeto 145 00:07:40,449 --> 00:07:42,350 cuando tiene que hacer esas cosas 146 00:07:42,350 --> 00:07:43,850 y ese método hace lo que sea 147 00:07:43,850 --> 00:07:45,250 para un objeto en particular 148 00:07:45,250 --> 00:07:47,790 o métodos auxiliares de librería 149 00:07:47,790 --> 00:07:48,850 para hacer cosas 150 00:07:48,850 --> 00:07:51,649 que no están asociadas a ningún objeto 151 00:07:51,649 --> 00:07:54,069 y que los llamo yo cuando me interesen 152 00:07:54,069 --> 00:07:55,329 desde mil sitios distintos 153 00:07:55,329 --> 00:07:56,649 como este 154 00:07:56,649 --> 00:07:57,230 ¿vale? 155 00:08:01,370 --> 00:08:07,600 sí, porque 156 00:08:07,600 --> 00:08:09,560 porque 157 00:08:09,560 --> 00:08:11,439 este otro objeto 158 00:08:11,439 --> 00:08:14,459 está funcionando de otra manera 159 00:08:14,459 --> 00:08:16,160 este de aquí 160 00:08:16,160 --> 00:08:18,699 el leer decimal 161 00:08:18,699 --> 00:08:19,620 que está aquí 162 00:08:19,620 --> 00:08:21,800 que lo tenemos aquí 163 00:08:21,800 --> 00:08:23,439 te lo lee en la cadena 164 00:08:23,439 --> 00:08:26,100 Y ahora, llamamos al integer parsedable 165 00:08:26,100 --> 00:08:27,620 Entonces el integer parsedable 166 00:08:27,620 --> 00:08:29,699 Necesita que se compre 167 00:08:29,699 --> 00:08:31,600 ¿Vale? Sin embargo 168 00:08:31,600 --> 00:08:33,299 El escáner es que lo que hace 169 00:08:33,299 --> 00:08:34,779 Ya te hace esto dentro 170 00:08:34,779 --> 00:08:36,799 Te transforma la coma al punto 171 00:08:36,799 --> 00:08:47,649 ¿Vale? Bueno 172 00:08:47,649 --> 00:08:53,049 A ver, no sé si 173 00:08:53,049 --> 00:08:55,029 Dejaros tranquilos porque no me estáis 174 00:08:55,029 --> 00:08:55,750 Haciendo ni caso 175 00:08:55,750 --> 00:08:58,289 Y es bastante frustrante 176 00:08:58,289 --> 00:09:01,070 Que me hagan caso dos personas 177 00:09:01,070 --> 00:09:02,129 O tres como mucho 178 00:09:02,129 --> 00:09:09,279 Se te ha quedado muy claro 179 00:09:09,279 --> 00:09:11,080 Entonces tú apoyas la emoción de 180 00:09:11,080 --> 00:09:12,879 ¿De qué? 181 00:09:14,320 --> 00:09:15,340 Que como te ha quedado muy claro 182 00:09:15,340 --> 00:09:16,539 Has dicho que te ha quedado muy claro 183 00:09:16,539 --> 00:09:17,919 ¿Luego? 184 00:09:18,740 --> 00:09:19,720 ¿Eso qué significa? 185 00:09:20,940 --> 00:09:22,580 Que te parecería bien irte, ¿no? 186 00:09:22,700 --> 00:09:23,440 Porque te ha quedado 187 00:09:23,440 --> 00:09:26,220 Ah, vale, que me escuchas, estás diciendo 188 00:09:26,220 --> 00:09:27,240 Vale, bueno 189 00:09:27,240 --> 00:09:30,480 Bueno, pues entonces sois cuatro o cinco 190 00:09:30,480 --> 00:09:32,840 Una pregunta, porque estoy probando 191 00:09:32,840 --> 00:09:36,440 porque cuando me da error 192 00:09:36,440 --> 00:09:37,860 cuando hago algo malo 193 00:09:37,860 --> 00:09:39,620 sigue en ejecución 194 00:09:39,620 --> 00:09:42,009 en vez de tratarlo 195 00:09:42,009 --> 00:09:45,570 depende de la situación en la que estés 196 00:09:45,570 --> 00:09:46,009 a ver