1 00:00:00,180 --> 00:00:19,359 Venga, vamos a seguir avanzando sobre lo que ya conocemos. 2 00:00:19,359 --> 00:00:29,460 Lo que hemos visto hasta ahora es la programación estructurada, que es construir programas que son una secuencia de sentencias una tras otra, 3 00:00:30,179 --> 00:00:40,520 Donde esas sentencias involucran declaración y asignación de datos a variables, bien sea desde el teclado o bien sea directamente a Capone o bien sea porque va a la otra expresión. 4 00:00:41,219 --> 00:00:49,280 Y luego, sentencias de decisión, como los I, los switch case, y sentencias de iteración, como los for, los while. 5 00:00:49,280 --> 00:00:51,719 bueno, pues un programa 6 00:00:51,719 --> 00:00:53,679 que es una secuencia una tras otra 7 00:00:53,679 --> 00:00:54,899 de sentencias de ese tipo 8 00:00:54,899 --> 00:00:57,840 que elaboran 9 00:00:57,840 --> 00:00:59,719 construyen un algoritmo 10 00:00:59,719 --> 00:01:01,979 para realizar algo, es un programa 11 00:01:01,979 --> 00:01:03,600 estructurado, ¿vale? y esa es la programación 12 00:01:03,600 --> 00:01:05,000 estructurada, ya está, no hay más 13 00:01:05,000 --> 00:01:07,180 entonces la programación estructurada 14 00:01:07,180 --> 00:01:09,859 es la base 15 00:01:09,859 --> 00:01:11,879 de cualquier aplicación 16 00:01:11,879 --> 00:01:13,780 de cualquier aplicación, como la que 17 00:01:13,780 --> 00:01:15,840 os enseñó este chico ayer, pues que tienen 18 00:01:15,840 --> 00:01:17,719 programación estructurada, ya está, no hay más 19 00:01:17,719 --> 00:01:18,859 ¿vale? 20 00:01:19,280 --> 00:01:36,040 Lo que pasa es que efectivamente las aplicaciones son enormes, son muy largas, cada una gestiona un montón de cosas, entonces no podemos construir aplicaciones basadas en una secuencia de sentencias una tras otra. Es imposible, es implanteable. 21 00:01:36,040 --> 00:01:37,560 los programas que nos quedarían 22 00:01:37,560 --> 00:01:39,340 no podríamos ni depurarlos 23 00:01:39,340 --> 00:01:40,340 porque cualquier error 24 00:01:40,340 --> 00:01:41,159 donde encuentre un error 25 00:01:41,159 --> 00:01:42,180 dentro de cien mil líneas 26 00:01:42,180 --> 00:01:43,359 es como imposible 27 00:01:43,359 --> 00:01:45,680 bueno, pues entonces 28 00:01:45,680 --> 00:01:47,500 aquí entra por tanto 29 00:01:47,500 --> 00:01:48,739 es que no quiero borrar esto todavía 30 00:01:48,739 --> 00:01:49,319 porque me ha gustado 31 00:01:49,319 --> 00:01:50,719 aquí entra por tanto 32 00:01:50,719 --> 00:01:53,680 la programación orientada a objetos 33 00:01:53,680 --> 00:01:54,239 ¿vale? 34 00:01:54,299 --> 00:01:56,099 que no es otra cosa 35 00:01:56,099 --> 00:01:57,079 no es otra cosa 36 00:01:57,079 --> 00:01:58,700 diferente a la programación estructurada 37 00:01:58,700 --> 00:02:02,599 es una forma de diseñar 38 00:02:02,599 --> 00:02:04,040 nuestras aplicaciones 39 00:02:04,040 --> 00:02:05,280 una forma de diseñarla 40 00:02:05,280 --> 00:02:07,780 que facilita reutilizar 41 00:02:07,780 --> 00:02:10,000 código, ampliar código 42 00:02:10,000 --> 00:02:11,400 depurar código 43 00:02:11,400 --> 00:02:13,580 facilita todo eso, sobre todo la 44 00:02:13,580 --> 00:02:14,479 reutilización 45 00:02:14,479 --> 00:02:17,580 ¿vale? claro, como si fuera una 46 00:02:17,580 --> 00:02:18,860 programación modular de toda la vida 47 00:02:18,860 --> 00:02:21,180 claro, como las funciones, pero es algo 48 00:02:21,180 --> 00:02:23,599 orientado ya a aplicaciones más grandes 49 00:02:23,599 --> 00:02:25,060 claro, vale 50 00:02:25,060 --> 00:02:27,520 pero luego, esa aplicación 51 00:02:27,520 --> 00:02:29,580 lo que tienen sus pequeños ladrillitos 52 00:02:29,580 --> 00:02:31,620 es programación estructurada, ya está, no tiene más 53 00:02:31,620 --> 00:02:33,099 que eso, lo que hemos hecho nosotros 54 00:02:33,099 --> 00:02:34,639 que haremos una y otra vez 55 00:02:34,639 --> 00:02:36,639 por eso en nuestras aplicaciones 56 00:02:36,639 --> 00:02:38,539 a partir de ahora y todo el rato 57 00:02:38,539 --> 00:02:41,080 vamos a estar utilizando 58 00:02:41,080 --> 00:02:42,919 y reutilizando todo lo que hemos visto 59 00:02:42,919 --> 00:02:44,860 entonces todo lo que hemos visto lo vais a seguir 60 00:02:44,860 --> 00:02:46,319 practicando, no hay ningún problema 61 00:02:46,319 --> 00:02:48,560 pero ahora ya con aplicaciones 62 00:02:48,560 --> 00:02:49,400 con otras estructuras 63 00:02:49,400 --> 00:02:50,879 ¿vale? 64 00:02:51,919 --> 00:02:53,139 Jesús te estás durmiendo 65 00:02:53,139 --> 00:02:56,840 bueno, entonces, vale, pues vamos a ver 66 00:02:56,840 --> 00:02:58,439 más o menos cuáles son las bases 67 00:02:58,439 --> 00:03:00,520 de la planeación orientada a objetos, de dónde sale esto 68 00:03:00,520 --> 00:03:02,340 pues la idea sale 69 00:03:02,340 --> 00:03:06,120 para que nos pongamos en contexto 70 00:03:06,120 --> 00:03:08,180 una aplicación normalmente gestiona 71 00:03:08,180 --> 00:03:09,620 cosas de la vida 72 00:03:09,620 --> 00:03:11,939 para eso la utilizamos 73 00:03:11,939 --> 00:03:14,419 pues como esto por ejemplo 74 00:03:14,419 --> 00:03:16,020 aquí hay un problema 75 00:03:16,020 --> 00:03:18,680 le damos una aplicación que gestione 76 00:03:18,680 --> 00:03:20,500 los profesores 77 00:03:20,500 --> 00:03:22,099 que hay en un departamento 78 00:03:22,099 --> 00:03:24,159 los departamentos están 79 00:03:24,159 --> 00:03:26,080 en las facultades 80 00:03:26,080 --> 00:03:28,560 a su vez las facultades tienen cátedras 81 00:03:28,560 --> 00:03:30,240 y esas cátedras 82 00:03:30,240 --> 00:03:32,599 las tienen propiedad profesores 83 00:03:32,599 --> 00:03:34,280 bueno, pues tenemos un problema 84 00:03:34,280 --> 00:03:35,680 ahí, este mismo 85 00:03:35,680 --> 00:03:38,199 que gestionar, entonces nos han pedido 86 00:03:38,199 --> 00:03:40,060 una aplicación que 87 00:03:40,060 --> 00:03:42,139 gestione, pues eso, dar de alta 88 00:03:42,139 --> 00:03:44,419 cátedras de un profesor que ha sacado la cátedra 89 00:03:44,419 --> 00:03:46,819 mover a un profesor de departamento 90 00:03:46,819 --> 00:03:48,240 está asignado en un sitio 91 00:03:48,240 --> 00:03:49,860 moverlo a otro, pues eso es una 92 00:03:49,860 --> 00:03:52,460 aplicación normal que alguien te ha podido 93 00:03:52,460 --> 00:03:54,719 pedir que le desarrolles 94 00:03:54,719 --> 00:03:56,060 entonces 95 00:03:56,060 --> 00:03:58,199 esa aplicación va a trabajar con cosas 96 00:03:58,199 --> 00:03:59,159 esas cosas 97 00:03:59,159 --> 00:04:01,120 esas cosas, las llamamos tanto 98 00:04:01,120 --> 00:04:02,580 en el contexto de la base de datos 99 00:04:02,580 --> 00:04:04,460 como en el contexto de la programación 100 00:04:04,460 --> 00:04:06,159 las llamamos entidades 101 00:04:06,159 --> 00:04:12,460 ¿vale? va a trabajar con entidades 102 00:04:12,460 --> 00:04:15,039 y entidades son conceptos de la vida real 103 00:04:15,039 --> 00:04:17,139 entonces un problema 104 00:04:17,139 --> 00:04:19,120 un primer 105 00:04:19,120 --> 00:04:20,879 problema a abordar 106 00:04:20,879 --> 00:04:22,759 un primer problema es la 107 00:04:22,759 --> 00:04:25,120 identificación de las entidades 108 00:04:25,120 --> 00:04:27,259 que importan 109 00:04:27,259 --> 00:04:28,300 para mi aplicación 110 00:04:28,300 --> 00:04:30,879 ¿vale? y esa es una tarea de analistas 111 00:04:31,439 --> 00:04:32,620 ¿vale? 112 00:04:32,959 --> 00:04:56,459 Entonces, esa identificación de las entidades, pues en este caso nos podría llevar, vale, mi aplicación va a gestionar profesores, pues seguro que una entidad profesor voy a necesitar esta, mi aplicación va a gestionar departamentos también, porque me importan los departamentos, pero los profesores que trabajan en departamentos, pues aquí, entonces uno va identificando su aplicación en función de las funcionalidades que tiene que hacer, 113 00:04:56,459 --> 00:04:58,480 dar de alta a un profe 114 00:04:58,480 --> 00:05:00,420 asignar una cátedra a un profesor 115 00:05:00,420 --> 00:05:02,459 según las funcionalidades que le han pedido 116 00:05:02,459 --> 00:05:03,800 porque claro, el cliente ha llegado 117 00:05:03,800 --> 00:05:05,920 y te ha dicho una aplicación que haga 118 00:05:05,920 --> 00:05:07,879 esto, esto y esto 119 00:05:07,879 --> 00:05:10,240 te pide algo que tiene que hacer 120 00:05:10,240 --> 00:05:12,600 y en función de eso que tiene 121 00:05:12,600 --> 00:05:14,899 que hacer, tú ya sacas 122 00:05:14,899 --> 00:05:17,019 esas entidades que te importan 123 00:05:17,019 --> 00:05:18,699 entonces si ves que una de las cosas que tiene 124 00:05:18,699 --> 00:05:20,759 que hacer es asignar profesor 125 00:05:20,759 --> 00:05:22,639 a un departamento, ya pa, se te abre 126 00:05:22,639 --> 00:05:24,560 la luz, ah vale, pues entonces mi aplicación 127 00:05:24,560 --> 00:05:26,699 seguramente tendrá que tener una entidad 128 00:05:26,699 --> 00:05:28,519 profesor y una entidad de departamento. 129 00:05:29,300 --> 00:05:30,800 ¿Vale? Y esto que yo estoy 130 00:05:30,800 --> 00:05:32,600 haciendo, lo estoy haciendo en el mundo de 131 00:05:32,600 --> 00:05:34,720 la programación de Java, identificar 132 00:05:34,720 --> 00:05:36,939 las entidades. Pero en el 133 00:05:36,939 --> 00:05:38,720 mundo de bases de datos y de los datos 134 00:05:38,720 --> 00:05:40,220 es el mismo proceso. 135 00:05:40,620 --> 00:05:42,839 Es el mismo proceso porque van en paralelo. 136 00:05:43,399 --> 00:05:44,639 Las aplicaciones tienen 137 00:05:44,639 --> 00:05:45,899 los datos en bases de datos. 138 00:05:46,779 --> 00:05:48,259 Entonces van completamente en paralelo. 139 00:05:48,439 --> 00:05:50,620 Y las entidades que uno haya 140 00:05:50,620 --> 00:05:52,639 identificado en su 141 00:05:52,639 --> 00:05:54,600 modelo, en su modelo entidad 142 00:05:54,600 --> 00:05:56,259 relación, esas entidades 143 00:05:56,259 --> 00:05:58,560 tendrán una correspondencia en 144 00:05:58,560 --> 00:06:00,620 una entidad, ahora veremos cómo, que se llama clase, 145 00:06:01,279 --> 00:06:02,300 de nuestra aplicación. 146 00:06:02,519 --> 00:06:04,220 Tendrá una correspondencia y esa aplicación 147 00:06:04,220 --> 00:06:06,699 trabajará con esas entidades. 148 00:06:07,420 --> 00:06:07,860 Entonces, estas, 149 00:06:08,240 --> 00:06:10,300 repito, es trabajo de los analistas, 150 00:06:10,399 --> 00:06:11,560 identificar cuáles importan. 151 00:06:12,160 --> 00:06:14,620 Claro, a ver, ¿importa traje 152 00:06:14,620 --> 00:06:16,360 del profesor? Pues no. Esta 153 00:06:16,360 --> 00:06:18,579 aplicación, en ningún momento me han dicho cambiar 154 00:06:18,579 --> 00:06:20,399 de traje al profesor, pues no va a haber una entidad 155 00:06:20,399 --> 00:06:21,819 traje, porque no 156 00:06:21,819 --> 00:06:24,060 no trabaja con eso, pero 157 00:06:24,060 --> 00:06:25,899 trabaja con, esto es que no sé 158 00:06:25,899 --> 00:06:28,000 qué narices es, interfacultativo, no sé 159 00:06:28,000 --> 00:06:30,100 qué significa, eh, pues varias facultades 160 00:06:30,100 --> 00:06:30,879 básicamente 161 00:06:30,879 --> 00:06:34,160 que un departamento esté distribuido 162 00:06:34,160 --> 00:06:35,620 en varias facultades, vale, vale 163 00:06:35,620 --> 00:06:37,439 bueno, pues 164 00:06:37,439 --> 00:06:40,279 uno que va identificando las entidades 165 00:06:40,279 --> 00:06:42,139 que realmente su aplicación 166 00:06:42,139 --> 00:06:43,360 va a gestionar, vale 167 00:06:43,360 --> 00:06:45,899 bueno, pues esto tiene el nombre general 168 00:06:45,899 --> 00:06:46,399 de entidad 169 00:06:46,399 --> 00:06:49,879 en la programación 170 00:06:49,879 --> 00:06:50,740 orientada a objetos 171 00:06:50,740 --> 00:06:53,920 Esto lo asociamos 172 00:06:53,920 --> 00:06:55,660 Esto lo asociamos 173 00:06:55,660 --> 00:06:57,459 A esto, clase 174 00:06:57,459 --> 00:07:00,100 ¿Vale? 175 00:07:00,819 --> 00:07:02,399 Entonces, ¿qué es una clase? 176 00:07:02,980 --> 00:07:05,160 Una clase es, ahora ya sí 177 00:07:05,160 --> 00:07:09,459 Un código, que ahora veremos cómo escribimos 178 00:07:09,459 --> 00:07:11,240 Un código que escribimos en Java 179 00:07:11,240 --> 00:07:12,620 Que ahora veremos cómo 180 00:07:12,620 --> 00:07:16,000 Que describe cómo es una entidad por dentro 181 00:07:16,000 --> 00:07:17,300 Eso es una clase 182 00:07:17,300 --> 00:07:19,300 Describe cómo es una entidad por dentro 183 00:07:19,300 --> 00:07:20,459 O sea, todo lo que guarda la identidad de la tabla. 184 00:07:20,459 --> 00:07:23,480 Lo que tiene, lo que se llaman sus propiedades. 185 00:07:23,500 --> 00:07:23,740 Sí. 186 00:07:24,120 --> 00:07:27,139 Que en las bases de datos equivaldría a los campos. 187 00:07:27,959 --> 00:07:30,000 Claro, si hemos identificado un profesor, 188 00:07:30,519 --> 00:07:35,220 un profesor tendrá nombre, DNI, etcétera, etcétera. 189 00:07:35,420 --> 00:07:36,019 Podido de profesor. 190 00:07:36,100 --> 00:07:39,160 Claro, y eso en la base de datos se corresponderá 191 00:07:39,160 --> 00:07:41,899 a que habrá una tablita, profesor, 192 00:07:42,120 --> 00:07:43,399 que tendrá un montón de campos. 193 00:07:43,399 --> 00:07:45,160 Nombre del profesor, no sé cuántos, no sé cuántos. 194 00:07:45,540 --> 00:07:47,220 Eso en el mundo de las bases de datos. 195 00:07:47,220 --> 00:07:49,879 pues su equivalente en la aplicación 196 00:07:49,879 --> 00:07:51,560 que lo gestione será 197 00:07:51,560 --> 00:07:53,879 que habrá una clase escrita en Java 198 00:07:53,879 --> 00:07:55,180 ahora veremos cómo se escribe 199 00:07:55,180 --> 00:07:58,319 que esa clase te describirá 200 00:07:58,319 --> 00:07:59,800 el profesor tiene nombre 201 00:07:59,800 --> 00:08:01,540 tiene DNI, tiene no sé cuántos y no sé qué 202 00:08:01,540 --> 00:08:03,920 claro, entonces 203 00:08:03,920 --> 00:08:05,300 luego habrá un problema 204 00:08:05,300 --> 00:08:06,439 a resolver 205 00:08:06,439 --> 00:08:09,459 que ya será mapear 206 00:08:09,459 --> 00:08:11,420 todo lo que está en la base de datos 207 00:08:11,420 --> 00:08:13,360 todos los datos que están ahí 208 00:08:13,360 --> 00:08:15,660 mapearlos para que los tenga 209 00:08:15,660 --> 00:08:17,019 ya mi aplicación 210 00:08:17,019 --> 00:08:19,779 ahí dentro. Esa es mi asignatura 211 00:08:19,779 --> 00:08:20,420 del año que viene. 212 00:08:21,160 --> 00:08:22,379 Así que os genero 213 00:08:22,379 --> 00:08:25,459 las ganas 214 00:08:25,459 --> 00:08:27,100 ya de que la veáis el año que viene. 215 00:08:27,420 --> 00:08:28,740 Qué guay, estáis disfrutando. 216 00:08:29,160 --> 00:08:30,339 Estáis muertos de ganas. 217 00:08:30,579 --> 00:08:31,519 Pues debería ir. 218 00:08:33,659 --> 00:08:35,299 No debería ser solo con eso. 219 00:08:35,299 --> 00:08:35,960 Yo tengo curiosidad. 220 00:08:37,220 --> 00:08:38,659 Pues eso el año que viene. 221 00:08:39,679 --> 00:08:40,159 Entonces, 222 00:08:41,419 --> 00:08:43,220 más o menos nos hemos situado sobre qué es 223 00:08:43,220 --> 00:08:45,000 una clase. Una clase 224 00:08:45,000 --> 00:08:47,620 identificamos la necesidad 225 00:08:47,620 --> 00:08:49,200 de programarla, ahora veremos 226 00:08:49,200 --> 00:08:50,980 cómo se programa, cuando ya hemos 227 00:08:50,980 --> 00:08:52,600 identificado que mi aplicación 228 00:08:52,600 --> 00:08:55,139 va a trabajar con ese concepto 229 00:08:55,139 --> 00:08:56,460 de la vida real, esa entidad. 230 00:08:57,279 --> 00:08:59,000 Y ya os digo como añadido, 231 00:08:59,639 --> 00:09:01,059 aunque luego nosotros no vamos a usar 232 00:09:01,059 --> 00:09:03,080 la base de datos, que eso en la vida real 233 00:09:03,080 --> 00:09:05,080 siempre va a tener una base de datos asociada 234 00:09:05,080 --> 00:09:06,820 donde cada tabla 235 00:09:06,820 --> 00:09:08,039 será una clase. 236 00:09:09,519 --> 00:09:11,000 Tabla de profesores 237 00:09:11,000 --> 00:09:13,500 pues tendrá una clase asociada 238 00:09:13,500 --> 00:09:15,700 clase profesor que describe 239 00:09:15,700 --> 00:09:17,399 cómo es un profesor. Bueno, 240 00:09:17,840 --> 00:09:19,679 esa es más o menos la motivación, ¿vale? 241 00:09:21,559 --> 00:09:22,000 Luego, 242 00:09:22,159 --> 00:09:23,720 para hacer el análisis de todo, pero ese 243 00:09:23,720 --> 00:09:25,740 no es nuestro problema, ni 244 00:09:25,740 --> 00:09:27,639 seguramente trabajéis en eso en el futuro, 245 00:09:27,799 --> 00:09:29,639 pues hay un montón de tips. 246 00:09:29,639 --> 00:09:31,440 Pues, ¿qué es entidad y qué no? 247 00:09:32,179 --> 00:09:33,639 El tip básico es, ¿qué es 248 00:09:33,639 --> 00:09:35,279 entidad? Algo 249 00:09:35,279 --> 00:09:37,299 que tiene muchas propiedades distintas. 250 00:09:37,820 --> 00:09:39,200 Porque, claro, un nombre. 251 00:09:39,500 --> 00:09:41,419 Mi aplicación trabaja con nombres, por ejemplo. 252 00:09:41,419 --> 00:09:43,440 los nombres no son entidades 253 00:09:43,440 --> 00:09:45,580 porque un nombre se puede guardar en una variable string 254 00:09:45,580 --> 00:09:47,419 pues ya está, los nombres 255 00:09:47,419 --> 00:09:49,659 los guardo en variables, no tengo que hacer ninguna clase 256 00:09:49,659 --> 00:09:51,379 o una aplicación que trabaja 257 00:09:51,379 --> 00:09:53,379 con números, hasta ahora 258 00:09:53,379 --> 00:09:55,320 nuestras aplicaciones solamente trabajaban 259 00:09:55,320 --> 00:09:56,899 o con números o con cadenas 260 00:09:56,899 --> 00:09:59,460 no hemos necesitado clases en ningún 261 00:09:59,460 --> 00:10:01,259 momento, porque un numerito 262 00:10:01,259 --> 00:10:03,480 se guarda en una variable y un nombre 263 00:10:03,480 --> 00:10:05,519 se guarda en una variable de tipo string 264 00:10:05,519 --> 00:10:07,039 entonces hay ni clases ni nada 265 00:10:07,039 --> 00:10:09,559 pero si nuestra aplicación trabaja con profesores 266 00:10:09,559 --> 00:10:12,240 un profesor ya es un concepto complejo 267 00:10:12,240 --> 00:10:14,000 que tiene nombre, tiene DNI, tiene no sé qué 268 00:10:14,000 --> 00:10:15,700 entonces un profesor no se puede guardar 269 00:10:15,700 --> 00:10:17,779 en una variable de las que conocemos 270 00:10:17,779 --> 00:10:19,379 entonces tenemos que hacer 271 00:10:19,379 --> 00:10:21,940 este añadido, este de la clase 272 00:10:21,940 --> 00:10:22,580 ¿qué hacemos ahora? 273 00:10:22,620 --> 00:10:25,600 con variables separadas, claro 274 00:10:25,600 --> 00:10:27,919 y por supuesto que se podría programar 275 00:10:27,919 --> 00:10:29,539 cualquier aplicación sin nada de esto 276 00:10:29,539 --> 00:10:32,240 pero sería horrible, porque para gestionar un profesor 277 00:10:32,240 --> 00:10:34,080 tengo que tener un montón de variables 278 00:10:34,080 --> 00:10:35,980 solo para él, y gestionar todas esas variables 279 00:10:35,980 --> 00:10:38,000 en paralelo, sin mezclarlas 280 00:10:38,000 --> 00:10:39,899 con las variables del otro. O sea, un montón de 281 00:10:39,899 --> 00:10:41,679 arrays donde este array los nombres, 282 00:10:42,059 --> 00:10:43,580 este array los DNIs, este array 283 00:10:43,580 --> 00:10:45,899 sería una locura. Claro que 284 00:10:45,899 --> 00:10:48,240 podríamos hacerlo, pero ¿para qué? Vamos a organizar 285 00:10:48,240 --> 00:10:49,940 la aplicación con este invento 286 00:10:49,940 --> 00:10:51,980 para que sea mucho más sencillo. 287 00:10:52,500 --> 00:10:53,840 Porque de la otra manera, 288 00:10:54,100 --> 00:10:55,860 esa aplicación, uno si consigue 289 00:10:55,860 --> 00:10:57,899 hacerla, no va a haber nadie más 290 00:10:57,899 --> 00:10:59,720 en la vida que lo entienda. Lo entienda jamás. 291 00:10:59,720 --> 00:11:00,820 Contratado para siempre. 292 00:11:01,720 --> 00:11:04,000 Efectivamente, has cogido a la empresa por los 293 00:11:04,000 --> 00:11:05,960 cataprines, porque no te pueden 294 00:11:05,960 --> 00:11:07,259 echar. Pero 295 00:11:07,259 --> 00:11:10,039 Y como existe esto, con mala suerte 296 00:11:10,039 --> 00:11:14,899 Vale, pues está claro lo que es una clase, más o menos 297 00:11:14,899 --> 00:11:19,240 Vamos a ver cómo se programa una clase en Java 298 00:11:19,240 --> 00:11:39,190 Bueno, pues yo he identificado que mi aplicación va a trabajar, por ejemplo 299 00:11:39,190 --> 00:11:42,009 Con profesores y departamentos 300 00:11:42,009 --> 00:11:43,950 Es una aplicación sencillita 301 00:11:43,950 --> 00:11:49,129 Que lo que va a hacer va a ser asignar profesores a departamentos 302 00:11:49,129 --> 00:11:53,029 ver cuántos profesores trabaja en un departamento 303 00:11:53,029 --> 00:11:55,210 quitar un profesor de un departamento 304 00:11:55,210 --> 00:11:56,570 este tipo de funcionalidades 305 00:11:56,570 --> 00:11:58,870 entonces una vez que yo he leído lo que me pide el cliente 306 00:11:58,870 --> 00:12:00,450 asignar profesor 307 00:12:00,450 --> 00:12:01,950 ver profesores de un departamento 308 00:12:01,950 --> 00:12:03,950 ver qué departamento tiene más profesores 309 00:12:03,950 --> 00:12:04,470 ver no sé qué 310 00:12:04,470 --> 00:12:06,049 una vez que yo he visto las funcionalidades 311 00:12:06,049 --> 00:12:07,649 ya después de analizar he visto 312 00:12:07,649 --> 00:12:08,450 pues dos entidades 313 00:12:08,450 --> 00:12:10,830 profesor con sus datos 314 00:12:10,830 --> 00:12:12,710 y departamento con sus datos 315 00:12:12,710 --> 00:12:14,049 bueno pues 316 00:12:14,049 --> 00:12:16,429 entonces eso hace que automáticamente digamos 317 00:12:16,429 --> 00:12:17,889 vale pues una clase profesor 318 00:12:17,889 --> 00:12:20,049 y una clase, departamento. 319 00:12:21,269 --> 00:12:25,110 Bueno, vamos a empezar con la clase profesor. 320 00:12:27,799 --> 00:12:28,899 ¿Cómo se declara una clase? 321 00:12:29,340 --> 00:12:32,259 Pues empezamos obligatoriamente 322 00:12:32,259 --> 00:12:34,759 con esta palabrita que ya os suena. 323 00:12:37,220 --> 00:12:37,740 Clase. 324 00:12:38,840 --> 00:12:40,899 Así empezaban nuestros programas de toda la vida. 325 00:12:41,000 --> 00:12:41,220 ¿Por qué? 326 00:12:41,299 --> 00:12:43,840 Porque en Java y en cualquier lenguaje de programación, 327 00:12:43,840 --> 00:12:45,340 bueno, en cualquiera no, pero vamos. 328 00:12:45,340 --> 00:12:54,220 en java todos los todo cualquier aplicación tiene que ser un montón de clases cualquiera entonces 329 00:12:54,220 --> 00:13:01,460 las nuestras eran sólo una clase pero una tiene que haber al menos era sólo una por eso empezamos 330 00:13:01,460 --> 00:13:07,360 class lo que fuera y aquí poníamos algo dentro que es lo que se llama método que es todo eso es 331 00:13:07,360 --> 00:13:14,340 lo que vamos a entender y ver ahora que era el código que se ejecutaba ahora mismo olvidados 332 00:13:14,340 --> 00:13:15,840 de ese main y de todo 333 00:13:15,840 --> 00:13:18,159 olvidaros del main 334 00:13:18,159 --> 00:13:19,720 y de todos sus, vale 335 00:13:19,720 --> 00:13:22,759 yo he identificado una entidad profesor que necesito 336 00:13:22,759 --> 00:13:24,220 empiezo con class 337 00:13:24,220 --> 00:13:26,419 en su ficherito, aparte 338 00:13:26,419 --> 00:13:28,000 vale, a ver, puedo hacer 339 00:13:28,000 --> 00:13:30,100 pero bueno, estos matices los iremos incorporando 340 00:13:30,100 --> 00:13:31,340 van a hacer mucho barullo 341 00:13:31,340 --> 00:13:34,320 poco a poco, ahora mismo poneros en el chip 342 00:13:34,320 --> 00:13:35,559 de que cada clase 343 00:13:35,559 --> 00:13:37,980 es un fichero de texto distinto 344 00:13:37,980 --> 00:13:40,259 vale, es un fichero de texto diferente 345 00:13:40,259 --> 00:13:42,220 vale, pues en un fichero 346 00:13:42,220 --> 00:13:44,259 de texto nuevo, en un código 347 00:13:44,259 --> 00:13:46,259 fuente.java, claro, yo empiezo 348 00:13:46,259 --> 00:13:48,220 ya a declarar mi clase profesor. 349 00:13:49,120 --> 00:13:50,179 Pues empiezo con 350 00:13:50,179 --> 00:13:52,120 la palabra reservada obligatoria 351 00:13:52,120 --> 00:13:54,259 clase. Y ahora 352 00:13:54,259 --> 00:13:56,259 le doy el nombre a la clase que me dé la 353 00:13:56,259 --> 00:13:58,240 gana. Hombre, normal es darle 354 00:13:58,240 --> 00:14:00,080 un nombre que se relacione 355 00:14:00,080 --> 00:14:02,379 con la entidad. Entonces, lo más bonito 356 00:14:02,379 --> 00:14:03,799 sería profesor, efectivamente. 357 00:14:04,259 --> 00:14:06,259 ¿Clase no lo pones dentro de una public 358 00:14:06,259 --> 00:14:08,220 class? O sea, es ya... No, no, no, 359 00:14:08,220 --> 00:14:10,139 a ver, lo que puedo es poner public delante, 360 00:14:10,259 --> 00:14:12,360 pero como no sabemos lo que significa todavía, no lo pongo. 361 00:14:12,460 --> 00:14:14,179 Pero como automáticamente nos estamos generando 362 00:14:14,179 --> 00:14:16,860 estamos haciendo los ejercicios dentro de clases públicas 363 00:14:16,860 --> 00:14:18,440 claro, porque cuando 364 00:14:18,440 --> 00:14:20,100 lo hacíamos, él nos ponía el public 365 00:14:20,100 --> 00:14:22,200 automáticamente, ¿lo podéis poner o no? 366 00:14:22,320 --> 00:14:23,480 ahora mismo no tiene ninguna trascendencia 367 00:14:23,480 --> 00:14:25,519 la clase en sí es eso 368 00:14:25,519 --> 00:14:27,360 sí, sí, sí, esto no lo metas dentro de otra 369 00:14:27,360 --> 00:14:29,620 a ver, puede haber clases internas 370 00:14:29,620 --> 00:14:31,519 pero esto de nuevo lo dejamos para más adelante 371 00:14:31,519 --> 00:14:33,000 ahora, ¿vale? 372 00:14:33,700 --> 00:14:35,580 entonces, una clase profesor 373 00:14:35,580 --> 00:14:37,279 empieza con class, punto pelota 374 00:14:37,279 --> 00:14:39,299 que si ponéis el public delante no pasa nada 375 00:14:39,299 --> 00:14:41,039 pero como no entendemos lo que significa, ¿para qué ponerlo? 376 00:14:41,580 --> 00:14:43,240 class, vale, nombre de la clase 377 00:14:43,240 --> 00:14:44,779 el que a uno le dé la gana 378 00:14:44,779 --> 00:14:46,840 sin restricciones más allá que los mismos 379 00:14:46,840 --> 00:14:47,919 de los nombres de variables 380 00:14:47,919 --> 00:14:49,899 pues que no tengan caracteres raros 381 00:14:49,899 --> 00:14:52,860 letras y números 382 00:14:52,860 --> 00:14:54,720 ni siquiera estoy 383 00:14:54,720 --> 00:14:55,740 porque en las variables 384 00:14:55,740 --> 00:14:58,700 el carácter de subrayado si lo admite 385 00:14:58,700 --> 00:15:00,759 pero nombres de clases ni lo sé 386 00:15:00,759 --> 00:15:02,659 pero es que jamás he visto una clase que tenga 387 00:15:02,659 --> 00:15:03,419 un subrayado 388 00:15:03,419 --> 00:15:05,620 no lo pongáis 389 00:15:05,620 --> 00:15:08,740 sí que hay 390 00:15:08,740 --> 00:15:10,519 una pauta de estilo que no es 391 00:15:10,519 --> 00:15:12,279 obligatoria pero es recomendable 392 00:15:12,279 --> 00:15:14,919 y es que los nombres de clase 393 00:15:14,919 --> 00:15:17,159 empiecen siempre con mayúscula 394 00:15:17,159 --> 00:15:18,559 entonces, eso 395 00:15:18,559 --> 00:15:19,860 en nuestro caso 396 00:15:19,860 --> 00:15:22,639 al profesor 397 00:15:22,639 --> 00:15:25,159 le llamaríamos, la clase profesor 398 00:15:25,159 --> 00:15:26,500 la pondríamos profesor 399 00:15:26,500 --> 00:15:29,360 que no pasa nada, puede ser con minúscula 400 00:15:29,360 --> 00:15:30,559 pero ¿por qué 401 00:15:30,559 --> 00:15:32,840 se sigue esa regla de estilo? 402 00:15:32,840 --> 00:15:34,759 pues para distinguir 403 00:15:34,759 --> 00:15:36,580 claro, string es una clase 404 00:15:36,580 --> 00:15:37,059 efectivamente 405 00:15:37,059 --> 00:15:40,320 ¿para qué se sigue esta regla de estilo? 406 00:15:40,320 --> 00:15:46,100 Pues para que sea más fácil distinguir qué es una clase y qué es una variable primitiva. 407 00:15:46,960 --> 00:15:53,679 Recordad cuando os dije las variables primitivas, recomendable que empiecen con minúscula, no obligatorio, pero recomendable. 408 00:15:54,000 --> 00:15:56,100 Son pautas de estilo que clarifican luego el código. 409 00:15:56,240 --> 00:15:58,399 Sí, pero los primitivos también los queríamos. 410 00:16:00,370 --> 00:16:03,289 Sí, con minúscula, claro, porque es una variable. 411 00:16:03,610 --> 00:16:06,629 Pero el tipo de dato es tiene la mayúscula porque es una clase. 412 00:16:06,909 --> 00:16:08,289 Ahora lo vamos a ir viendo todo eso. 413 00:16:08,289 --> 00:16:10,009 Vale, pues profesor 414 00:16:10,009 --> 00:16:12,610 Y ahora se abren las llaves y se cierra 415 00:16:12,610 --> 00:16:17,250 Y ahí ya va dentro la descripción del profesor 416 00:16:17,250 --> 00:16:22,450 Bueno, pues la descripción del profesor 417 00:16:22,450 --> 00:16:23,909 ¿En qué consiste? 418 00:16:25,029 --> 00:16:28,190 En aquellas propiedades que lo caracterizan 419 00:16:28,190 --> 00:16:28,830 Nada más 420 00:16:28,830 --> 00:16:31,129 No consiste en nada más 421 00:16:31,129 --> 00:16:32,629 Entonces hay que identificar 422 00:16:32,629 --> 00:16:35,909 Qué propiedades le importan a la aplicación 423 00:16:35,909 --> 00:16:37,710 Las que le importen 424 00:16:37,710 --> 00:16:39,909 El color de ojo no le importa a la aplicación 425 00:16:39,909 --> 00:16:42,070 pues jamás pondría una propiedad color de ojos 426 00:16:42,070 --> 00:16:43,110 ¿qué le importa? 427 00:16:43,570 --> 00:16:46,149 pues a lo mejor en esta aplicación le importa 428 00:16:46,149 --> 00:16:47,730 el nombre 429 00:16:47,730 --> 00:16:49,649 el DNI 430 00:16:49,649 --> 00:16:51,710 y el sueldo, yo que sé, por ejemplo 431 00:16:51,710 --> 00:16:53,789 le importan esas tres cosas a la aplicación 432 00:16:53,789 --> 00:16:55,830 porque es con lo que hace gestiones y cosas 433 00:16:55,830 --> 00:16:56,990 le importan esas tres cosas 434 00:16:56,990 --> 00:16:59,850 vale, pues eso es lo que se llaman 435 00:16:59,850 --> 00:17:02,269 propiedades de la clase 436 00:17:02,269 --> 00:17:03,889 propiedades que 437 00:17:03,889 --> 00:17:05,170 también admiten 438 00:17:05,170 --> 00:17:08,190 campos de la clase, atributos 439 00:17:08,190 --> 00:17:09,809 o incluso variables 440 00:17:09,809 --> 00:17:15,069 Más o menos los cuatro nombres suelen usarse como equivalentes 441 00:17:15,069 --> 00:17:17,630 Propiedades, atributos, variables o campos 442 00:17:17,630 --> 00:17:22,170 Variables o campos es más terminología del eclipse por traducción del inglés 443 00:17:22,170 --> 00:17:27,490 Propiedades y atributos, pues la terminología más nuestra 444 00:17:27,490 --> 00:17:32,269 Bueno, pues entonces, lo primero que se mete aquí dentro de la clase 445 00:17:32,269 --> 00:17:37,470 Son las propiedades, ya digo, o atributos o campos 446 00:17:37,470 --> 00:17:59,339 Vale, pues ¿cómo se ponen las propiedades? Pues se declaran variables, como hemos declarado toda la vida, una variable por cada propiedad. Hemos dicho nosotros que a nosotros nos van a importar nombre, DNI y sueldo. 447 00:17:59,339 --> 00:18:01,599 hemos dicho, vale, propiedad 448 00:18:01,599 --> 00:18:03,460 nombre, ¿qué tipo de dato? 449 00:18:04,180 --> 00:18:04,759 string 450 00:18:04,759 --> 00:18:06,940 pues ya está, declaro aquí 451 00:18:06,940 --> 00:18:09,039 esta propiedad string 452 00:18:09,039 --> 00:18:11,200 exactamente igual que declararía 453 00:18:11,200 --> 00:18:13,440 cualquier otra variable 454 00:18:13,440 --> 00:18:14,980 cualquier otra variable 455 00:18:14,980 --> 00:18:17,220 string nombre, ahí declarada 456 00:18:17,220 --> 00:18:19,720 ¿qué más 457 00:18:19,720 --> 00:18:21,000 hemos dicho que nos importa? el need 458 00:18:21,000 --> 00:18:23,099 vamos a ponerlo en string también 459 00:18:23,099 --> 00:18:25,640 bueno, pues hombre, lo puedo poner aquí abajo 460 00:18:25,640 --> 00:18:27,599 string nombre, o bueno 461 00:18:27,599 --> 00:18:29,640 como es del mismo tipo, podría ponerlo 462 00:18:29,640 --> 00:18:29,900 aquí. 463 00:18:33,500 --> 00:18:35,240 Siempre lo hago en bucle. 464 00:18:35,519 --> 00:18:36,640 Además es ateo. 465 00:18:38,480 --> 00:18:39,819 ¿Tanto Jesús? ¿O no lo habéis dicho Jesús? 466 00:18:41,079 --> 00:18:41,940 Ah, vale. 467 00:18:42,079 --> 00:18:43,279 Lo de Jesús era en mis tiempos. 468 00:18:43,420 --> 00:18:44,180 No, también lo he dicho Jesús. 469 00:18:44,180 --> 00:18:45,859 Ah, vale, vale. 470 00:18:46,180 --> 00:18:46,759 Jesús lo he dicho. 471 00:18:48,579 --> 00:18:50,319 Ah, bueno, pero en su caso se le perdona. 472 00:18:50,619 --> 00:18:51,339 Pues sí, se lo sale. 473 00:18:51,559 --> 00:18:53,980 Eso, yo mismo. 474 00:18:53,980 --> 00:18:57,779 vale, dos propiedades 475 00:18:57,779 --> 00:18:59,480 como si declaramos las dos variables 476 00:18:59,480 --> 00:19:01,240 la otra que hemos dicho, sueldo 477 00:19:01,240 --> 00:19:02,339 asumimos que es double 478 00:19:02,339 --> 00:19:04,259 pues venga 479 00:19:04,259 --> 00:19:09,839 los nombres de las propiedades 480 00:19:09,839 --> 00:19:12,359 la misma idea que los nombres cuando declaramos 481 00:19:12,359 --> 00:19:14,500 variables en un programa de los que hemos hecho hasta ahora 482 00:19:14,500 --> 00:19:16,539 decíamos, nombres que sean 483 00:19:16,539 --> 00:19:17,960 lo más explicativo posible 484 00:19:17,960 --> 00:19:20,279 pues sí, lo más explicativo porque 485 00:19:20,279 --> 00:19:22,519 define qué propiedad tiene 486 00:19:22,519 --> 00:19:24,799 empezando con minúscula 487 00:19:24,799 --> 00:19:25,920 no es obligatorio 488 00:19:25,920 --> 00:19:27,759 Pero si seguimos estas reglas de estilo 489 00:19:27,759 --> 00:19:29,500 Los programas van a ser más claros 490 00:19:29,500 --> 00:19:31,880 ¿Vale? Pues estas son las propiedades 491 00:19:31,880 --> 00:19:32,759 Ya las tenemos aquí 492 00:19:32,759 --> 00:19:36,019 Delante puede haber cosas 493 00:19:36,019 --> 00:19:37,400 El private está aquí para ti 494 00:19:37,400 --> 00:19:39,180 Pero es que todo eso todavía no sabemos 495 00:19:39,180 --> 00:19:41,720 En qué momento habría que ponerlo, ni por qué, ni nada 496 00:19:41,720 --> 00:19:43,339 Entonces ya lo incorporaremos 497 00:19:43,339 --> 00:19:44,099 Poco a poco 498 00:19:44,099 --> 00:19:46,519 Lo digo porque si os ponéis a ver por ahí cosas 499 00:19:46,519 --> 00:19:47,460 ¿Cómo se ha quedado una clase? 500 00:19:47,960 --> 00:19:49,660 Pues a lo mejor veis un montón de cosas 501 00:19:49,660 --> 00:19:52,779 Y esto no ha salido, pero es que hay que ir progresivamente 502 00:19:52,779 --> 00:19:55,079 Usarlo y que te diga 503 00:19:55,079 --> 00:19:57,039 Claro, pero bueno 504 00:19:57,039 --> 00:19:58,819 Yo voy incorporando progresivamente 505 00:19:58,819 --> 00:20:01,259 ¿Vale? Entonces, las propiedades 506 00:20:01,259 --> 00:20:03,019 ¿Vale? Aquí no tiene sentido 507 00:20:03,019 --> 00:20:04,599 Asignar ningún valor 508 00:20:04,599 --> 00:20:07,140 ¿Por qué? Porque esto es 509 00:20:07,140 --> 00:20:08,359 Como una especie de plantilla 510 00:20:08,359 --> 00:20:10,980 Esto dice, los profesores 511 00:20:10,980 --> 00:20:13,059 Cuando los haya, cuando existan ya 512 00:20:13,059 --> 00:20:14,920 Los profesores en la aplicación, ahora veremos 513 00:20:14,920 --> 00:20:17,259 Qué significa eso de que existan, cuando existan 514 00:20:17,259 --> 00:20:19,339 Tendrán un nombre, un if y un sueldo 515 00:20:19,339 --> 00:20:21,220 Esto es una descripción 516 00:20:21,220 --> 00:20:23,279 De las propiedades 517 00:20:23,279 --> 00:20:24,740 que caracterizan al profesor. 518 00:20:24,859 --> 00:20:25,339 ¿Cuáles son? 519 00:20:25,940 --> 00:20:27,119 Pero esto no es un ejemplo 520 00:20:27,119 --> 00:20:28,160 concreto de profesor. 521 00:20:28,220 --> 00:20:29,039 Eso es una plantilla. 522 00:20:29,640 --> 00:20:29,819 ¿Vale? 523 00:20:29,839 --> 00:20:30,539 Es una plantilla. 524 00:20:31,380 --> 00:20:32,579 Luego dentro del profesor 525 00:20:32,579 --> 00:20:33,940 crearé a cada profesor individual. 526 00:20:34,039 --> 00:20:35,240 Claro, luego dentro de la aplicación. 527 00:20:35,799 --> 00:20:37,299 Luego ya la aplicación, 528 00:20:37,420 --> 00:20:38,200 ahora veremos cómo, 529 00:20:38,640 --> 00:20:41,039 ya podrá crear 20 de estos. 530 00:20:41,759 --> 00:20:42,740 20 profesores. 531 00:20:42,960 --> 00:20:44,440 Y cada uno de esos 20 532 00:20:44,440 --> 00:20:46,480 tendrá su propio nombre. 533 00:20:47,059 --> 00:20:48,400 Es decir, su propio valor aquí. 534 00:20:48,920 --> 00:20:49,720 Su propio NIF. 535 00:20:49,720 --> 00:20:50,700 Su propio valor aquí. 536 00:20:51,000 --> 00:20:51,839 Su propio sueldo. 537 00:20:51,940 --> 00:20:52,680 Su propio valor aquí. 538 00:20:52,680 --> 00:20:55,279 Pero eso ya será cuando ya hagamos una aplicación 539 00:20:55,279 --> 00:20:57,099 Que tenga ya profesores reales 540 00:20:57,099 --> 00:20:57,920 Y haga cosas con ellos 541 00:20:57,920 --> 00:21:00,400 Si le llamo al profesor 542 00:21:00,400 --> 00:21:03,059 Pero al nombre, me va a salir su nombre 543 00:21:03,059 --> 00:21:04,779 Si le llamo al profesor, pero a mí me va a salir su nombre 544 00:21:04,779 --> 00:21:07,200 Claro, claro, ya de estos 545 00:21:07,200 --> 00:21:08,299 Usa el profesor para todo 546 00:21:08,299 --> 00:21:11,700 De estos puede haber 200.000 copias 547 00:21:11,700 --> 00:21:13,279 Ya reales en la aplicación 548 00:21:13,279 --> 00:21:15,599 Pero es que aquí todavía no existe ninguna aplicación 549 00:21:15,599 --> 00:21:17,099 Aquí tenemos una plantilla 550 00:21:17,099 --> 00:21:18,559 Una plantilla 551 00:21:18,559 --> 00:21:20,640 Pero no hay ninguna aplicación ejecutándose ni hay nada 552 00:21:20,640 --> 00:21:22,640 esto es, cuando haya una aplicación 553 00:21:22,640 --> 00:21:23,859 que gestione profesores 554 00:21:23,859 --> 00:21:26,640 esos profesores responden 555 00:21:26,640 --> 00:21:28,500 a esta plantilla, es decir, tienen estas tres 556 00:21:28,500 --> 00:21:29,119 propiedades 557 00:21:29,119 --> 00:21:32,799 nosotros, el concepto de persona 558 00:21:32,799 --> 00:21:33,900 es único 559 00:21:33,900 --> 00:21:36,480 salvo matices filosóficos 560 00:21:36,480 --> 00:21:38,180 es un concepto de persona 561 00:21:38,180 --> 00:21:39,920 pero luego aquí, pues tenemos 562 00:21:39,920 --> 00:21:42,500 deberíamos ser 563 00:21:42,500 --> 00:21:44,180 30, pero tenemos, pues yo que sé, 20 564 00:21:44,180 --> 00:21:45,200 o por ahí, ¿vale? 565 00:21:45,980 --> 00:21:48,619 personas hay muchísimas, pero la idea, el concepto es uno 566 00:21:48,619 --> 00:21:50,039 pues esto es lo mismo 567 00:21:50,039 --> 00:21:51,680 hay una plantilla de profesor 568 00:21:51,680 --> 00:21:53,859 este es el concepto, el profesor tendrá 569 00:21:53,859 --> 00:21:55,579 nombre, nif y sueldo, pero todavía no existe 570 00:21:55,579 --> 00:21:57,680 eso existirá cuando hagamos la aplicación 571 00:21:57,680 --> 00:21:58,380 que no la hemos hecho 572 00:21:58,380 --> 00:22:01,000 vale, entonces 573 00:22:01,000 --> 00:22:03,960 dentro de una clase puede haber más cosas 574 00:22:03,960 --> 00:22:05,440 que vamos a tener que incorporar ya mismo 575 00:22:05,440 --> 00:22:06,920 una de ellas 576 00:22:06,920 --> 00:22:09,940 y la que incorpora 577 00:22:09,940 --> 00:22:11,900 el concepto más importante 578 00:22:11,900 --> 00:22:14,220 es, una vez que tenemos las propiedades 579 00:22:14,220 --> 00:22:15,660 ahora en la clase 580 00:22:15,660 --> 00:22:17,680 vendrá una cosa que se llaman los 581 00:22:17,680 --> 00:22:18,619 métodos 582 00:22:18,619 --> 00:22:21,930 los métodos 583 00:22:21,930 --> 00:22:24,390 ahora todavía no vamos a ponerlos 584 00:22:24,390 --> 00:22:26,569 porque vamos a hacer una aplicación que haga profesores 585 00:22:26,569 --> 00:22:28,369 para ver como, vale 586 00:22:28,369 --> 00:22:30,450 ¿qué son los métodos? 587 00:22:30,990 --> 00:22:32,309 pues los métodos son 588 00:22:32,309 --> 00:22:33,569 funciones 589 00:22:33,569 --> 00:22:36,690 funciones tal cual las hemos estudiado 590 00:22:36,690 --> 00:22:37,910 funciones 591 00:22:37,910 --> 00:22:39,430 una o mil 592 00:22:39,430 --> 00:22:42,410 entonces, las funciones 593 00:22:42,410 --> 00:22:43,430 que se meten aquí 594 00:22:43,430 --> 00:22:46,150 la idea es que sean funciones 595 00:22:46,150 --> 00:22:48,710 que hacen cosas relacionadas 596 00:22:48,710 --> 00:22:49,970 con los profesores. 597 00:22:50,690 --> 00:22:50,970 Entonces, 598 00:22:51,390 --> 00:22:52,269 ahí ya tengo una forma 599 00:22:52,269 --> 00:22:53,349 de organizar mi aplicación. 600 00:22:53,789 --> 00:22:54,329 Mi aplicación 601 00:22:54,329 --> 00:22:55,210 era cosa con los profes. 602 00:22:55,369 --> 00:22:56,490 Ahora cosa con los profesores 603 00:22:56,490 --> 00:22:57,470 porque por eso 604 00:22:57,470 --> 00:22:58,210 la he identificado 605 00:22:58,210 --> 00:22:58,769 como entidad. 606 00:22:59,470 --> 00:22:59,930 Ahora profes, 607 00:22:59,990 --> 00:23:00,750 subir el sueldo, 608 00:23:01,170 --> 00:23:02,269 cambiarle de departamento, 609 00:23:02,349 --> 00:23:02,890 aunque no hemos metido 610 00:23:02,890 --> 00:23:03,630 aquí departamento todavía, 611 00:23:03,809 --> 00:23:04,369 ya lo meteremos. 612 00:23:06,089 --> 00:23:06,910 Cambiarle de nombre 613 00:23:06,910 --> 00:23:08,089 porque ha cambiado de género. 614 00:23:08,549 --> 00:23:09,390 Alterar el enigma 615 00:23:09,390 --> 00:23:09,910 porque había un error. 616 00:23:10,329 --> 00:23:10,789 La aplicación 617 00:23:10,789 --> 00:23:11,230 era cosas. 618 00:23:12,069 --> 00:23:12,230 Vale, 619 00:23:12,390 --> 00:23:13,490 pues esas cosas 620 00:23:13,490 --> 00:23:14,990 las podemos meter 621 00:23:14,990 --> 00:23:15,630 en funciones 622 00:23:15,630 --> 00:23:16,609 como hemos visto ya. 623 00:23:17,329 --> 00:23:18,210 Y esas funciones 624 00:23:18,210 --> 00:23:19,849 su sitio de ubicarlas 625 00:23:19,849 --> 00:23:22,150 irían aquí, las que hacen cosas 626 00:23:22,150 --> 00:23:24,150 relacionadas con el profesor, vale 627 00:23:24,150 --> 00:23:26,049 ahora ya veremos como 628 00:23:26,049 --> 00:23:27,930 hacer esos métodos 629 00:23:27,930 --> 00:23:29,490 y luego como ejecutarlos 630 00:23:29,490 --> 00:23:32,049 como ejecutarlos, porque aquí no hay ningún main 631 00:23:32,049 --> 00:23:34,269 nosotros hasta ahora hemos ejecutado 632 00:23:34,269 --> 00:23:36,450 las cosas, las funciones 633 00:23:36,450 --> 00:23:38,150 eran, teníamos una única clase 634 00:23:38,150 --> 00:23:39,930 con un main y las funciones abajo 635 00:23:39,930 --> 00:23:41,349 y de ahí no hemos salido 636 00:23:41,349 --> 00:23:43,069 ahora ya abrimos 637 00:23:43,069 --> 00:23:46,569 ese contexto a uno más amplio 638 00:23:46,569 --> 00:23:48,089 vale, bueno pues 639 00:23:48,089 --> 00:23:49,950 ahora mismo, antes de ver un ejemplo de cómo funcionan 640 00:23:49,950 --> 00:23:51,190 los profesores ya en un main. 641 00:23:51,769 --> 00:23:53,890 Queremos no. Queremos nos 642 00:23:53,890 --> 00:23:55,390 con que los métodos serían 643 00:23:55,390 --> 00:23:59,539 un conjunto de funciones 644 00:23:59,539 --> 00:24:03,390 que hacen 645 00:24:03,390 --> 00:24:05,190 cosas relacionadas con el profesor. 646 00:24:06,390 --> 00:24:07,390 Porque si no, a cuento 647 00:24:07,390 --> 00:24:08,930 de qué pintan ahí esas funciones. 648 00:24:09,250 --> 00:24:11,450 Una función ahí que me haga así un número de primo, ¿no? 649 00:24:11,490 --> 00:24:12,849 ¿Para qué la voy a meter aquí en un profesor? 650 00:24:25,430 --> 00:24:26,930 Vale, pues esto que yo he escrito ahí 651 00:24:26,930 --> 00:24:27,990 ya es una clase válida. 652 00:24:29,950 --> 00:24:30,309 Sencillita. 653 00:24:31,089 --> 00:24:32,430 Pero ya es una clase válida. 654 00:24:32,430 --> 00:24:48,490 Entonces, yo ya podría hacer una aplicación que cree 20 profesores y les dé datos a cada uno de ellos para luego hacer cosas con ellos. ¿Qué cosas? Pues no sé, ya lo meteremos aquí, qué hacer con ellos, ¿vale? Vamos a ver cómo sería SME. 655 00:24:48,490 --> 00:24:56,250 Bueno, pues entonces, repito 656 00:24:56,250 --> 00:24:58,809 Esto no es nada que se esté ejecutando 657 00:24:58,809 --> 00:25:00,410 Esto es una plantilla 658 00:25:00,410 --> 00:25:01,789 No es nada que se esté ejecutando 659 00:25:01,789 --> 00:25:04,829 ¿Vale? ¿Qué es lo que sí que se ejecuta 660 00:25:04,829 --> 00:25:05,910 Ya en una aplicación Java? 661 00:25:06,509 --> 00:25:08,190 Lo que se ejecuta en una aplicación Java 662 00:25:08,190 --> 00:25:09,349 Ya lo hemos dicho desde el principio 663 00:25:09,349 --> 00:25:11,390 Es lo que hay en el método main 664 00:25:11,390 --> 00:25:14,009 Y ya está, eso es lo único que se ejecuta 665 00:25:14,009 --> 00:25:15,950 En una aplicación Java, de escritorio 666 00:25:15,950 --> 00:25:17,329 No una aplicación web ni nada de eso 667 00:25:17,329 --> 00:25:19,789 Luego, si yo quiero hacer una aplicación Java 668 00:25:19,789 --> 00:25:21,009 Que gestione profesores 669 00:25:21,009 --> 00:25:23,630 Ese modelo lo tengo que seguir haciendo 670 00:25:23,630 --> 00:25:25,349 Como hemos hecho hasta ahora 671 00:25:25,349 --> 00:25:26,549 Una clase 672 00:25:26,549 --> 00:25:29,730 Pues a ver si luego 673 00:25:29,730 --> 00:25:30,910 Me dan otro recambio 674 00:25:30,910 --> 00:25:34,210 Una clase y aquí un main 675 00:25:34,210 --> 00:25:45,309 Vale 676 00:25:45,309 --> 00:25:46,869 Pues ahora ya tengo una aplicación 677 00:25:46,869 --> 00:25:47,990 Con dos clases 678 00:25:47,990 --> 00:25:50,990 Dos ficheros distintos fuente 679 00:25:50,990 --> 00:25:51,829 Dos punto java 680 00:25:51,829 --> 00:25:53,410 Mi aplicación tiene dos clases 681 00:25:53,410 --> 00:25:55,630 Esta que es la plantilla del profesor 682 00:25:55,630 --> 00:25:58,410 Y esta main donde vamos a hacer cosas 683 00:25:58,410 --> 00:26:00,170 Ahora ya lo hago ahí en la pantalla 684 00:26:00,170 --> 00:26:00,869 Que se va a ver mejor 685 00:26:00,869 --> 00:26:03,500 Vale 686 00:26:03,500 --> 00:26:06,319 Esta también es una clase 687 00:26:06,319 --> 00:26:07,480 Porque empieza por class 688 00:26:07,480 --> 00:26:10,740 Pero esta la podemos ver como una clase sin propiedades 689 00:26:10,740 --> 00:26:12,240 No tiene propiedades 690 00:26:12,240 --> 00:26:14,039 No tiene propiedades 691 00:26:14,039 --> 00:26:16,000 Porque esa clase no define ninguna entidad 692 00:26:16,000 --> 00:26:17,740 No define una entidad 693 00:26:17,740 --> 00:26:20,299 Es la clase ejecutable, entre comillas 694 00:26:20,299 --> 00:26:21,859 ¿Vale? 695 00:26:22,019 --> 00:26:23,859 Lo que sí que tiene dentro es un método 696 00:26:23,859 --> 00:26:26,019 Porque esto es una función, en realidad 697 00:26:26,019 --> 00:26:26,799 Tiene su nombre 698 00:26:26,799 --> 00:26:29,240 Un void porque no devuelve nada 699 00:26:29,240 --> 00:26:30,980 Y estas dos cosas que todavía no entendemos 700 00:26:30,980 --> 00:26:32,240 Pero bueno, en breve las entenderemos 701 00:26:32,240 --> 00:26:33,539 Pues lo que sí que tiene es una función. 702 00:26:34,519 --> 00:26:36,660 Entonces, como ya hemos dicho a veces, 703 00:26:37,579 --> 00:26:39,240 cuando arranca una aplicación Java, 704 00:26:39,619 --> 00:26:41,079 que normalmente son muchas clases, 705 00:26:41,640 --> 00:26:43,920 la máquina virtual se pone a buscar entre todas ellas, 706 00:26:44,019 --> 00:26:45,839 y ya veremos cómo consigue encontrarla, 707 00:26:46,660 --> 00:26:48,000 se pone a buscar entre todas ellas 708 00:26:48,000 --> 00:26:50,180 cuál es la que tiene este método dentro. 709 00:26:50,880 --> 00:26:52,980 A partir de ahora ya voy a dejar de usar la palabra función 710 00:26:52,980 --> 00:26:56,039 para usar la palabra método, ¿vale? 711 00:26:56,039 --> 00:26:58,720 Porque es el nombre de programación de entradas de objetos. 712 00:26:59,140 --> 00:27:00,839 Lo que vaya aquí serán métodos, 713 00:27:00,839 --> 00:27:03,200 aunque su sintaxis era como de las funciones que hemos visto. 714 00:27:03,960 --> 00:27:07,680 Y esto es un método, o lo que hemos llamado función hasta ahora, 715 00:27:07,779 --> 00:27:10,359 con su nombre, no devuelve nada, recibe unos parámetros 716 00:27:10,359 --> 00:27:13,359 que todavía no hemos visto para qué usarlos, y hace cosas. 717 00:27:13,980 --> 00:27:16,660 Vale, pues cuando una aplicación, que es un montón de clases, 718 00:27:16,880 --> 00:27:19,740 arranca, la máquina virtual se pone ahí toda loca 719 00:27:19,740 --> 00:27:22,779 hasta que encuentra de todas las clases que tiene, 720 00:27:23,359 --> 00:27:26,920 cuál tiene el método main dentro, exactamente con su cabecera. 721 00:27:27,660 --> 00:27:30,200 Y en cuanto lo encuentra, empieza a hacer lo que hay aquí. 722 00:27:30,200 --> 00:27:50,059 Y ya está. Y cuando ya lo ha hecho todo y ha terminado, la aplicación se acabó, ¿vale? Bueno, pues por ejemplo, ¿qué vamos a hacer en esta aplicación ahora? Vamos a crear un array de 20 profesores y los vamos a rellenar a cada uno con sus datos y luego vamos a mostrar el profesor que más gana. 723 00:27:50,059 --> 00:27:52,259 por ejemplo, esa aplicación ya la podemos hacer 724 00:27:52,259 --> 00:27:54,079 20 profesores 725 00:27:54,079 --> 00:27:57,099 ¿cuál es el que más gana? 726 00:27:57,519 --> 00:27:59,039 os vamos a mostrar cuál es el que más gana 727 00:27:59,039 --> 00:28:00,019 de los 20 que hemos hecho 728 00:28:00,019 --> 00:28:03,359 pues venga, lo vamos a hacerlo ya aquí 729 00:28:03,359 --> 00:28:11,430 que ahí no se ve nada 730 00:28:11,430 --> 00:28:13,130 ¿te puse de aquí para que no te dieran mal? 731 00:28:13,869 --> 00:28:14,730 es verdad 732 00:28:14,730 --> 00:28:24,450 vale 733 00:28:24,450 --> 00:28:28,849 pues entonces 734 00:28:28,849 --> 00:28:29,730 vamos a ver 735 00:28:29,730 --> 00:29:23,960 Pues venga, voy a hacer un proyectillo 736 00:29:23,960 --> 00:29:24,539 Nuevo 737 00:29:37,599 --> 00:29:38,539 Vamos a ver 738 00:29:38,539 --> 00:29:40,900 Si, pero aparte 739 00:29:40,900 --> 00:29:42,099 Cajamos 740 00:29:42,099 --> 00:29:48,440 Vale, pues venga 741 00:29:48,440 --> 00:29:50,579 ejemplo clase profesores 742 00:29:50,579 --> 00:29:52,519 pues las clases que hace uno 743 00:29:52,519 --> 00:29:54,839 las primeras que hace son las entidades 744 00:29:54,839 --> 00:29:56,799 que ha identificado, porque si no luego 745 00:29:56,799 --> 00:29:58,460 no puede hacer un main que trabaje con ellas 746 00:29:58,460 --> 00:30:00,900 bueno, pues vamos a hacer primero nuestra clase 747 00:30:00,900 --> 00:30:01,619 profesor 748 00:30:01,619 --> 00:30:09,380 no puedo crear varias clases 749 00:30:09,380 --> 00:30:10,119 dentro del mismo 750 00:30:10,119 --> 00:30:13,279 fichero, sí, pero 751 00:30:13,279 --> 00:30:16,619 puedes, lo que pasa es que 752 00:30:16,619 --> 00:30:19,400 no pueden tener el public delante 753 00:30:19,400 --> 00:30:20,880 y 754 00:30:20,880 --> 00:30:23,960 no, porque 755 00:30:23,960 --> 00:30:26,660 una clase public es obligatorio 756 00:30:26,660 --> 00:30:28,619 que el nombre de la clase sea igual que el del fichero 757 00:30:28,619 --> 00:30:30,359 entonces si tuvieras varias public 758 00:30:30,359 --> 00:30:31,700 delante tendrías un problema 759 00:30:31,700 --> 00:30:34,319 entonces puedes declarar varias 760 00:30:34,319 --> 00:30:36,539 en un fichero y que public sea solo una 761 00:30:36,539 --> 00:30:38,519 y esa sí puede llamar a las otras 762 00:30:38,519 --> 00:30:40,319 de dentro del mismo fichero 763 00:30:40,319 --> 00:30:42,420 sí, pero tú puedes llamar a cualquiera 764 00:30:42,420 --> 00:30:43,299 aunque no esté en el mismo fichero 765 00:30:43,299 --> 00:30:45,579 incluso las que no son public 766 00:30:45,579 --> 00:30:48,440 claro, si está en el mismo paquete 767 00:30:48,440 --> 00:30:50,299 vale, todo esto ya lo vamos incorporando 768 00:30:50,299 --> 00:30:55,579 De todas formas, como pauta, lo deseable es una clase en cada fichero, ¿vale? 769 00:30:55,579 --> 00:30:57,519 Porque luego va a quedar mucho más organizado. 770 00:30:57,619 --> 00:31:01,779 Cuando tú abres un proyecto de alguien, ver todas las clases en diferentes... 771 00:31:01,779 --> 00:31:04,079 Porque es que si no, vas a verlo aquí en el explorador de proyectos, 772 00:31:04,140 --> 00:31:07,839 vas a ver el ficherito.java, que dentro tiene muchas clases. 773 00:31:08,140 --> 00:31:11,059 Entonces, lo ideal es tener una clase por fichero y así lo ves. 774 00:31:12,000 --> 00:31:13,420 Claro, siempre se hace así, ¿vale? 775 00:31:13,859 --> 00:31:15,039 Venga, pues entonces. 776 00:31:16,619 --> 00:31:18,200 Pues ahora, la clase profesor. 777 00:31:18,200 --> 00:31:22,289 de hecho como el public, no lo he puesto ahí 778 00:31:22,289 --> 00:31:24,049 el public ni lo quiero, lo quito 779 00:31:24,049 --> 00:31:25,930 porque no sabemos lo que significa 780 00:31:25,930 --> 00:31:28,190 vale, hemos dicho que 781 00:31:28,190 --> 00:31:30,789 tres propiedades, dos de ellas 782 00:31:30,789 --> 00:31:31,750 string 783 00:31:31,750 --> 00:31:36,859 y una de ellas 784 00:31:36,859 --> 00:31:38,440 double 785 00:31:38,440 --> 00:31:41,140 pues sale, esta clase 786 00:31:41,140 --> 00:31:43,099 está hecha, muy simple 787 00:31:43,099 --> 00:31:44,099 porque no tiene 788 00:31:44,099 --> 00:31:47,200 métodos, cosas que se puedan hacer con los 789 00:31:47,200 --> 00:31:48,940 profesores, bueno ya iremos incorporando 790 00:31:48,940 --> 00:31:51,519 vale, pues entonces ahora ya vamos a hacer una aplicación 791 00:31:51,519 --> 00:31:52,720 que trabaja con esto 792 00:31:52,720 --> 00:31:55,119 Pues ahora ya 793 00:31:55,119 --> 00:31:56,039 No es mi clase 794 00:31:56,039 --> 00:32:04,490 Sí, lo estoy metiendo todo en el mismo paquete 795 00:32:04,490 --> 00:32:06,130 Todo en el mismo 796 00:32:06,130 --> 00:32:07,490 De hecho, como estoy quitando los public 797 00:32:07,490 --> 00:32:08,529 Tienen que estar todos en el mismo 798 00:32:08,529 --> 00:32:15,990 La cosa azul esta 799 00:32:15,990 --> 00:32:16,930 Sí 800 00:32:16,930 --> 00:32:20,690 Te estará avisando 801 00:32:20,690 --> 00:32:21,690 Supongo que no es public 802 00:32:21,690 --> 00:32:23,990 Pero vamos, ya veremos la implicación de todo eso 803 00:32:23,990 --> 00:32:25,309 Vale 804 00:32:25,309 --> 00:32:30,190 Pues venga, nuestra aplicación de profesores 805 00:32:30,190 --> 00:32:31,730 Ay, no he marcado que pusiera el main 806 00:32:31,730 --> 00:32:37,960 Si pones main contra espacio 807 00:32:37,960 --> 00:32:38,779 También te lo rellena 808 00:32:38,779 --> 00:32:41,079 Ay, que listos sois, a ver 809 00:32:41,079 --> 00:32:45,819 Mira, muy bien, esto me va a ahorrar mucho trabajo 810 00:32:45,819 --> 00:32:46,279 En el futuro 811 00:32:46,279 --> 00:32:48,460 Vale, pues entonces 812 00:32:48,460 --> 00:32:49,940 Esto 813 00:32:49,940 --> 00:32:52,980 Que te sientes mal 814 00:32:52,980 --> 00:32:55,980 Ah, durante 815 00:32:55,980 --> 00:32:58,240 Oye, cada uno tiene sus 816 00:32:58,240 --> 00:32:59,900 ¿Habrá cosas en las que tú seas un crack? 817 00:33:00,880 --> 00:33:01,140 Claro 818 00:33:01,140 --> 00:33:04,119 Bueno 819 00:33:04,119 --> 00:33:09,039 Venga 820 00:33:09,039 --> 00:33:12,279 Somos todos muy listos 821 00:33:12,279 --> 00:33:13,460 A ver 822 00:33:13,460 --> 00:33:16,740 Venga 823 00:33:16,740 --> 00:33:20,000 Esto ya sí es una aplicación 824 00:33:20,000 --> 00:33:21,059 Que se va a ejecutar 825 00:33:21,059 --> 00:33:22,660 Esto si uno ve esto 826 00:33:22,660 --> 00:33:24,220 Y aunque haya métodos aquí dentro 827 00:33:24,220 --> 00:33:25,960 Con código, cuando ya lo sabamos 828 00:33:25,960 --> 00:33:27,839 Esto no es nada que se esté ejecutando 829 00:33:27,839 --> 00:33:30,200 esto es una plantilla, una descripción 830 00:33:30,200 --> 00:33:32,079 y ahora ya esto sí 831 00:33:32,079 --> 00:33:33,920 es algo que se va a ejecutar 832 00:33:33,920 --> 00:33:36,880 entonces aquí ya hay profesores reales 833 00:33:36,880 --> 00:33:38,539 aquí no hay profesores 834 00:33:38,539 --> 00:33:40,380 aquí no hay nada, aquí sí va a haber 835 00:33:40,380 --> 00:33:41,700 un profesor real, vale 836 00:33:41,700 --> 00:33:44,000 pues ¿qué es un profesor real? 837 00:33:44,740 --> 00:33:46,240 un profesor real es 838 00:33:46,240 --> 00:33:48,319 un ejemplo 839 00:33:48,319 --> 00:33:50,359 concreto de profesor, un ejemplo 840 00:33:50,359 --> 00:33:52,180 concreto, vale 841 00:33:52,180 --> 00:33:55,839 eso en programación de entrada 842 00:33:55,839 --> 00:33:56,819 a objetos se llama 843 00:33:56,819 --> 00:33:59,680 objeto o se llama instancia 844 00:33:59,680 --> 00:34:00,759 que son sinónimos 845 00:34:00,759 --> 00:34:03,299 vale, pues entonces ya tenemos 846 00:34:03,299 --> 00:34:05,539 dos, varias palabras clave 847 00:34:05,539 --> 00:34:07,200 por la ciencia de objetos, clase 848 00:34:07,200 --> 00:34:08,119 ¿qué es una clase? 849 00:34:08,900 --> 00:34:11,099 una clase es una descripción 850 00:34:11,099 --> 00:34:13,559 de las propiedades 851 00:34:13,559 --> 00:34:14,559 de una entidad 852 00:34:14,559 --> 00:34:17,159 y también de su comportamiento 853 00:34:17,159 --> 00:34:19,280 pero eso, como todavía no tenemos los métodos 854 00:34:19,280 --> 00:34:21,079 puestos, pero también lo será 855 00:34:21,079 --> 00:34:23,179 eso es una clase, una clase es 856 00:34:23,179 --> 00:34:23,980 una plantilla 857 00:34:23,980 --> 00:34:26,500 puesta en un fichero Java 858 00:34:26,500 --> 00:34:29,099 que describe cómo es una entidad 859 00:34:29,099 --> 00:34:31,960 y qué cosas puede hacer aquí 860 00:34:31,960 --> 00:34:32,880 a través de sus métodos. 861 00:34:33,579 --> 00:34:35,780 ¿Qué es una instancia o un objeto 862 00:34:35,780 --> 00:34:36,579 que son sinónimos? 863 00:34:37,179 --> 00:34:39,179 Es un ejemplo concreto de estos. 864 00:34:39,539 --> 00:34:40,599 Un ejemplo concreto. 865 00:34:41,840 --> 00:34:43,500 La instancia o el objeto 866 00:34:43,500 --> 00:34:47,420 solo existe en un programa en ejecución. 867 00:34:47,860 --> 00:34:48,460 Solo existe. 868 00:34:49,260 --> 00:34:50,380 Cuando uno está desarrollando 869 00:34:50,380 --> 00:34:51,900 y tiene los ficheritos ahí, 870 00:34:52,380 --> 00:34:53,420 lo único que tiene son clases. 871 00:34:53,980 --> 00:34:55,880 ¿vale? Cuando ya llama la máquina 872 00:34:55,880 --> 00:34:57,840 virtual para que 873 00:34:57,840 --> 00:34:59,159 el main arranque 874 00:34:59,159 --> 00:35:01,780 y empiece a hacer cosas desde aquí, 875 00:35:02,340 --> 00:35:04,300 ahora ya tiene un programa en ejecución. 876 00:35:04,820 --> 00:35:05,920 Cuando ya hemos 877 00:35:05,920 --> 00:35:07,780 llamado a la máquina virtual, se ha venido 878 00:35:07,780 --> 00:35:09,880 aquí y ha empezado a ejecutar. Ahí ya 879 00:35:09,880 --> 00:35:11,880 sí tenemos un programa en ejecución. Bueno, pues 880 00:35:11,880 --> 00:35:13,340 cuando ya hay un programa en ejecución, 881 00:35:13,880 --> 00:35:15,900 ahí es donde tiene sentido 882 00:35:15,900 --> 00:35:17,820 que existan ya los objetos o 883 00:35:17,820 --> 00:35:19,719 las instancias, porque ahí ya tengo los 884 00:35:19,719 --> 00:35:21,420 profesores reales de mi aplicación. 885 00:35:23,039 --> 00:35:23,960 ¿Vale? Antes 886 00:35:23,960 --> 00:35:40,179 Yo no tengo nada. Vale, pues entonces vamos a crear una instancia, objeto, como lo queráis llamar, un ejemplo concreto de profesor. Vamos a ver cómo se crea. Uno solo. Luego ya haremos 20 para hacer este pequeño programita de ver cuál es el que más gana. 887 00:35:40,179 --> 00:35:43,619 creamos un profesor 888 00:35:43,619 --> 00:35:45,579 concreto 889 00:35:45,579 --> 00:35:49,489 por ejemplo 890 00:35:49,489 --> 00:35:50,630 si te gusta Paco 891 00:35:50,630 --> 00:35:52,090 esto es lo que se llama 892 00:35:52,090 --> 00:35:54,030 instancia 893 00:35:54,030 --> 00:35:56,389 o objeto 894 00:35:56,389 --> 00:35:59,309 un profesor ya concreto 895 00:35:59,309 --> 00:36:01,250 en tiempo de ejecución 896 00:36:01,250 --> 00:36:03,309 en tiempo de ejecución es cuando el programa 897 00:36:03,309 --> 00:36:04,269 ya se está ejecutando 898 00:36:04,269 --> 00:36:07,130 tiempo de compilación es cuando 899 00:36:07,130 --> 00:36:08,150 estamos desarrollando 900 00:36:08,150 --> 00:36:11,269 tenemos tiempo de compilación 901 00:36:11,269 --> 00:36:11,750 es cuando un tío 902 00:36:11,750 --> 00:36:12,530 está aquí desarrollando 903 00:36:12,530 --> 00:36:13,889 tiempo de ejecución 904 00:36:13,889 --> 00:36:14,750 cuando ya 905 00:36:14,750 --> 00:36:15,369 he llamado yo 906 00:36:15,369 --> 00:36:15,969 a la máquina virtual 907 00:36:15,969 --> 00:36:17,030 para que se ejecuten las cosas 908 00:36:17,030 --> 00:36:18,050 vale 909 00:36:18,050 --> 00:36:19,110 pues una instancia 910 00:36:19,110 --> 00:36:19,769 un objeto 911 00:36:19,769 --> 00:36:20,650 un profesor concreto 912 00:36:20,650 --> 00:36:22,510 aparece en tiempo de ejecución 913 00:36:22,510 --> 00:36:23,409 cuando ya este mail 914 00:36:23,409 --> 00:36:24,190 se esté ejecutando 915 00:36:24,190 --> 00:36:25,269 bueno 916 00:36:25,269 --> 00:36:26,730 pues como hago aparecer 917 00:36:26,730 --> 00:36:27,369 un profesor 918 00:36:27,369 --> 00:36:28,849 pues resulta 919 00:36:28,849 --> 00:36:29,750 que una instancia 920 00:36:29,750 --> 00:36:30,969 o un objeto concreto 921 00:36:30,969 --> 00:36:32,510 es también una variable 922 00:36:32,510 --> 00:36:33,670 lo que pasa 923 00:36:33,670 --> 00:36:34,309 es que en lugar de ser 924 00:36:34,309 --> 00:36:35,210 una variable entera 925 00:36:35,210 --> 00:36:36,730 una variable string 926 00:36:36,730 --> 00:36:37,570 es una variable 927 00:36:37,570 --> 00:36:38,630 profesor 928 00:36:38,630 --> 00:36:39,690 vale 929 00:36:39,690 --> 00:36:40,469 eso es 930 00:36:40,469 --> 00:36:40,929 es un dato 931 00:36:40,929 --> 00:36:42,510 Un profesor concreto es un dato 932 00:36:42,510 --> 00:36:45,650 Es un dato donde se guardan variables de toda la vida 933 00:36:45,650 --> 00:36:47,590 Lo que pasa es que es un dato complejo 934 00:36:47,590 --> 00:36:49,329 No es un int, no es un float 935 00:36:49,329 --> 00:36:50,550 Pero es un dato 936 00:36:50,550 --> 00:36:52,369 ¿Y de qué tipo es ese dato? 937 00:36:53,050 --> 00:36:54,769 De tipo profesor 938 00:36:54,769 --> 00:36:57,650 Luego acabo de crear, haciendo la clase 939 00:36:57,650 --> 00:36:59,130 Lo que acabo de crear 940 00:36:59,130 --> 00:37:00,849 Es un nuevo tipo de datos 941 00:37:00,849 --> 00:37:02,670 ¿Vale? 942 00:37:03,989 --> 00:37:05,289 Aparte de los que ya conozco 943 00:37:05,289 --> 00:37:06,429 He creado un tipo nuevo 944 00:37:06,429 --> 00:37:08,809 Y yo ahora ya de aquí declaro 945 00:37:08,809 --> 00:37:10,210 Las variables que me den la gana 946 00:37:10,670 --> 00:37:12,889 Por ejemplo, vamos a crear un primer profesor. 947 00:37:15,110 --> 00:37:18,610 Vale, pues con esto he declarado una variable 948 00:37:18,610 --> 00:37:20,329 con el nombre que a mí me ha dado la gana. 949 00:37:21,329 --> 00:37:24,650 Y esta variable, siempre que declaramos una variable en Java, 950 00:37:24,769 --> 00:37:26,710 sabemos que hay que poner el tipo al que pertenece. 951 00:37:27,590 --> 00:37:29,150 Pues ¿a qué tipo pertenece esta variable? 952 00:37:29,690 --> 00:37:30,469 A este. 953 00:37:31,809 --> 00:37:32,849 ¿Eso qué significa? 954 00:37:32,929 --> 00:37:35,769 Que esto es un tipo complejo, porque tiene cosas dentro. 955 00:37:37,090 --> 00:37:37,269 ¿Vale? 956 00:37:37,329 --> 00:37:39,909 Luego ahora ya tenemos dos tipos de datos. 957 00:37:40,250 --> 00:37:40,789 Y solo dos. 958 00:37:41,210 --> 00:37:41,530 Bueno, no. 959 00:37:41,590 --> 00:37:43,909 tres, pero bueno, eso ya más adelante, los enumerados 960 00:37:43,909 --> 00:37:45,090 seríamos 961 00:37:45,090 --> 00:37:47,070 los que podríamos llamar a través de... justo 962 00:37:47,070 --> 00:37:48,730 vale, entonces 963 00:37:48,730 --> 00:37:51,190 tenemos tipos primitivos 964 00:37:51,190 --> 00:37:53,610 los que hemos visto, byte, short, int, long 965 00:37:53,610 --> 00:37:55,730 double, float, boolean y char, tipos primitivos 966 00:37:55,730 --> 00:37:57,449 y tipos objeto 967 00:37:57,449 --> 00:37:59,710 de los tipos objeto hemos visto 968 00:37:59,710 --> 00:38:01,710 ya string y acabamos de crear 969 00:38:01,710 --> 00:38:03,670 uno, pues hemos creado un tipo objeto 970 00:38:03,670 --> 00:38:05,630 profesor y podríamos crear 971 00:38:05,630 --> 00:38:07,610 200.000, entonces 972 00:38:07,610 --> 00:38:09,329 de ese tipo que hemos creado 973 00:38:09,329 --> 00:38:11,389 yo declaro las variables que yo quiera 974 00:38:11,389 --> 00:38:13,389 como si quiero declarar dos variables 975 00:38:13,389 --> 00:38:15,730 profesor, ala, he declarado 976 00:38:15,730 --> 00:38:17,809 dos variables profesor, y estos van a ser 977 00:38:17,809 --> 00:38:19,969 dos ejemplos concretos de profesores 978 00:38:19,969 --> 00:38:21,550 como variables 979 00:38:21,550 --> 00:38:23,789 string, tú de variables string puedes crear todas las variables 980 00:38:23,789 --> 00:38:25,570 que quieras, pero todas son del tipo string 981 00:38:25,570 --> 00:38:27,789 pues de profesores puedes crear 982 00:38:27,789 --> 00:38:29,510 todos los que quieras, claro, entonces 983 00:38:29,510 --> 00:38:31,630 ahora este profesor es un tipo que 984 00:38:31,630 --> 00:38:33,510 tiene dentro cosas, pues habrá que ver cómo 985 00:38:33,510 --> 00:38:34,650 me meto en sus cosas 986 00:38:34,650 --> 00:38:37,389 al final coge las cosas de las otras que hay 987 00:38:37,389 --> 00:38:39,030 claro, claro, claro 988 00:38:39,030 --> 00:38:40,909 es como ponerle una carcasa 989 00:38:40,909 --> 00:38:46,369 Justo, un tipo objeto es un montón de tipos primitivos envueltos en una carcasa. 990 00:38:47,010 --> 00:38:49,630 Pero como a ti te interesa esa combinación concreta, 991 00:38:50,650 --> 00:38:52,530 como a ti te interesa esa combinación, 992 00:38:53,090 --> 00:38:56,130 pues coges esa combinación de tipos primitivos y a una carcasa, ¿vale? 993 00:38:56,789 --> 00:38:57,349 Venga. 994 00:39:01,429 --> 00:39:06,429 Vale, entonces, a ver, esta es mi variable. 995 00:39:07,110 --> 00:39:09,769 Yo aquí ya voy a meter ejemplos concretos de profesores. 996 00:39:09,769 --> 00:39:12,349 ejemplos concretos, esta es una variable 997 00:39:12,349 --> 00:39:17,929 vale, los tipos objeto tienen una peculiaridad 998 00:39:17,929 --> 00:39:21,469 respecto a los tipos primitivos, que ya le hemos dicho algunas veces 999 00:39:21,469 --> 00:39:26,130 y es que en realidad esta variable es una dirección de memoria 1000 00:39:26,130 --> 00:39:29,849 que está apuntando a la zona 1001 00:39:29,849 --> 00:39:33,010 donde están ya todos esos primitivos, todos esos datos 1002 00:39:33,010 --> 00:39:36,070 vale, entonces cuando hemos hecho esta declaración 1003 00:39:36,070 --> 00:39:39,349 con esta declaración de profesor1 1004 00:39:39,349 --> 00:39:41,449 lo único que hemos hecho es 1005 00:39:41,449 --> 00:39:42,670 declarar esta variable 1006 00:39:42,670 --> 00:39:45,250 que se llama 1007 00:39:45,250 --> 00:39:47,429 profesor1 1008 00:39:47,429 --> 00:39:50,090 que es Paco. 1009 00:39:50,210 --> 00:39:51,150 Joder con Paco, ¿eh? 1010 00:39:51,449 --> 00:39:52,389 ¿Qué te habrá hecho Paco? 1011 00:39:53,090 --> 00:39:55,150 Y esto es una dirección de memoria 1012 00:39:55,150 --> 00:39:57,030 y es una dirección de memoria 1013 00:39:57,030 --> 00:39:59,510 pero yo aquí en la dirección no puedo meter los datos 1014 00:39:59,510 --> 00:40:01,510 no puedo meter el nombre, el IND 1015 00:40:01,510 --> 00:40:02,230 es una dirección. 1016 00:40:02,590 --> 00:40:04,829 ¿Esta dirección de memoria a dónde está apuntando? 1017 00:40:04,829 --> 00:40:08,510 Claro, ahora mismo 1018 00:40:08,510 --> 00:40:09,949 Todavía a nada 1019 00:40:09,949 --> 00:40:12,730 Ahora mismo es null, está apuntando a la nada 1020 00:40:12,730 --> 00:40:15,090 Está apuntando a la nada 1021 00:40:15,090 --> 00:40:16,829 Con esas dos líneas que yo he hecho 1022 00:40:16,829 --> 00:40:19,170 He hecho esto en memoria 1023 00:40:19,170 --> 00:40:21,010 Con lo cual 1024 00:40:21,010 --> 00:40:27,130 A ver, espera, pero tendré que crear el espacio 1025 00:40:27,130 --> 00:40:28,489 En memoria, esto es como el array 1026 00:40:28,489 --> 00:40:30,389 Cuando declaramos un array 1027 00:40:30,389 --> 00:40:32,929 Sin más, sin poner 1028 00:40:32,929 --> 00:40:34,590 Todavía el new int, no sé qué 1029 00:40:34,590 --> 00:40:36,550 Decíamos, he creado una dirección 1030 00:40:36,550 --> 00:40:37,730 Que va a la nada 1031 00:40:37,730 --> 00:40:40,690 Los de atrás, que se callen 1032 00:40:40,690 --> 00:40:43,369 Si yo ya quiero que la array exista 1033 00:40:43,369 --> 00:40:44,289 Para meter datos 1034 00:40:44,289 --> 00:40:46,389 Tenemos que hacer el new bla bla bla 1035 00:40:46,389 --> 00:40:48,889 Eso era porque la array era un objeto 1036 00:40:48,889 --> 00:40:50,070 Pues esto igual 1037 00:40:50,070 --> 00:40:52,949 Con esto que yo he hecho aquí, profesor1 1038 00:40:52,949 --> 00:40:54,630 He creado esto 1039 00:40:54,630 --> 00:40:56,250 Una dirección de memoria 1040 00:40:56,250 --> 00:40:58,250 Llamada profesor1 que va a la nada 1041 00:40:58,250 --> 00:40:59,769 Pero a eso no me vale 1042 00:40:59,769 --> 00:41:02,869 Quiero el espacio para guardar ya el string 1043 00:41:02,869 --> 00:41:05,210 el nombre, el in, todo, quiero el espacio 1044 00:41:05,210 --> 00:41:06,670 pues me falta hacer algo 1045 00:41:06,670 --> 00:41:08,730 me falta hacer algo, y ese algo 1046 00:41:08,730 --> 00:41:10,269 de crear el espacio, ¿cómo se hace? 1047 00:41:11,170 --> 00:41:11,929 pues como 1048 00:41:11,929 --> 00:41:14,929 eso, pues muy parecido a como 1049 00:41:14,929 --> 00:41:16,510 hacíamos con el array, así 1050 00:41:16,510 --> 00:41:17,570 punto pelota 1051 00:41:17,570 --> 00:41:20,789 ya está, no, el Paco todavía no, Paco 1052 00:41:20,789 --> 00:41:21,429 tiene que esperar 1053 00:41:21,429 --> 00:41:24,730 si me ha quedado claro que se había dado más Paco 1054 00:41:24,730 --> 00:41:25,969 si tú por eso no sufres 1055 00:41:25,969 --> 00:41:30,789 claro, entonces, ahora ya 1056 00:41:30,789 --> 00:41:32,269 después de haber hecho el new 1057 00:41:32,269 --> 00:41:34,050 nombre de la clase 1058 00:41:34,050 --> 00:41:35,429 nombre de la clase 1059 00:41:35,429 --> 00:41:37,449 y paréntesis vacíos 1060 00:41:37,449 --> 00:41:40,269 que podrían no ser vacíos 1061 00:41:40,269 --> 00:41:41,989 pero esto lo iremos añadiendo, etcétera, etcétera 1062 00:41:41,989 --> 00:41:43,630 ahora ya 1063 00:41:43,630 --> 00:41:45,570 con esto ya sí que he conseguido 1064 00:41:45,570 --> 00:41:47,409 que ese null desaparezca 1065 00:41:47,409 --> 00:41:49,809 y ahora ya tengo ahí 1066 00:41:49,809 --> 00:41:53,420 un espacio 1067 00:41:53,420 --> 00:41:54,420 precioso 1068 00:41:54,420 --> 00:41:57,059 y ese espacio ¿para quién es? 1069 00:41:57,619 --> 00:41:59,619 para tantas variables como propiedades 1070 00:41:59,619 --> 00:42:01,019 en este caso para tres 1071 00:42:01,019 --> 00:42:03,440 para el nombre, para el nif 1072 00:42:03,440 --> 00:42:05,440 y para el s, ahora ya sí que habré 1073 00:42:05,440 --> 00:42:07,360 creado aquí espacio para el nombre 1074 00:42:07,360 --> 00:42:09,599 habré creado 1075 00:42:09,599 --> 00:42:10,380 aquí espacio 1076 00:42:10,380 --> 00:42:12,320 para el nif 1077 00:42:12,320 --> 00:42:15,280 y habré creado 1078 00:42:15,280 --> 00:42:16,119 aquí espacio 1079 00:42:16,119 --> 00:42:18,219 para el suelo 1080 00:42:18,219 --> 00:42:21,480 ahora ya sí, después de haber hecho el new 1081 00:42:21,480 --> 00:42:23,300 he quedado un espacio con sus 1082 00:42:23,300 --> 00:42:25,239 tres casillitas, y cada casillita tiene 1083 00:42:25,239 --> 00:42:26,820 su nombre 1084 00:42:26,820 --> 00:42:28,360 el que yo haya puesto en la clase 1085 00:42:28,360 --> 00:42:31,280 como esto se llamaba 1086 00:42:31,280 --> 00:42:33,420 en la clase a esta propiedad le ha llamado nombre? 1087 00:42:34,360 --> 00:42:35,420 Pues esta casillita, 1088 00:42:35,500 --> 00:42:37,219 ahora veremos cómo acceder, se llamará nombre. 1089 00:42:38,019 --> 00:42:39,420 ¿Cómo a esta propiedad le ha llamado 1090 00:42:39,420 --> 00:42:41,340 NIF? Pues esta casillita, ahora veremos 1091 00:42:41,340 --> 00:42:43,260 cómo acceder, se llama NIF. ¿Y cómo a esta 1092 00:42:43,260 --> 00:42:45,400 propiedad le ha llamado sueldo? Pues a esta 1093 00:42:45,400 --> 00:42:47,480 casillita, ahora veremos cómo acceder, se llama sueldo. 1094 00:42:47,800 --> 00:42:49,460 Ahora ya sí, ya tenemos ahí un ejemplo 1095 00:42:49,460 --> 00:42:51,019 concreto, ¿vale? 1096 00:42:51,880 --> 00:42:53,559 Un espacio de memoria. Y de estos 1097 00:42:53,559 --> 00:42:55,360 puedo hacer mil. Y cada uno 1098 00:42:55,360 --> 00:42:57,420 será una dirección apuntando a su zona. 1099 00:42:57,539 --> 00:42:59,480 Una dirección apuntando a su zona. Puedo hacer 1100 00:42:59,480 --> 00:43:01,539 mil, tantos profesores como 1101 00:43:01,539 --> 00:43:02,639 mi aplicación necesite 1102 00:43:02,639 --> 00:43:03,840 ¿vale? 1103 00:43:05,800 --> 00:43:07,840 entonces, todo esto 1104 00:43:07,840 --> 00:43:09,800 es lo que 1105 00:43:09,800 --> 00:43:11,980 tenéis que ir memorizando 1106 00:43:11,980 --> 00:43:13,699 claro, ya 1107 00:43:13,699 --> 00:43:15,659 desde ya, o desde dentro de cinco 1108 00:43:15,659 --> 00:43:17,599 minutos, ya no puede ser 1109 00:43:17,599 --> 00:43:19,480 que alguien no sepa que crear 1110 00:43:19,480 --> 00:43:21,340 un objeto se hace con el new 1111 00:43:21,340 --> 00:43:23,119 el nombre de la clase 1112 00:43:23,119 --> 00:43:25,539 y los paréntesis, porque eso ya es 1113 00:43:25,539 --> 00:43:26,880 cuestión de memorizarlo, nada más 1114 00:43:26,880 --> 00:43:28,780 ¿vale? 1115 00:43:28,780 --> 00:43:46,960 Entonces ahora ya tengo mi profesor ahí, pero mi profesor está al pobre sin datos, no tiene nada. Estas casillitas están vacías, este profesor no tiene nada. Vale, pues ¿cómo accedemos a sus casillitas? ¿Cómo accedemos a sus celditas, a sus casillitas? Pues accedemos con el puntito. 1116 00:43:46,960 --> 00:43:52,800 Yo ahora pongo ya mi nombre de variable, profesor1, punto, nombre. 1117 00:43:53,739 --> 00:43:58,360 Esta es, casillita nombre del objeto profesor1. 1118 00:43:59,000 --> 00:44:03,239 Pues a la casillita nombre del objeto profesor1 le llamamos Paco. 1119 00:44:04,639 --> 00:44:06,760 Y ya nos hemos quedado satisfechos para todo el día. 1120 00:44:07,699 --> 00:44:07,940 Vale. 1121 00:44:08,860 --> 00:44:10,719 Era Fernando, don Francisco. 1122 00:44:11,159 --> 00:44:12,719 Al siguiente le llamamos Fernando. 1123 00:44:13,239 --> 00:44:16,679 A ver, también se pueden llamar Juanita, Pepita o Eva. 1124 00:44:16,960 --> 00:44:19,280 Que no solo hay hombres en el mundo 1125 00:44:19,280 --> 00:44:21,719 Tienes toda razón 1126 00:44:21,719 --> 00:44:22,480 Me has pillado 1127 00:44:22,480 --> 00:44:23,360 Me has pillado 1128 00:44:23,360 --> 00:44:24,900 No, pero como te has dicho 1129 00:44:24,900 --> 00:44:25,719 Que era una clase de profesor 1130 00:44:25,719 --> 00:44:26,440 Y una clase de profesor 1131 00:44:26,440 --> 00:44:27,219 No, no, no 1132 00:44:27,219 --> 00:44:30,559 Profesor 1133 00:44:30,559 --> 00:44:32,460 Profesor, sí 1134 00:44:32,460 --> 00:44:34,719 Vale 1135 00:44:34,719 --> 00:44:37,179 Que quiero además ponerle 1136 00:44:37,179 --> 00:44:38,320 Un NIF 1137 00:44:38,320 --> 00:44:41,159 Pues le pongo un NIF 1138 00:44:41,159 --> 00:44:45,460 Que quiero además ponerle un sueldo 1139 00:44:45,460 --> 00:44:52,710 Poco a poco, poco a poco 1140 00:44:52,710 --> 00:44:54,030 No te precipites 1141 00:44:54,030 --> 00:44:56,670 Todo va a acabar encajando 1142 00:44:56,670 --> 00:44:57,550 Perfectamente 1143 00:44:57,550 --> 00:45:00,070 Y al final vais a saberlo todo 1144 00:45:00,070 --> 00:45:01,510 Todo 1145 00:45:01,510 --> 00:45:06,429 Claro, o sea, está fenomenal 1146 00:45:06,429 --> 00:45:07,230 Que lo veáis adelantando 1147 00:45:07,230 --> 00:45:09,329 Pero yo lo que os digo es que 1148 00:45:09,329 --> 00:45:10,949 Poco a poco 1149 00:45:10,949 --> 00:45:12,829 Y en el orden correcto 1150 00:45:12,829 --> 00:45:15,389 Vamos a ir incorporando 1151 00:45:15,389 --> 00:45:16,949 Todo para que al final lo sepáis 1152 00:45:16,949 --> 00:45:18,750 todo lo dejaba 1153 00:45:18,750 --> 00:45:20,030 del mundo 1154 00:45:20,030 --> 00:45:23,090 vale, pues este profesor ya está 1155 00:45:23,090 --> 00:45:25,230 y este es un ejemplo concreto, esto es lo que se llama 1156 00:45:25,230 --> 00:45:27,309 una instancia, mi instancia profesor 1 1157 00:45:27,309 --> 00:45:29,150 que en memoria es esto y tiene aquí su dato 1158 00:45:29,150 --> 00:45:30,329 6.600 pavos 1159 00:45:30,329 --> 00:45:31,309 como cobra pavo 1160 00:45:31,309 --> 00:45:35,170 a ver, que son 1161 00:45:35,170 --> 00:45:36,369 pesos mexicanos 1162 00:45:36,369 --> 00:45:39,849 no son euros 1163 00:45:39,849 --> 00:45:42,929 pues no sé 1164 00:45:42,929 --> 00:45:45,150 como no sea un profesor del master 1165 00:45:45,150 --> 00:45:46,630 de... 1166 00:45:46,630 --> 00:45:47,730 Claro. 1167 00:45:49,909 --> 00:45:51,170 Sí, si es de un 1168 00:45:51,170 --> 00:45:52,889 chiringuito de estos... 1169 00:45:52,889 --> 00:45:56,590 Bueno, pues 1170 00:45:56,590 --> 00:45:59,010 ya está, como son y 15, 1171 00:45:59,269 --> 00:46:01,170 ya sé que seguiríais mucho más 1172 00:46:01,170 --> 00:46:02,630 tiempo, pero vamos a parar. 1173 00:46:03,289 --> 00:46:05,070 Vale, pues esto es un ejemplo concreto, una instancia 1174 00:46:05,070 --> 00:46:06,610 de profesor. Entonces, 1175 00:46:06,829 --> 00:46:08,190 clase, hay una, 1176 00:46:08,909 --> 00:46:11,309 y luego yo hago aquí tantos profesores como quieran. 1177 00:46:11,969 --> 00:46:13,369 Y a cada uno accedo 1178 00:46:13,369 --> 00:46:15,250 a sus casillitas con 1179 00:46:15,250 --> 00:46:16,909 el nombre de la variable 1180 00:46:16,909 --> 00:46:18,969 punto la casillita, ¿vale? 1181 00:46:19,670 --> 00:46:21,170 Venga, pues luego continuamos.