1 00:00:00,620 --> 00:00:12,560 Vale, me diríais con toda la razón del mundo, me diríais, jo, claro, ¿para qué me vale a mí esta clase? Sí, muy bonita. De verdad, qué pena que esté mal vista la violencia física, porque a veces me dan ganas. 2 00:00:12,560 --> 00:00:14,660 porque no paráis y paráis y paráis 3 00:00:14,660 --> 00:00:16,239 el tiempo cambiará 4 00:00:16,239 --> 00:00:17,079 ¿vale? ¿eh? 5 00:00:17,760 --> 00:00:19,239 sí, ha cambiado mucho 6 00:00:19,239 --> 00:00:21,300 afortunadamente 7 00:00:21,300 --> 00:00:23,199 ¿eh? 8 00:00:24,100 --> 00:00:25,719 si alguna vez la has ejercido 9 00:00:25,719 --> 00:00:28,399 bueno 10 00:00:28,399 --> 00:00:30,280 vale 11 00:00:30,280 --> 00:00:31,899 entonces me diréis con toda la razón 12 00:00:31,899 --> 00:00:33,659 del mundo 13 00:00:33,659 --> 00:00:35,500 me diréis, hombre pues sí 14 00:00:35,500 --> 00:00:37,659 me he currado estos tres métodos 15 00:00:37,659 --> 00:00:39,219 los he metido aquí en una clase 16 00:00:39,219 --> 00:00:41,880 pero claro, solamente la voy a poder 17 00:00:41,880 --> 00:00:44,159 utilizar dentro de mi proyecto 18 00:00:44,159 --> 00:00:46,020 entonces si yo 19 00:00:46,020 --> 00:00:48,259 quiero reutilizarlas en cualquier otro proyecto 20 00:00:48,259 --> 00:00:49,799 pues me tengo que coger 21 00:00:49,799 --> 00:00:51,679 este paquete y copiarlo ahí 22 00:00:51,679 --> 00:00:52,859 pues sí 23 00:00:52,859 --> 00:00:55,000 eso es lo que ocurre 24 00:00:55,000 --> 00:00:57,299 si yo quiero utilizar 25 00:00:57,299 --> 00:00:59,840 esta clase con estos, bueno esta de aquí 26 00:00:59,840 --> 00:01:00,380 teclado 27 00:01:00,380 --> 00:01:03,439 esto quiero utilizarlo pues 28 00:01:03,439 --> 00:01:05,879 el paquete con la clase se tiene que ir 29 00:01:05,879 --> 00:01:06,900 al proyecto que sea 30 00:01:06,900 --> 00:01:09,920 que es un rollo, que es hacer un copia 31 00:01:09,920 --> 00:01:11,840 y pega en el proyecto 32 00:01:11,840 --> 00:01:13,819 donde queramos utilizar estas clases 33 00:01:13,819 --> 00:01:15,959 claro, el proyecto 34 00:01:15,959 --> 00:01:17,739 tiene que tener la clase para poder usarla 35 00:01:17,739 --> 00:01:18,379 es que no hay otra 36 00:01:18,379 --> 00:01:21,900 este proyecto la tiene 37 00:01:21,900 --> 00:01:22,799 la tiene aquí 38 00:01:22,799 --> 00:01:25,719 pero si queremos usar esta clase con sus 39 00:01:25,719 --> 00:01:27,900 métodos leer entero en otro proyecto 40 00:01:27,900 --> 00:01:29,719 vamos a tener que llevar 41 00:01:29,719 --> 00:01:32,000 esta clase con su paquete al otro proyecto 42 00:01:32,000 --> 00:01:33,879 copia y pega, que es un rollo 43 00:01:33,879 --> 00:01:34,980 ¿vale? 44 00:01:36,079 --> 00:01:37,560 normalmente no operamos así 45 00:01:37,560 --> 00:01:39,939 normalmente lo que hacemos es 46 00:01:39,939 --> 00:01:42,640 voy a empaquetar esto 47 00:01:42,640 --> 00:01:44,420 en el método de empaquetado 48 00:01:44,420 --> 00:01:46,459 que tienen las clases de Java, que es el JAR 49 00:01:46,459 --> 00:01:48,939 y lo agrego 50 00:01:48,939 --> 00:01:50,359 a los proyectos que yo quiera 51 00:01:50,359 --> 00:01:52,159 pero bueno, eso es lo que no vamos a hacer ahora 52 00:01:52,159 --> 00:01:54,420 porque es un poquito 53 00:01:54,420 --> 00:01:57,969 largo, ¿vale? 54 00:01:59,030 --> 00:02:00,069 y os voy a dejar 55 00:02:00,069 --> 00:02:03,019 en paz ya, bueno 56 00:02:03,019 --> 00:02:07,099 ahora ya pues 57 00:02:07,099 --> 00:02:09,139 tenéis fuerzas, ganas 58 00:02:09,139 --> 00:02:11,460 y todo eso para hacer todos los ejercicios 59 00:02:11,460 --> 00:02:13,539 que queden. Esta Navidad 60 00:02:13,539 --> 00:02:17,719 esto debe de NUM de aquí. 61 00:02:20,379 --> 00:02:21,219 Atributos primero 62 00:02:21,219 --> 00:02:21,740 y segundo. 63 00:02:22,379 --> 00:02:25,520 Vale. Pues entonces 64 00:02:25,520 --> 00:02:27,259 esto, ahí 65 00:02:27,259 --> 00:02:29,180 hemos puesto, busca información sobre NUM. 66 00:02:29,639 --> 00:02:31,000 En los tiempos en los cuales buscar 67 00:02:31,000 --> 00:02:33,159 información tenía algún sentido. Ahora, pues 68 00:02:33,159 --> 00:02:35,099 bueno, se lo dices a HGPT y te da 69 00:02:35,099 --> 00:02:36,620 una cosa maravillosa, que está muy bien. 70 00:02:36,620 --> 00:02:40,479 Ahora ya ha perdido más sentido, porque 71 00:02:40,479 --> 00:02:42,180 para que te lo diga HGPT, pues lo decimos 72 00:02:42,180 --> 00:02:44,680 nosotros. Pero bueno, ahí se había 73 00:02:44,680 --> 00:02:46,520 quedado, como tarea investigadora, entre 74 00:02:46,520 --> 00:02:48,439 comillas. Esto del enum 75 00:02:48,439 --> 00:02:50,479 en cuanto a conceptos, digo el 76 00:02:50,479 --> 00:02:52,639 concepto, luego en cuanto veáis lo que 77 00:02:52,639 --> 00:02:54,539 es, pues es una cosa muy sencilla de usar. 78 00:02:55,419 --> 00:02:56,500 El concepto es 79 00:02:56,500 --> 00:02:58,620 nosotros los tipos de datos que 80 00:02:58,620 --> 00:03:00,460 tenemos es que están contados, ya los 81 00:03:00,460 --> 00:03:02,599 conocemos. Primitivos son 82 00:03:02,599 --> 00:03:04,879 ocho y luego ya los que construyamos 83 00:03:04,879 --> 00:03:06,659 nosotros. Primitivos 84 00:03:06,659 --> 00:03:07,620 son, pues ya lo sabemos, 85 00:03:08,300 --> 00:03:10,719 el short, el byte, short 86 00:03:10,719 --> 00:03:12,740 int log, double 87 00:03:12,740 --> 00:03:14,620 float, char y boolean. 88 00:03:15,240 --> 00:03:16,740 Y no hay más tipos que esos. 89 00:03:16,900 --> 00:03:17,900 No hay más, no existe más. 90 00:03:18,699 --> 00:03:20,919 Todo lo demás está construido sobre eso. 91 00:03:21,560 --> 00:03:22,599 Como la clase stream, 92 00:03:22,900 --> 00:03:23,860 que son un montón de char, 93 00:03:24,379 --> 00:03:26,319 y las clases que hagamos nosotros. 94 00:03:26,780 --> 00:03:28,479 Como la clase alumno, que es un int, 95 00:03:28,560 --> 00:03:30,000 un string, lo que sea. 96 00:03:30,479 --> 00:03:32,199 Pero solamente hay esos ocho y ya está. 97 00:03:33,000 --> 00:03:34,979 Luego, por ejemplo, que yo quiero hacer 98 00:03:34,979 --> 00:03:36,979 una aplicación con una 99 00:03:36,979 --> 00:03:38,560 propiedad nombre 100 00:03:38,560 --> 00:03:40,759 y esa propiedad, pues 101 00:03:40,759 --> 00:03:43,039 de esos tipos que he visto, el que me 102 00:03:43,039 --> 00:03:44,979 casa es string, me casa es string 103 00:03:44,979 --> 00:03:46,560 pero claro, el tipo string 104 00:03:46,560 --> 00:03:48,960 incorpora cualquier 105 00:03:48,960 --> 00:03:50,979 cadena, cualquiera, cualquier 106 00:03:50,979 --> 00:03:53,319 sucesión de caracteres asti, no puedo limitarla 107 00:03:53,319 --> 00:03:54,939 si algo lo declaro como 108 00:03:54,939 --> 00:03:56,960 string, cualquier cadena 109 00:03:56,960 --> 00:03:58,960 vale y cae ahí, es un problema 110 00:03:58,960 --> 00:04:00,939 si lo es para 111 00:04:00,939 --> 00:04:03,000 mi aplicación, tendríamos 112 00:04:03,000 --> 00:04:04,860 que hacer un método para validar 113 00:04:04,860 --> 00:04:06,000 si realmente es una 114 00:04:06,000 --> 00:04:08,199 es una de las opciones válidas 115 00:04:08,199 --> 00:04:09,900 habría que hacer algún método para validar 116 00:04:09,900 --> 00:04:11,199 cuando debemos valorar ese nombre 117 00:04:11,199 --> 00:04:12,900 que es uno de los posibles 118 00:04:12,900 --> 00:04:15,659 bueno, pues Java nos da la opción 119 00:04:15,659 --> 00:04:18,040 de crear una cosa que se llaman 120 00:04:18,040 --> 00:04:20,500 tipos enumerados 121 00:04:20,500 --> 00:04:22,040 y es 122 00:04:22,040 --> 00:04:23,120 sobre un 123 00:04:23,120 --> 00:04:25,079 y es un tipo 124 00:04:25,079 --> 00:04:26,360 que yo creo 125 00:04:26,360 --> 00:04:29,699 que solamente puede tener un conjunto de valores 126 00:04:29,699 --> 00:04:31,279 finito y concreto 127 00:04:31,279 --> 00:04:32,060 que yo decido 128 00:04:32,060 --> 00:04:34,639 que eso no existe en los tipos primitivos 129 00:04:34,639 --> 00:04:37,800 int, bueno infinitos no 130 00:04:37,800 --> 00:04:40,319 porque los que quepan en 2 elevado a 32 131 00:04:40,319 --> 00:04:42,060 pero int puede ser cualquiera 132 00:04:42,060 --> 00:04:44,680 string puede ser cualquier combinación de cadenas 133 00:04:44,680 --> 00:04:47,459 no hay una cantidad finita de posibilidades 134 00:04:47,459 --> 00:04:50,500 bueno la hay la que marca los bits de la memoria pero nada más 135 00:04:50,500 --> 00:04:54,000 en este caso si yo solamente quiero 136 00:04:54,000 --> 00:04:57,480 que mi propiedad nombre tenga como valores 137 00:04:57,480 --> 00:05:00,279 la cadena primero o la cadena segundo 138 00:05:00,279 --> 00:05:02,480 quiero que solamente tenga esos dos 139 00:05:02,480 --> 00:05:16,139 Pues me puedo crear un tipo especial, que se llama un tipo enumerado, que en el momento de configurarlo, el tipo enumerado le digo, oye, tus únicas dos posibilidades son primero y segundo. 140 00:05:16,819 --> 00:05:29,339 Imaginaos que a ese tipo le llamáis tipo asignatura. Ese tipo se crea como un enumerado y le decís dentro las dos posibilidades, primero y segundo. 141 00:05:29,339 --> 00:05:33,060 Muy bien, el tipo ya está creado, ya está ahí creado, es un enumerado. 142 00:05:38,100 --> 00:05:47,420 A ver, depende, a ver, es un tipo de dato objeto, en el sentido de que luego tiene otras propiedades añadidas, 143 00:05:47,560 --> 00:05:53,100 aparte de los propios valores, es como un tipo de dato, en realidad en el fondo es un tipo de dato objeto, 144 00:05:53,579 --> 00:05:57,240 pero los valores que luego tú le puedes dar, por ejemplo, un tipo enumerado, 145 00:05:57,500 --> 00:06:03,120 tú puedes crear un tipo enumerado que las únicas posibilidades sean el 0, el 1 y el 2. 146 00:06:03,399 --> 00:06:13,899 Entonces la variable en realidad es un entero, lo que pasa es que es un entero que solamente puede contener el 0, el 1 y el 2. 147 00:06:16,060 --> 00:06:26,279 Entonces tú configuras ese tipo enumerado, configurarlo significa decir la cantidad finita de posibilidades que contemplas. 148 00:06:26,279 --> 00:06:28,360 contemplo estas, y las tienes que decir 149 00:06:28,360 --> 00:06:30,480 contemplo estas, con lo cual 150 00:06:30,480 --> 00:06:31,660 se hace un tipo numerado 151 00:06:31,660 --> 00:06:34,740 cuando las posibilidades finitas son 10, como mucho 152 00:06:34,740 --> 00:06:36,300 entonces dices 153 00:06:36,300 --> 00:06:37,720 oye, oscila entre estos 10 154 00:06:37,720 --> 00:06:40,399 si son más de 10, ya no te haces un tipo numerado 155 00:06:40,399 --> 00:06:42,759 por ejemplo, tienes que escribir ahí un montón de cosas 156 00:06:42,759 --> 00:06:44,600 y ahora ya declaras 157 00:06:44,600 --> 00:06:45,860 variables de ese tipo 158 00:06:45,860 --> 00:06:48,879 y esas variables, solamente el compilador 159 00:06:48,879 --> 00:06:50,399 solo va a aceptar que le des 160 00:06:50,399 --> 00:06:52,459 una de esas posibilidades, solo va a aceptar que le des 161 00:06:52,459 --> 00:06:54,639 ¿vale? entonces es una forma 162 00:06:54,639 --> 00:06:55,839 de 163 00:06:55,839 --> 00:06:58,639 asegurarnos de que por error 164 00:06:58,639 --> 00:07:00,980 no vamos a meter valores que no sean 165 00:07:00,980 --> 00:07:01,439 esos 166 00:07:01,439 --> 00:07:04,680 claro, repito, eso encaja 167 00:07:04,680 --> 00:07:06,939 tiene utilidad cuando el conjunto 168 00:07:06,939 --> 00:07:09,139 finito de posibilidades es pequeño 169 00:07:09,139 --> 00:07:10,959 si es más 170 00:07:10,959 --> 00:07:13,000 grande, pues lo que haces ya 171 00:07:13,000 --> 00:07:14,620 es una validación por código 172 00:07:14,620 --> 00:07:16,180 ¿vale? por ejemplo 173 00:07:16,180 --> 00:07:18,740 solamente son nombres válidos los que 174 00:07:18,740 --> 00:07:20,980 empiecen por A, tienes tropecientos 175 00:07:20,980 --> 00:07:22,019 nombres que empiecen por A 176 00:07:22,019 --> 00:07:24,420 no te harías uno en uno 177 00:07:24,420 --> 00:07:26,660 con todos los nombres que empiecen por A 178 00:07:26,660 --> 00:07:27,879 porque es un enum muy grande 179 00:07:27,879 --> 00:07:30,839 entonces no te harías un enum, lo meterías en un 180 00:07:30,839 --> 00:07:32,980 tipo string y luego te harías 181 00:07:32,980 --> 00:07:34,360 en el momento de entrar el dato 182 00:07:34,360 --> 00:07:35,839 te harías una función que valida 183 00:07:35,839 --> 00:07:38,839 si empieza por A te dejo y si no te lo vuelvo 184 00:07:38,839 --> 00:07:39,180 a pedir 185 00:07:39,180 --> 00:07:42,620 es decir, enum lo haces cuando tienes 186 00:07:42,620 --> 00:07:44,680 un conjunto finito de posibilidades manejables 187 00:07:44,680 --> 00:07:46,740 ¿vale? pues aquí 188 00:07:46,740 --> 00:07:48,439 como solamente admitimos dos 189 00:07:48,439 --> 00:07:50,500 se hace el enum 190 00:07:50,500 --> 00:07:52,839 le dices tú enum, los que sean 191 00:07:52,839 --> 00:07:54,519 de tu tipo solamente pueden tener 192 00:07:54,519 --> 00:07:55,639 primero o segundo 193 00:07:55,639 --> 00:07:58,339 y ya está, y declaras la propiedad nombre 194 00:07:58,339 --> 00:07:59,560 como ese tipo en un 195 00:07:59,560 --> 00:08:00,480 ¿vale? 196 00:08:02,240 --> 00:08:04,259 venga, y aquí ya me callo 197 00:08:04,259 --> 00:08:08,439 si queréis