1 00:00:00,000 --> 00:00:07,459 Vale, bueno, pues hasta aquí 2 00:00:07,459 --> 00:00:10,820 ya todo lo que hemos visto clarísimo, constructores incluidos. 3 00:00:11,500 --> 00:00:13,000 Pero todo lo que hemos... 4 00:00:13,000 --> 00:00:23,239 Vale, pues todos los ejercicios que hemos hecho hasta ahora 5 00:00:23,239 --> 00:00:26,519 había una sola clase. 6 00:00:27,579 --> 00:00:29,500 ¿Verdad, Mario y Daniel? 7 00:00:30,000 --> 00:00:48,799 En todos los ejercicios que hemos hecho hasta ahora había una sola clase. En todos los ejercicios que hemos hecho aquí, los pringados, solo había una clase, ¿vale? Bueno, y con eso hemos aprendido, pues, que es una clase, que son los métodos de una clase, las propiedades de los constructores, estaciar objetos, etc. 8 00:00:48,799 --> 00:01:10,560 Pero, ¿recordáis que toda esta aplicación vino por una gráfica que había dejado Manoli, muy bonita, con profesor, departamento, facultad, etcétera? Vale, pues ahí ya vimos que, obviamente, cuando nosotros hacemos una aplicación para gestionar una situación, pues habrá más de una entidad, normalmente. 9 00:01:10,560 --> 00:01:13,480 nosotros hasta ahora o solamente había una cafetera 10 00:01:13,480 --> 00:01:15,560 o solamente había, pero normalmente hay más 11 00:01:15,560 --> 00:01:16,000 de una entidad 12 00:01:16,000 --> 00:01:19,599 y las entidades 13 00:01:19,599 --> 00:01:21,579 además entre sí 14 00:01:21,579 --> 00:01:23,299 se relacionan 15 00:01:23,299 --> 00:01:25,560 si no se relacionaran 16 00:01:25,560 --> 00:01:26,780 como en la aplicación está 17 00:01:26,780 --> 00:01:29,540 William 18 00:01:29,540 --> 00:01:31,439 por fin que oigo 19 00:01:31,439 --> 00:01:32,719 vuestra voz y me distraigo 20 00:01:32,719 --> 00:01:35,140 por señas 21 00:01:35,140 --> 00:01:37,319 vale, en esta aplicación 22 00:01:37,319 --> 00:01:38,900 había cuatro entidades 23 00:01:38,900 --> 00:01:40,000 había más de una 24 00:01:40,000 --> 00:01:41,819 pero no se relacionaban entre sí. 25 00:01:42,519 --> 00:01:44,159 Los círculos eran independientes 26 00:01:44,159 --> 00:01:45,640 y cuando hacíamos cosas con círculo, 27 00:01:45,760 --> 00:01:46,719 pues hacíamos cosas con círculos. 28 00:01:46,840 --> 00:01:48,379 Los cuadrados también eran independientes. 29 00:01:48,540 --> 00:01:49,579 Cuando hacíamos cosas con cuadrados, 30 00:01:49,640 --> 00:01:50,500 hacíamos cosas con cuadrados. 31 00:01:50,579 --> 00:01:51,239 Eran independientes. 32 00:01:51,920 --> 00:01:53,480 Pero en una aplicación real, 33 00:01:54,319 --> 00:01:55,959 los conceptos con los que trabajo, 34 00:01:56,060 --> 00:01:57,620 lo normal es que se relacionen entre sí. 35 00:01:57,620 --> 00:01:59,980 Y por eso cuando hacéis modelos de entidad-relación, 36 00:02:00,640 --> 00:02:04,019 pues no solo modeláis las entidades con sus campos 37 00:02:04,019 --> 00:02:05,060 o como sea que los llaméis, 38 00:02:05,840 --> 00:02:07,319 sino las relaciones que tienen entre sí. 39 00:02:07,319 --> 00:02:09,159 vale, pues 40 00:02:09,159 --> 00:02:10,960 si volviéramos 41 00:02:10,960 --> 00:02:13,900 a nuestra aplicación 42 00:02:13,900 --> 00:02:15,900 de explicación de origen de toda la vida 43 00:02:15,900 --> 00:02:18,159 la que solamente tenía un pobre profesor 44 00:02:18,159 --> 00:02:19,960 había quitado esta cosa roja 45 00:02:19,960 --> 00:02:21,159 que está aquí, que molesta un poco 46 00:02:21,159 --> 00:02:26,539 eso, perdón 47 00:02:26,539 --> 00:02:27,479 cuando 48 00:02:27,479 --> 00:02:29,860 volvemos a la aplicación esta en la que usamos 49 00:02:29,860 --> 00:02:31,939 para explicar que teníamos una clase 50 00:02:31,939 --> 00:02:33,900 profesor con tres propiedades 51 00:02:34,500 --> 00:02:36,120 porque en esta aplicación 52 00:02:36,120 --> 00:02:38,840 de los profesores solo nos interesaba 53 00:02:38,840 --> 00:02:42,120 el nombre, el NIV y el sueldo, no nos interesaba nada más. 54 00:02:42,840 --> 00:02:45,080 Entonces luego teníamos ya aquí nuestras diferentes 55 00:02:45,080 --> 00:02:48,080 aplicaciones. Pues esta, por ejemplo, que ya es 56 00:02:48,080 --> 00:02:51,139 un instituto de 10 profesores y me sacaba 57 00:02:51,139 --> 00:02:53,539 el que más ganaba, patatín, patatán. 58 00:02:54,979 --> 00:02:57,099 Vale, pues ya está. Aplicación que lo único 59 00:02:57,099 --> 00:03:00,000 que hacía era cosas con profesores. Bueno, pues ahora 60 00:03:00,000 --> 00:03:03,120 resulta que en este instituto también la aplicación nos interesa 61 00:03:03,120 --> 00:03:07,099 gestionar los departamentos, los profesores y los 62 00:03:07,099 --> 00:03:11,020 departamentos. Vale, pues entonces vamos a tener que 63 00:03:11,020 --> 00:03:25,509 incluir otra entidad, departamento. Entonces, 64 00:03:25,849 --> 00:03:29,270 ¿qué nos interesa del departamento? Pues, por 65 00:03:29,270 --> 00:03:33,110 ejemplo, nos podría interesar, le quito el public, 66 00:03:33,909 --> 00:03:37,469 nos podría interesar el nombre del departamento, si es de informática, 67 00:03:37,610 --> 00:03:40,370 de educación física, lo que fuera. 68 00:03:43,330 --> 00:04:05,900 Y nos puede interesar del departamento, por ejemplo, dónde está ubicado, porque esta aplicación gestiona dónde vas a situar físicamente los departamentos o te permite cuando alguien te llega por conserjería, busca el departamento de no sé qué, pues el conserje le da la aplicación y te dice, está en la planta tal clase tal. 69 00:04:05,900 --> 00:04:27,680 Pues entonces, dados los requisitos de la aplicación, hemos decidido que esas son las propiedades. Bueno, pero aparte ahora ya de entidad profesor con las propiedades suyas, departamento con las propiedades suyas, las que la aplicación necesita, pues habrá algo que los relacione entre sí y esa relación habrá que modelarla de alguna manera. 70 00:04:27,680 --> 00:04:29,720 en bases de datos 71 00:04:29,720 --> 00:04:31,620 ahora mismo como todavía no estáis haciendo 72 00:04:31,620 --> 00:04:32,699 una base de datos real 73 00:04:32,699 --> 00:04:35,259 sino solamente un diagrama 74 00:04:35,259 --> 00:04:36,980 pues esa relación la hacéis 75 00:04:36,980 --> 00:04:38,660 tirando una rayita 76 00:04:38,660 --> 00:04:41,459 y poniendo pues un N, N1 77 00:04:41,459 --> 00:04:43,839 depende de esa relación como sea 78 00:04:43,839 --> 00:04:45,399 aquí 79 00:04:45,399 --> 00:04:47,300 como hacemos 80 00:04:47,300 --> 00:04:49,579 como reflejamos la idea de relación 81 00:04:49,579 --> 00:04:50,899 entre clases y departamentos 82 00:04:50,899 --> 00:04:53,500 pues no metemos nada 83 00:04:53,500 --> 00:04:55,500 nuevo a lo que ya sabemos, utilizamos 84 00:04:55,500 --> 00:04:57,319 lo que ya sabemos y como lo utilizamos 85 00:04:57,319 --> 00:04:58,860 pues primero habría que entender 86 00:04:58,860 --> 00:05:00,660 la relación como es 87 00:05:00,660 --> 00:05:03,360 Mario, porfa 88 00:05:03,360 --> 00:05:05,379 la relación como es, vale, pues 89 00:05:05,379 --> 00:05:07,240 un profesor 90 00:05:07,240 --> 00:05:09,660 pertenece a un departamento 91 00:05:09,660 --> 00:05:11,660 por ejemplo, llegamos a esa conclusión 92 00:05:11,660 --> 00:05:13,660 que un profesor pertenece a un departamento 93 00:05:14,199 --> 00:05:15,639 pues entonces ahora 94 00:05:15,639 --> 00:05:17,060 nuestro profesor 95 00:05:17,060 --> 00:05:18,779 tendría todo el sentido del mundo 96 00:05:18,779 --> 00:05:21,360 que tuviera otra propiedad dentro 97 00:05:21,360 --> 00:05:23,519 que fuera el objeto 98 00:05:23,519 --> 00:05:25,060 departamento al que pertenece 99 00:05:25,060 --> 00:05:27,339 que tuviera otra propiedad dentro 100 00:05:27,339 --> 00:05:31,720 por ejemplo esta 101 00:05:31,720 --> 00:05:35,000 entonces haciendo esta tontería 102 00:05:35,000 --> 00:05:36,120 ya hemos 103 00:05:36,120 --> 00:05:38,060 simulado esa relación 104 00:05:38,060 --> 00:05:40,339 un profesor tiene 105 00:05:40,339 --> 00:05:41,319 un departamento 106 00:05:41,319 --> 00:05:46,790 y ya está, ya no hace falta en realidad incluir más 107 00:05:46,790 --> 00:05:48,509 nuestra aplicación ya hará 108 00:05:48,509 --> 00:05:50,389 todas sus funcionalidades, sus requisitos 109 00:05:50,389 --> 00:05:52,209 y ya tendrá esta relación 110 00:05:52,209 --> 00:05:53,290 metida dentro 111 00:05:53,290 --> 00:05:55,790 entonces 112 00:05:55,790 --> 00:05:58,589 ¿qué es lo que quiero incluir aquí? 113 00:05:58,589 --> 00:06:12,670 Que las propiedades de un objeto no tienen por qué ser solamente de los tipos primitivos que conocemos, números, char, boolean o string, no tienen por qué ser solo de esos tipos. 114 00:06:13,670 --> 00:06:17,829 Una propiedad de un objeto puede ser a su vez otro objeto. 115 00:06:17,829 --> 00:06:22,899 esta relación en programación de entrada de objetos 116 00:06:22,899 --> 00:06:25,220 se llama de composición 117 00:06:25,220 --> 00:06:29,180 pues porque el profesor está compuesto 118 00:06:29,180 --> 00:06:30,500 de un departamento 119 00:06:30,500 --> 00:06:32,800 a ver, está mal en realidad 120 00:06:32,800 --> 00:06:36,379 la palabra no está muy bien usada 121 00:06:36,379 --> 00:06:39,000 porque el profesor no es que tenga dentro el departamento 122 00:06:39,000 --> 00:06:41,500 nosotros como ya sabemos lo que es un objeto 123 00:06:41,500 --> 00:06:45,500 el profesor tiene dentro una referencia 124 00:06:45,500 --> 00:06:48,300 al departamento que es un objeto aparte 125 00:06:48,300 --> 00:06:50,560 Que es un objeto aparte con sus propiedades. 126 00:06:51,000 --> 00:06:56,240 Y el profesor lo que tiene dentro es una referencia al departamento al que pertenece. 127 00:06:56,779 --> 00:06:59,939 Y a ese departamento pueden tener referencia muchos profesores. 128 00:07:00,560 --> 00:07:05,120 Por ejemplo, con que los del departamento de matemáticas cobran un 10% más de sueldo. 129 00:07:05,259 --> 00:07:05,939 Para que se actualice. 130 00:07:06,540 --> 00:07:07,180 Vale, espera. 131 00:07:07,379 --> 00:07:09,639 Ahora, con esto hemos mapeado la relación. 132 00:07:09,639 --> 00:07:13,980 Ahora ya podemos decir, vale, ¿qué funcionalidades le interesan a esta aplicación? 133 00:07:13,980 --> 00:07:30,839 Pues, por ejemplo, la podría ser subir sueldo al profesor dependiendo del departamento al que pertenezca. Si es de mates, pues le subes un 10% y si es de lengua, le subes un 15%. 134 00:07:30,839 --> 00:07:34,819 Por ejemplo, pues, venga, vamos a incluir ese método, ¿vale? 135 00:07:34,839 --> 00:07:37,920 Pero ya todo el mundo más o menos ha entendido que no pasa 136 00:07:37,920 --> 00:07:40,180 nada, que las propiedades pueden ser de tipo objeto. 137 00:07:40,560 --> 00:07:44,220 Porque ahora ya las clases son un tipo más de datos. 138 00:07:44,879 --> 00:07:49,079 Igual que cuando hacíamos el app este, aquí, pues, 139 00:07:49,779 --> 00:07:54,060 efectivamente, cafetera es una variable de tipo cafetera. 140 00:07:54,680 --> 00:07:56,699 Entonces, las clases que hacemos es como si estuviéramos 141 00:07:56,699 --> 00:07:59,959 haciendo tipos de datos nuestros, nuevos, a nuestra medida. 142 00:07:59,959 --> 00:08:02,459 que tienen dentro propiedades sencillas. 143 00:08:03,600 --> 00:08:04,040 ¿Vale? 144 00:08:06,019 --> 00:08:08,459 Pues profesor igual es un tipo de dato 145 00:08:08,459 --> 00:08:10,519 que tiene dentro una propiedad 146 00:08:10,519 --> 00:08:12,180 cuyo tipo de dato es departamento. 147 00:08:12,680 --> 00:08:14,680 Es decir, que a su vez tiene dentro cosas. 148 00:08:15,779 --> 00:08:17,920 Bueno, pues entonces el profesor se caracteriza 149 00:08:17,920 --> 00:08:20,379 por nombre, NIF, sueldo y departamento al que pertenece. 150 00:08:20,600 --> 00:08:22,459 Si se caracteriza por eso, lo tengo que meter aquí 151 00:08:22,459 --> 00:08:23,480 como propiedades. 152 00:08:24,139 --> 00:08:25,879 Y ahora ya uno programa lo que sea 153 00:08:25,879 --> 00:08:27,019 que la aplicación quiere hacer. 154 00:08:27,019 --> 00:08:30,480 por ejemplo, vamos a incluir un método 155 00:08:30,480 --> 00:08:32,419 vamos a ponerle primero 156 00:08:32,419 --> 00:08:33,059 el constructor 157 00:08:33,059 --> 00:08:36,299 ahora ya que sabemos hacer constructores y que nos facilitan 158 00:08:36,299 --> 00:08:36,700 la vida 159 00:08:36,700 --> 00:08:40,100 vamos a hacer un constructor y lo voy a generar ya 160 00:08:40,100 --> 00:08:41,679 directamente con el source 161 00:08:41,679 --> 00:08:43,940 genera constructor usando campos 162 00:08:43,940 --> 00:08:46,639 que campos, los marco todos 163 00:08:46,639 --> 00:08:48,220 pues este es 164 00:08:48,220 --> 00:08:50,120 mi constructor, le quito el super y el public 165 00:08:50,120 --> 00:08:52,039 porque no sabemos a cuento de que vienen 166 00:08:52,039 --> 00:08:56,220 ala, ya me ha hecho un constructor que recibe 167 00:08:56,220 --> 00:08:56,960 cuatro parámetros 168 00:08:56,960 --> 00:09:00,100 y uno de ellos es un objeto 169 00:09:00,100 --> 00:09:02,519 claro, uno de ellos es un objeto, no pasa nada 170 00:09:02,519 --> 00:09:03,980 y ese objeto 171 00:09:03,980 --> 00:09:05,940 sirve para inicializar 172 00:09:05,940 --> 00:09:07,759 la propiedad esta de aquí 173 00:09:07,759 --> 00:09:10,240 entonces es lo mismo 174 00:09:10,240 --> 00:09:12,320 es una propiedad igual, lo que pasa es que su tipo 175 00:09:12,320 --> 00:09:13,460 de dato es departamento 176 00:09:13,460 --> 00:09:16,620 vale, pues tenemos el constructor 177 00:09:16,620 --> 00:09:18,120 y ahora vamos a hacer un método 178 00:09:18,120 --> 00:09:22,019 para subir el sueldo, pero ahora 179 00:09:22,019 --> 00:09:23,940 ya este dependiendo del departamento 180 00:09:23,940 --> 00:09:26,139 este lo usaremos cuando quiero subirle 181 00:09:26,139 --> 00:09:28,039 el sueldo, un porcentaje cualquiera, el que sea 182 00:09:28,039 --> 00:09:29,759 y ahora vamos a hacer otro 183 00:09:29,759 --> 00:09:32,120 que sea subir 184 00:09:32,120 --> 00:09:35,809 sueldo en función 185 00:09:35,809 --> 00:09:37,710 del departamento, ¿cómo le podemos 186 00:09:37,710 --> 00:09:39,509 yo llamar a esto? 187 00:09:40,629 --> 00:09:41,850 extra sueldo departamento 188 00:09:41,850 --> 00:09:44,110 extra departamento 189 00:09:44,110 --> 00:09:46,110 venga, pues extra departamento 190 00:09:46,110 --> 00:09:50,360 vale 191 00:09:50,360 --> 00:09:54,059 entonces, a ver 192 00:09:54,059 --> 00:09:56,159 vamos a hacerlo, aquí suponemos 193 00:09:56,159 --> 00:09:57,600 extra departamento y el suministro 194 00:09:57,600 --> 00:10:05,049 vale, entonces vamos a hacerlo 195 00:10:05,049 --> 00:10:07,009 que pues eso, en función de si es 196 00:10:07,009 --> 00:10:08,970 de mates o de lengua, ya está, pues te sube 197 00:10:08,970 --> 00:10:10,929 una cosa, te sube otra, porque es un instituto 198 00:10:10,929 --> 00:10:12,250 que solo tiene mates o lengua 199 00:10:12,250 --> 00:10:15,370 esto claro, me queda una aplicación 200 00:10:15,370 --> 00:10:17,250 una clase, me va a quedar una clase 201 00:10:17,250 --> 00:10:19,350 que solo funciona si realmente tengo un instituto 202 00:10:19,350 --> 00:10:20,929 que tiene mates y lengua 203 00:10:20,929 --> 00:10:22,990 pero bueno, esto pues se podría hacer de forma 204 00:10:22,990 --> 00:10:25,330 que tú le pasas por parámetro el array de departamentos 205 00:10:25,330 --> 00:10:26,509 como sea, pero bueno, no os da igual 206 00:10:26,509 --> 00:10:27,490 ¿le pasas el departamento? 207 00:10:29,169 --> 00:10:31,070 la cosa es que pasando el departamento 208 00:10:31,070 --> 00:10:31,970 a una cosa u otra 209 00:10:31,970 --> 00:10:38,259 Sí, bueno, lo podríamos hacer 210 00:10:38,259 --> 00:10:40,240 de muchas versiones, o aquí hay que distinguir 211 00:10:40,240 --> 00:10:42,519 porque claro, si tú le pasas el departamento 212 00:10:42,519 --> 00:10:44,220 al que pertenece, vale, pero es que 213 00:10:44,220 --> 00:10:45,919 el departamento no lo tienes que pasar, pero ya está aquí dentro 214 00:10:45,919 --> 00:10:48,340 Entonces, aquí el sueldo 215 00:10:48,340 --> 00:10:50,240 sería, en función de si el profe 216 00:10:50,240 --> 00:10:52,019 es de mates o es de lengua 217 00:10:52,019 --> 00:10:53,500 le subes una cosa, le subes otra 218 00:10:53,500 --> 00:10:56,360 Entonces, pues vamos a hacer eso 219 00:10:56,360 --> 00:10:58,279 Lo podemos hacer 220 00:10:58,279 --> 00:11:00,039 con un switch case, porque en función 221 00:11:00,039 --> 00:11:04,240 de, bueno, vamos a quitar el switch case 222 00:11:04,240 --> 00:11:05,879 para que veáis más claro a lo que vamos 223 00:11:05,879 --> 00:11:27,480 Aquí, en función de, vamos a suponer, para hacerlo más sencillo, que si es de mates, le subimos 100 euros, un extra de 100 euros, y si es de lengua, le subimos 200. 224 00:11:27,480 --> 00:11:32,840 claro, entonces 225 00:11:32,840 --> 00:11:37,250 vale, pues de qué depende 226 00:11:37,250 --> 00:11:38,990 que le subamos al sueldo 100 a 200 227 00:11:38,990 --> 00:11:40,990 depende del departamento 228 00:11:40,990 --> 00:11:43,169 del nombre del departamento en el que trabaje 229 00:11:43,169 --> 00:11:45,250 ¿cuál es el nombre 230 00:11:45,250 --> 00:11:46,629 del departamento en el que trabaje? 231 00:11:47,710 --> 00:11:49,250 claro, lo tenemos aquí dentro 232 00:11:49,250 --> 00:11:51,289 guardado, porque aquí tenemos el departamento 233 00:11:51,289 --> 00:11:52,990 entero, ahí lo tenemos entero 234 00:11:52,990 --> 00:11:55,129 y de ahí yo saco 235 00:11:55,129 --> 00:11:57,210 la información que yo quiera para cada situación 236 00:11:57,210 --> 00:11:59,129 pues para este 237 00:11:59,129 --> 00:12:01,169 método en concreto, para este 238 00:12:01,169 --> 00:12:03,230 en concreto, me interesa sacar el 239 00:12:03,230 --> 00:12:03,490 nombre. 240 00:12:05,549 --> 00:12:07,350 Bueno, pues si departamento 241 00:12:07,350 --> 00:12:08,129 punto nombre 242 00:12:08,129 --> 00:12:11,009 punto equals 243 00:12:11,009 --> 00:12:16,480 mates, pues le subo esto. 244 00:12:17,480 --> 00:12:18,379 Entonces, departamento 245 00:12:18,379 --> 00:12:19,539 punto nombre, ¿qué es? 246 00:12:19,919 --> 00:12:22,179 La propiedad nombre del objeto 247 00:12:22,179 --> 00:12:24,500 departamento, que es 248 00:12:24,500 --> 00:12:26,220 propiedad del profesor. 249 00:12:30,490 --> 00:12:31,929 Que no, que departamento 250 00:12:31,929 --> 00:12:45,610 nombre, ¿vale? 251 00:12:46,450 --> 00:12:47,169 Pues entonces, 252 00:12:47,529 --> 00:12:49,009 todo es lo mismo. 253 00:12:50,289 --> 00:12:51,429 Esta es una propiedad más 254 00:12:51,429 --> 00:12:53,970 con la particularidad de que su tipo 255 00:12:53,970 --> 00:12:56,009 es un tipo de dato objeto. 256 00:12:58,240 --> 00:12:59,960 Y ahora, como es un tipo de dato objeto, 257 00:13:00,779 --> 00:13:02,919 a departamento lo que tiene dentro 258 00:13:02,919 --> 00:13:04,340 en realidad lo tengo que sacar 259 00:13:04,340 --> 00:13:05,320 a través de las propiedades. 260 00:13:05,740 --> 00:13:07,100 Porque departamento en sí, 261 00:13:07,440 --> 00:13:09,340 esto ya sabemos que es una dirección de memoria. 262 00:13:09,519 --> 00:13:10,320 Es una dirección de memoria. 263 00:13:10,879 --> 00:13:11,899 Entonces, lo que a mí me interesa 264 00:13:11,899 --> 00:13:13,620 de esta propiedad es lo que tiene dentro. 265 00:13:14,139 --> 00:13:16,360 Su nombre, su localización, lo que sea. 266 00:13:17,519 --> 00:13:18,039 Lo que sea. 267 00:13:18,039 --> 00:13:19,759 en este caso me interesaba 268 00:13:19,759 --> 00:13:21,960 el nombre del departamento del 269 00:13:21,960 --> 00:13:23,100 profesor 270 00:13:23,100 --> 00:13:25,600 si es mates, pues este 271 00:13:25,600 --> 00:13:26,759 si es lengua, no sé qué 272 00:13:26,759 --> 00:13:32,669 ¿Cómo se pasa por parámetro el nombre del departamento 273 00:13:32,669 --> 00:13:33,389 y la localización? 274 00:13:34,970 --> 00:13:36,529 ¿Pero para qué querrías pasárselo 275 00:13:36,529 --> 00:13:37,090 por parámetro? 276 00:13:38,470 --> 00:13:40,690 Tú a un método le puedes pasar por parámetro lo que quieras 277 00:13:40,690 --> 00:13:41,769 la pregunta es 278 00:13:41,769 --> 00:13:44,049 si tú le quieres pasar un nombre, ¿le pasas un string? 279 00:13:44,110 --> 00:13:45,269 No, no, perdón, estaba hablando del 280 00:13:45,269 --> 00:13:48,149 Ah, vale, ahora hacemos la aplicación 281 00:13:48,149 --> 00:13:49,149 ahora hacemos una aplicación 282 00:13:49,149 --> 00:13:51,350 fijaos lo que ha pasado, en esta aplicación 283 00:13:51,350 --> 00:13:53,110 profesores, donde tengo varias 284 00:13:53,110 --> 00:13:54,929 versiones, la app 285 00:13:54,929 --> 00:13:56,970 todas las 286 00:13:56,970 --> 00:13:59,029 que tenía, veis se me han puesto 287 00:13:59,029 --> 00:14:01,169 en rojito, buf, todas en rojo 288 00:14:01,169 --> 00:14:03,009 claro, porque yo he añadido 289 00:14:03,009 --> 00:14:04,330 aquí un constructor 290 00:14:04,330 --> 00:14:07,090 que ha pisado el sin parámetros 291 00:14:07,090 --> 00:14:09,029 con lo cual, todas mis 292 00:14:09,029 --> 00:14:10,149 versiones anteriores 293 00:14:10,149 --> 00:14:12,029 no 294 00:14:12,029 --> 00:14:15,230 pongo un sin parámetros en profesor 295 00:14:15,230 --> 00:14:16,870 claro, entonces 296 00:14:16,870 --> 00:14:19,049 todas las versiones que yo tenía 297 00:14:19,049 --> 00:14:21,309 de mi aplicación, las que hacían cosas en pruebas 298 00:14:21,309 --> 00:14:23,110 me dice el compilador, eh, este 299 00:14:23,110 --> 00:14:25,190 constructor no me vale, porque tú has 300 00:14:25,190 --> 00:14:27,230 pisado el constructor vacío 301 00:14:27,230 --> 00:14:29,269 que yo estaba usando y que no se veía 302 00:14:29,269 --> 00:14:31,370 porque estaba oculto, lo has pisado 303 00:14:31,370 --> 00:14:33,169 por uno con parámetros, con lo cual me tienes que 304 00:14:33,169 --> 00:14:35,049 pasar parámetros, vale, para que 305 00:14:35,049 --> 00:14:36,870 las aplicaciones anteriores no tenga que tocarlas todas 306 00:14:36,870 --> 00:14:38,330 vamos a decir, no pasa nada 307 00:14:38,330 --> 00:14:41,029 vamos a poner la clase profesora, aparte de este 308 00:14:41,029 --> 00:14:43,009 vamos a hacer también uno vacío 309 00:14:43,009 --> 00:14:45,169 para que las aplicaciones que lo usaban 310 00:14:45,169 --> 00:14:46,110 no se lo carguen 311 00:14:46,110 --> 00:14:48,490 no las estropee 312 00:14:48,490 --> 00:14:50,929 ala, solucionado 313 00:14:50,929 --> 00:14:53,070 ya se me han quitado todos los rojos 314 00:14:53,070 --> 00:14:54,570 ¿vale? 315 00:14:55,669 --> 00:14:57,789 normalmente se hacen varios constructores 316 00:14:57,789 --> 00:14:58,529 en una clase 317 00:14:58,529 --> 00:15:01,629 porque cada aplicación puede querer usar uno 318 00:15:01,629 --> 00:15:03,690 u otro, entonces casi siempre 319 00:15:03,690 --> 00:15:05,690 se hace uno sin parámetros 320 00:15:05,690 --> 00:15:07,389 vacío, para el que quiera instanciar 321 00:15:07,389 --> 00:15:09,629 por las buenas, y otro con 322 00:15:09,629 --> 00:15:11,250 parámetros porque es muy cómodo 323 00:15:11,250 --> 00:15:13,129 instanciar pasando propiedades 324 00:15:13,129 --> 00:15:15,409 ¿vale? normalmente se hacen dos 325 00:15:15,409 --> 00:15:17,889 vale, pues vamos a hacer una aplicación 326 00:15:17,889 --> 00:15:19,830 que ahora ya sí que crea 327 00:15:19,830 --> 00:15:22,110 un departamento, unos profesores 328 00:15:22,110 --> 00:15:23,850 y le asigna departamentos a un profesor 329 00:15:23,850 --> 00:15:25,850 y muestra cosas o lo que sea. 330 00:15:26,409 --> 00:15:28,049 Pues venga, vamos a hacernos ahora ya 331 00:15:28,049 --> 00:15:29,490 la versión 5. 332 00:15:41,659 --> 00:15:43,080 Ahora ya tengo un main 333 00:15:43,080 --> 00:15:47,419 haciendo cosas. 334 00:15:48,240 --> 00:15:50,179 Vale, pues esta aplicación 335 00:15:50,179 --> 00:15:51,000 va a 336 00:15:51,000 --> 00:15:53,580 crear un array de 337 00:15:53,580 --> 00:15:55,379 10 profesores. 338 00:15:56,600 --> 00:15:58,639 Este instituto tiene 10 profes. 339 00:16:12,820 --> 00:16:16,519 Vale, ahora 340 00:16:16,519 --> 00:16:21,429 Vamos a este 341 00:16:21,429 --> 00:16:23,509 Vamos a 342 00:16:23,509 --> 00:16:24,889 Vamos a hacer un departamento 343 00:16:24,889 --> 00:16:27,129 Un objeto departamento 344 00:16:27,129 --> 00:16:29,629 Departamento 345 00:16:29,629 --> 00:16:34,080 Un único 346 00:16:34,080 --> 00:16:36,340 Departamento de mates 347 00:16:36,340 --> 00:16:42,470 A departamento no le he puesto constructores 348 00:16:42,470 --> 00:16:43,710 Buf, que rollo 349 00:16:43,710 --> 00:16:45,730 Entonces voy a tener que hacer el de punto no se que 350 00:16:45,730 --> 00:16:47,549 Vamos a hacerle un constructor 351 00:16:47,549 --> 00:16:49,769 Con propiedades al departamento 352 00:16:49,769 --> 00:16:56,100 uno con propiedades 353 00:16:56,100 --> 00:16:57,779 con parámetros 354 00:16:57,779 --> 00:17:00,419 y voy a hacer ya 355 00:17:00,419 --> 00:17:01,779 porque es una buena costumbre 356 00:17:01,779 --> 00:17:04,440 me facilita luego los mains hacerlos como me den la gana 357 00:17:04,440 --> 00:17:06,220 vamos a hacer uno 358 00:17:06,220 --> 00:17:07,440 sin parámetros también 359 00:17:07,440 --> 00:17:10,309 hala 360 00:17:10,309 --> 00:17:16,519 hala ya tengo dos constructores 361 00:17:16,519 --> 00:17:18,740 luego ahora ya me voy a mi aplicación 362 00:17:18,740 --> 00:17:19,460 de profesores 363 00:17:19,460 --> 00:17:21,960 me voy a crear un departamento de mates 364 00:17:21,960 --> 00:17:25,759 un departamento de mates 365 00:17:25,759 --> 00:17:28,180 Que dónde va a estar, en la planta 2 366 00:17:28,180 --> 00:17:32,440 ¡Hala! Ya tengo creado un departamento 367 00:17:32,440 --> 00:17:33,980 Cuyo nombre es mates 368 00:17:33,980 --> 00:17:36,279 Porque el constructor ha utilizado 369 00:17:36,279 --> 00:17:37,940 Esto que yo le paso para inicializarlo 370 00:17:37,940 --> 00:17:39,619 Que está en la planta 2 371 00:17:39,619 --> 00:17:41,380 ¿Vale? 372 00:17:42,180 --> 00:17:43,920 Si pusiéramos 373 00:17:43,920 --> 00:17:46,299 Aquí esto 374 00:17:46,299 --> 00:17:50,180 Has creado 375 00:17:50,180 --> 00:17:55,089 Un departamento 376 00:17:55,089 --> 00:18:01,279 De nombre 377 00:18:01,279 --> 00:18:04,460 Voy a ponerlo en dos 378 00:18:04,460 --> 00:18:06,480 exista en la una parte para que no se quede tan grande 379 00:18:06,480 --> 00:18:07,279 tan 380 00:18:07,279 --> 00:18:12,660 de punto nombre 381 00:18:12,660 --> 00:18:22,650 oe colega 382 00:18:22,650 --> 00:18:27,109 punto 383 00:18:27,109 --> 00:18:30,470 localización 384 00:18:30,470 --> 00:18:38,420 vale, vamos a poner unos asteriscos 385 00:18:38,420 --> 00:18:39,480 abajo para que 386 00:18:39,480 --> 00:18:47,349 vale, entonces me he limitado 387 00:18:47,349 --> 00:18:48,529 a crear un departamento 388 00:18:48,529 --> 00:18:51,029 y voy a poner esto system out 389 00:18:51,029 --> 00:18:53,670 para ver que efectivamente se ha creado un departamento 390 00:18:53,670 --> 00:18:55,549 con ese nombre y con esa localización 391 00:18:55,549 --> 00:18:57,230 que no he tenido que inicializarlo 392 00:18:57,230 --> 00:18:59,069 porque el constructor ya lo ha hecho 393 00:18:59,069 --> 00:19:01,549 vale, el constructor 394 00:19:01,549 --> 00:19:02,289 ya lo habrá hecho 395 00:19:02,289 --> 00:19:04,490 si 396 00:19:04,490 --> 00:19:08,799 ejecutamos esto 397 00:19:08,799 --> 00:19:13,059 pues aquí está, hemos creado un departamento 398 00:19:13,059 --> 00:19:14,599 de mates que está en la planta 2 399 00:19:14,599 --> 00:19:18,549 está claro, vale 400 00:19:18,549 --> 00:19:19,569 ahora que vamos a hacer 401 00:19:19,569 --> 00:19:22,450 vamos a crear 402 00:19:22,450 --> 00:19:24,309 los profesores que estaban 403 00:19:24,309 --> 00:19:26,650 sin crear y vamos a asignarles 404 00:19:26,650 --> 00:19:27,890 a todos 405 00:19:27,890 --> 00:19:29,569 al departamento de mates 406 00:19:29,569 --> 00:19:32,089 vamos a hacer que estén todos en el departamento de mates 407 00:19:32,089 --> 00:19:33,990 pues vamos a recorrer 408 00:19:33,990 --> 00:19:35,190 la raíz de profesores 409 00:19:35,190 --> 00:19:38,289 cuidado aquí con el for each nunca jamás 410 00:19:38,289 --> 00:19:40,569 por lo que dijimos el otro día que os habéis aprendido ya en memoria 411 00:19:40,569 --> 00:19:42,450 porque el for each 412 00:19:42,450 --> 00:19:44,289 te va haciendo copias de esto 413 00:19:44,289 --> 00:19:46,470 luego si creas el objeto, el objeto lo asocia 414 00:19:46,470 --> 00:19:48,269 a la copia y no a la variable 415 00:19:48,269 --> 00:19:50,150 etcétera, con lo cual aquí tenemos que 416 00:19:50,150 --> 00:19:51,250 hacerlo con este sí o sí 417 00:19:51,250 --> 00:20:00,259 bueno, si vas a consultar, lo otro se escribe muy rápido 418 00:20:00,259 --> 00:20:07,380 por ejemplo 419 00:20:07,380 --> 00:20:09,799 bueno, consultar es coger los datos 420 00:20:09,799 --> 00:20:10,759 también para 421 00:20:10,759 --> 00:20:14,180 para asignar eso a otra variable 422 00:20:14,180 --> 00:20:15,559 eso también es consultar 423 00:20:15,559 --> 00:20:20,529 ahora, ¿qué hacemos con cada 424 00:20:20,529 --> 00:20:22,430 profesor? pues vamos 425 00:20:22,430 --> 00:20:24,470 a crear un profesor, gracias a que 426 00:20:24,470 --> 00:20:26,490 tenemos el constructor, lo podemos 427 00:20:26,490 --> 00:20:28,470 hacer con una única línea, en las versiones 428 00:20:28,470 --> 00:20:30,450 anteriores, teníamos que 429 00:20:30,450 --> 00:20:32,509 instanciarlo y ahora darle 430 00:20:32,509 --> 00:20:33,309 las propiedades 431 00:20:33,309 --> 00:20:36,230 en las versiones anteriores, ahora ya no hace falta 432 00:20:36,230 --> 00:20:38,490 tenemos el constructor, pues llamo 433 00:20:38,490 --> 00:20:39,210 al constructor 434 00:20:39,210 --> 00:20:43,900 profesor 435 00:20:43,900 --> 00:20:46,039 y a través del constructor 436 00:20:46,039 --> 00:20:47,839 ya le doy los valores iniciales 437 00:20:47,839 --> 00:20:49,299 que le vamos a poner pues 438 00:20:49,299 --> 00:20:51,440 el nombre 439 00:20:51,440 --> 00:20:53,980 no sé que iba 440 00:20:53,980 --> 00:20:55,339 primero, si nombre, DNI 441 00:20:55,339 --> 00:20:58,000 nombre, lo que importa es el orden 442 00:20:58,000 --> 00:20:59,900 aquí, primero el nombre, luego 443 00:20:59,900 --> 00:21:01,359 el NIF y luego el sueldo 444 00:21:01,359 --> 00:21:06,099 Sí 445 00:21:06,099 --> 00:21:09,700 El Eclipse te ofrece esa ayuda 446 00:21:09,700 --> 00:21:13,279 Bueno 447 00:21:13,279 --> 00:21:15,740 Lo carga el diablo 448 00:21:15,740 --> 00:21:18,019 Que a Eclipse 449 00:21:18,019 --> 00:21:19,380 Y a cualquier entorno de desarrollo 450 00:21:19,380 --> 00:21:20,220 Lo carga el diablo 451 00:21:20,220 --> 00:21:25,849 Porque le estoy pasando varios parámetros 452 00:21:25,849 --> 00:21:27,170 El primer parámetro es este 453 00:21:27,170 --> 00:21:27,829 El nombre 454 00:21:27,829 --> 00:21:30,269 El segundo parámetro que le paso al constructor 455 00:21:30,269 --> 00:21:30,970 El NIF es este 456 00:21:30,970 --> 00:21:32,609 El tercer parámetro que le paso es el sueldo 457 00:21:32,609 --> 00:21:34,769 que empiecen ganando todos 2.000 458 00:21:34,769 --> 00:21:36,710 y ahora 459 00:21:36,710 --> 00:21:38,970 ¿cuál es el tercer parámetro que le tengo 460 00:21:38,970 --> 00:21:39,430 que pasar? 461 00:21:40,150 --> 00:21:43,190 el objeto departamento al que pertenece 462 00:21:43,190 --> 00:21:44,369 le tengo que pasar un objeto 463 00:21:44,369 --> 00:21:46,710 cualquier cosa que yo le pase ahí 464 00:21:46,710 --> 00:21:48,509 que no sea un objeto departamento no vale 465 00:21:48,509 --> 00:21:50,130 le tengo que pasar un objeto 466 00:21:50,130 --> 00:21:52,789 ¿y cuál le tengo que pasar? al que yo quiera que pertenezca 467 00:21:52,789 --> 00:21:53,730 ese profesor 468 00:21:53,730 --> 00:21:57,089 bueno pues si hemos dicho que van a pertenecer todos al de mates 469 00:21:57,089 --> 00:21:59,289 pues paso este objeto que acabo de crear 470 00:21:59,289 --> 00:22:02,009 le paso este objeto 471 00:22:02,009 --> 00:22:04,369 Y ya está 472 00:22:04,369 --> 00:22:06,849 Y ya tengo los 10 profesores creados 473 00:22:06,849 --> 00:22:09,009 Todos en el único departamento que hay 474 00:22:09,009 --> 00:22:10,630 El único que hay 475 00:22:10,630 --> 00:22:13,049 Y con esas propiedades 476 00:22:13,049 --> 00:22:15,650 Vamos a 477 00:22:15,650 --> 00:22:18,210 Mostrar a los profesores 478 00:22:18,210 --> 00:22:20,269 Para ver que los ha creado 479 00:22:20,269 --> 00:22:23,079 Bien 480 00:22:23,079 --> 00:22:26,220 Ahora ya para mostrar, pues venga, vamos a hacer un for each 481 00:22:26,220 --> 00:22:27,940 Porque esto es solo 482 00:22:27,940 --> 00:22:28,799 El system out 483 00:22:28,799 --> 00:22:30,339 Como le gusta 484 00:22:30,339 --> 00:22:32,140 Vale 485 00:22:32,140 --> 00:22:35,539 profesores 486 00:22:35,539 --> 00:22:44,200 es un for que recorre 487 00:22:44,200 --> 00:22:46,400 todas las posiciones de la raíz de principio a fin 488 00:22:46,400 --> 00:22:47,940 todas, a menos que metas un break dentro 489 00:22:47,940 --> 00:22:48,680 todas 490 00:22:48,680 --> 00:22:50,900 y en cada iteración 491 00:22:50,900 --> 00:22:52,900 esta variable se va 492 00:22:52,900 --> 00:22:54,839 la crea 493 00:22:54,839 --> 00:22:57,839 esta variable solo existe el tiempo que dure el for 494 00:22:57,839 --> 00:22:59,059 ¿pero qué tipo de variable es? 495 00:22:59,640 --> 00:23:00,880 del tipo que pongas tú aquí 496 00:23:00,880 --> 00:23:03,700 y en cada iteración 497 00:23:03,700 --> 00:23:05,720 se queda con una copia 498 00:23:05,720 --> 00:23:07,160 de la 499 00:23:07,160 --> 00:23:09,539 posición en la que estés en el array 500 00:23:09,539 --> 00:23:11,400 y si le pasas ahí una variable de tipo 501 00:23:11,400 --> 00:23:12,420 profesor, la lias 502 00:23:12,420 --> 00:23:14,380 ¿cómo si le pasas una variable? ¿dónde? 503 00:23:14,380 --> 00:23:15,619 en el port 504 00:23:15,619 --> 00:23:18,720 aquí tienes que poner siempre 505 00:23:18,720 --> 00:23:19,660 un array 506 00:23:19,660 --> 00:23:22,079 pero en la izquierda si le pasas 507 00:23:22,079 --> 00:23:23,880 una variable de tipo profesor mismo 508 00:23:23,880 --> 00:23:25,500 pero que ya exista 509 00:23:25,500 --> 00:23:28,240 no, no, no, no, es una variable 510 00:23:28,240 --> 00:23:29,880 local porque es que tú la vas modificando 511 00:23:29,880 --> 00:23:33,660 No, no, no, claro 512 00:23:33,660 --> 00:23:36,000 No, es que de hecho 513 00:23:36,000 --> 00:23:37,400 Ni siquiera creo que te deje 514 00:23:37,400 --> 00:23:38,519 Imagínate que 515 00:23:38,519 --> 00:23:41,680 Claro, que yo tengo ahí una variable 516 00:23:41,680 --> 00:23:42,619 Profesor 517 00:23:42,619 --> 00:23:45,539 Y aquí digo 518 00:23:45,539 --> 00:23:48,180 No sé si reutilizaría esa para hacer eso 519 00:23:48,180 --> 00:23:49,200 Y luego 520 00:23:49,200 --> 00:23:51,759 Pero vamos, no creo que el compilador te deje hacer esto 521 00:23:51,759 --> 00:23:53,640 O sea, es una variable suya 522 00:23:53,640 --> 00:23:55,799 Nueva que tú creas solo para ese uso 523 00:23:55,799 --> 00:23:57,779 ¿Vale? 524 00:24:01,329 --> 00:24:02,609 Vale, vamos a dejarlo 525 00:24:02,609 --> 00:24:03,950 ¿Cómo estaba? Y esto fuera. 526 00:24:05,369 --> 00:24:06,730 Vale, y ahora vamos a mostrar 527 00:24:06,730 --> 00:24:07,849 de cada profesor 528 00:24:07,849 --> 00:24:10,569 p.nombre 529 00:24:10,569 --> 00:24:14,470 y vamos a mostrar el departamento en el que está. 530 00:24:16,900 --> 00:24:17,299 p. 531 00:24:18,779 --> 00:24:20,059 Para mostrar el departamento en el que está, 532 00:24:20,119 --> 00:24:22,240 ¿qué hay que mostrar? p.departamento. 533 00:24:23,099 --> 00:24:23,960 Claro, ¿qué es? 534 00:24:24,180 --> 00:24:26,039 p.departamento es el objeto entero. 535 00:24:26,880 --> 00:24:28,200 Esto es una dirección de memoria. 536 00:24:28,299 --> 00:24:29,359 Yo esto no lo puedo mostrar. 537 00:24:29,940 --> 00:24:30,960 Este es el objeto entero. 538 00:24:32,900 --> 00:24:33,960 Poder puedo, pero 539 00:24:33,960 --> 00:24:35,880 me va a mostrar una cosa rara 540 00:24:35,880 --> 00:24:37,980 que ni siquiera es una dirección, es tu string 541 00:24:37,980 --> 00:24:40,059 de object, todo eso también lo veremos 542 00:24:40,059 --> 00:24:41,839 porque me muestra esa arroba y esas cosas 543 00:24:41,839 --> 00:24:44,099 vale, pero esto es un objeto 544 00:24:44,099 --> 00:24:47,380 ya entenderás por qué 545 00:24:47,380 --> 00:24:50,019 porque todo eso tiene que ver con la herencia, muy interesante 546 00:24:50,019 --> 00:24:50,539 y bonito 547 00:24:50,539 --> 00:24:54,099 es que nos quedan millones de miles 548 00:24:54,099 --> 00:24:55,539 de cientos de cosas que dar 549 00:24:55,539 --> 00:24:56,799 entonces, insisto 550 00:24:56,799 --> 00:24:59,900 pero tenemos todo el curso, no pasa nada 551 00:24:59,900 --> 00:25:02,200 pero insisto, ya sé que soy la más pesada 552 00:25:02,200 --> 00:25:03,920 del mundo. Me lo dicen 553 00:25:03,920 --> 00:25:06,039 en casa todo el rato. Entonces, 554 00:25:06,119 --> 00:25:08,059 como ya he asumido que soy la más pesada 555 00:25:08,059 --> 00:25:10,160 del mundo, me da igual, ya, no voy a cambiar. 556 00:25:11,019 --> 00:25:11,960 Claro, sí. 557 00:25:12,859 --> 00:25:13,880 Bueno, me dice mi hija, ¿eh? 558 00:25:14,460 --> 00:25:15,880 Si me lo dijera el resto del mundo, ya. 559 00:25:16,960 --> 00:25:18,119 Vale, entonces, como soy la más 560 00:25:18,119 --> 00:25:20,220 pesada del mundo, ya me da igual, no tengo nada que perder. 561 00:25:20,599 --> 00:25:21,519 Entonces, insisto, 562 00:25:22,240 --> 00:25:24,220 tenéis que aprendéroslo todo. 563 00:25:24,839 --> 00:25:26,180 No vale con que lo entendáis 564 00:25:26,180 --> 00:25:27,480 aquí, no vale. 565 00:25:28,039 --> 00:25:30,019 Luego tenéis que aprendéroslo en casa, porque 566 00:25:30,019 --> 00:25:32,240 nos quedan 200.000 millones de ladrillos. 567 00:25:32,700 --> 00:25:33,880 ¿Vale? Y como todo esto no esté 568 00:25:33,880 --> 00:25:34,700 a... Vale, vale, vale. 569 00:25:36,000 --> 00:25:37,640 Se va todo al 570 00:25:37,640 --> 00:25:39,220 garete. Vale, pues entonces, 571 00:25:39,619 --> 00:25:41,799 p.departamento es el objeto departamento 572 00:25:41,799 --> 00:25:43,180 entero. Este. 573 00:25:44,319 --> 00:25:45,660 Este objeto entero. Con ese 574 00:25:45,660 --> 00:25:47,660 objeto entero, yo en el system 575 00:25:47,660 --> 00:25:49,539 no hago nada. Eso es una referencia. 576 00:25:50,900 --> 00:25:51,640 Vale, pero es que yo 577 00:25:51,640 --> 00:25:53,619 quiero mostrar el nombre. Pues entonces 578 00:25:53,619 --> 00:25:55,579 ahora pongo nombre. Y como 579 00:25:55,579 --> 00:25:57,640 veis, se han anidado dos puntitos y no 580 00:25:57,640 --> 00:25:59,660 pasa nada que se hayan anidado. 581 00:26:00,019 --> 00:26:04,079 Claro, a ver, no porque lo haremos a través de métodos 582 00:26:04,079 --> 00:26:05,200 Porque no se hace así en realidad 583 00:26:05,200 --> 00:26:05,720 Pero 584 00:26:05,720 --> 00:26:09,519 Este es el objeto departamento 585 00:26:09,519 --> 00:26:10,960 El objeto departamento tiene una propiedad en nombre 586 00:26:10,960 --> 00:26:14,240 Que el objeto departamento tiene una propiedad 587 00:26:14,240 --> 00:26:15,279 Que es objeto 588 00:26:15,279 --> 00:26:17,680 Pues podríamos poner ese objeto y luego otro punto 589 00:26:17,680 --> 00:26:19,400 Y luego otro punto y podríamos 590 00:26:19,400 --> 00:26:21,579 Anidar hasta el infinito 591 00:26:21,579 --> 00:26:23,839 Si departamento tuviera 592 00:26:23,839 --> 00:26:25,220 Una propiedad que fuera objeto 593 00:26:25,220 --> 00:26:28,119 Y ese objeto a su vez tuviera otro objeto dentro 594 00:26:28,119 --> 00:26:28,740 Y otro dentro 595 00:26:28,740 --> 00:26:31,400 Pero hombre, eso ya sería un diseño 596 00:26:31,400 --> 00:26:33,759 Un poco ágil 597 00:26:33,759 --> 00:26:35,460 Vale, pues entonces 598 00:26:35,460 --> 00:26:36,559 Esto 599 00:26:36,559 --> 00:26:39,700 A nadie le angustia esto, ¿no? 600 00:26:40,700 --> 00:26:40,920 No 601 00:26:40,920 --> 00:26:43,019 Es que, bueno, vais sobrados 602 00:26:43,019 --> 00:26:46,099 Vale, pues ahora vamos a ejecutar esto 603 00:26:46,099 --> 00:26:47,759 A ver si es verdad que los ha metido 604 00:26:47,759 --> 00:26:48,640 A todos en mates 605 00:26:48,640 --> 00:26:50,579 ¿Por qué le hemos metido a este departamento? 606 00:26:52,500 --> 00:26:53,140 Pues sí 607 00:26:53,140 --> 00:26:55,440 Pero a Pedro no le funciona, pero a los demás sí 608 00:26:55,440 --> 00:26:57,880 Vale, pues están 609 00:26:57,880 --> 00:26:59,079 los que hemos creado en mates 610 00:26:59,079 --> 00:27:02,359 vale, ahora resulta 611 00:27:02,359 --> 00:27:03,180 bueno 612 00:27:03,180 --> 00:27:05,759 dije que iba a hablar poquito y he mentido 613 00:27:05,759 --> 00:27:07,059 pero bueno, es una mentira más 614 00:27:07,059 --> 00:27:09,680 os he soltado tantas ya, que una más 615 00:27:09,680 --> 00:27:11,319 como cuando dijiste 616 00:27:11,319 --> 00:27:14,160 los chicos, los estudiantes que están rojos no caen en el examen 617 00:27:14,160 --> 00:27:15,079 y no cayeron 618 00:27:15,079 --> 00:27:18,480 a ver, que de 10 cosas 619 00:27:18,480 --> 00:27:22,140 si, de 10 cosas que digo, 8 son mentiras 620 00:27:22,140 --> 00:27:24,480 dadlo por sentado, pero luego lo voy aclarando 621 00:27:24,480 --> 00:27:25,460 luego lo voy aclarando 622 00:27:25,460 --> 00:27:28,259 No, esas son 623 00:27:28,259 --> 00:27:30,299 Las dos de las que son verdad son esas 624 00:27:30,299 --> 00:27:32,319 Cuando digo U0 625 00:27:32,319 --> 00:27:33,319 Esa es la que es verdad 626 00:27:33,319 --> 00:27:36,940 Es verdad, joder 627 00:27:36,940 --> 00:27:39,019 Vamos a entrar aquí en un bucle infinito 628 00:27:39,019 --> 00:27:42,220 Bueno, a ver 629 00:27:42,220 --> 00:27:45,180 Ahora vamos a imaginar que el instituto 630 00:27:45,180 --> 00:27:46,960 Se ha hecho grande y ha aparecido 631 00:27:46,960 --> 00:27:48,099 Un departamento de lengua 632 00:27:48,099 --> 00:27:51,119 Se ha hecho, ha aparecido un departamento de lengua 633 00:27:51,119 --> 00:27:52,819 Pues vamos a hacer un departamento 634 00:27:52,819 --> 00:27:54,279 ¿Qué? 635 00:27:54,279 --> 00:27:56,200 Vamos a hacer un nuevo departamento. 636 00:27:56,559 --> 00:27:57,420 Departamento 2. 637 00:27:58,799 --> 00:27:59,500 Otro más. 638 00:28:00,200 --> 00:28:01,500 El instituto se ha hecho muy grande. 639 00:28:06,509 --> 00:28:09,430 El departamento este es de lengua. 640 00:28:10,150 --> 00:28:10,789 ¿Y dónde está? 641 00:28:10,910 --> 00:28:12,069 Este está en la planta 1. 642 00:28:15,519 --> 00:28:17,519 Este pobre departamento, pues ya está. 643 00:28:17,599 --> 00:28:19,119 Está aquí creado con su constructor, 644 00:28:19,859 --> 00:28:21,519 pero no tiene ningún profe, ni tiene nada. 645 00:28:25,220 --> 00:28:26,059 Buena señal. 646 00:28:27,059 --> 00:28:28,319 Vale, a mí me pasaba eso de joven. 647 00:28:28,319 --> 00:28:29,500 ¿Qué planta está ahí? 648 00:28:29,920 --> 00:28:32,339 en la que tú quieras. ¿Cuál quieres tú? 649 00:28:32,380 --> 00:28:34,220 Que yo te la pongo. La 19. 650 00:28:34,460 --> 00:28:36,359 Pues venga, la 19. 651 00:28:36,619 --> 00:28:38,519 Está en la 19 el departamento de lengua. 652 00:28:39,339 --> 00:28:40,180 ¿Y sin ascensor? 653 00:28:40,819 --> 00:28:41,759 Sin ascensor. 654 00:28:42,299 --> 00:28:44,519 Vale, entonces, ahora 655 00:28:44,519 --> 00:28:46,700 de los 10 656 00:28:46,700 --> 00:28:47,720 profes del instituto, 657 00:28:48,319 --> 00:28:50,160 ahora vamos a pasar al departamento de lengua 658 00:28:50,160 --> 00:28:52,480 unos cuantos. Por ejemplo, 659 00:28:52,559 --> 00:28:54,259 vamos a pasar a los 5 primeros 660 00:28:54,259 --> 00:28:55,640 al departamento de lengua. 661 00:28:55,640 --> 00:28:57,279 Yo sabía que se jodan. 662 00:28:57,400 --> 00:28:58,740 Son profes de matemática. 663 00:28:58,740 --> 00:29:14,769 Ahora, vamos a pasar a los cinco primeros profes al departamento de lengua. 664 00:29:16,349 --> 00:29:19,130 Departamento de lengua. 665 00:29:22,630 --> 00:29:23,750 Bueno, pues ¿qué haríais? 666 00:29:24,789 --> 00:29:25,410 Un bucle. 667 00:29:27,410 --> 00:29:30,569 Cualquier pregunta, la respuesta a un bucle siempre suele ser cierta. 668 00:29:31,950 --> 00:29:32,849 Un bucle. 669 00:29:33,730 --> 00:29:34,529 ¿Qué más? 670 00:29:34,529 --> 00:29:38,470 No, pues .22 no, los 5 671 00:29:38,470 --> 00:29:39,750 Hasta que valga 5 672 00:29:39,750 --> 00:29:43,549 Bueno, en este caso sería igual 673 00:29:43,549 --> 00:29:47,970 Lo que pasa es que si luego aumentas a 100 674 00:29:47,970 --> 00:29:49,950 Y quieres seguir pasando los 5 primeros 675 00:29:49,950 --> 00:29:53,069 Bueno, bueno, ahí te hemos pillado 676 00:29:53,069 --> 00:29:55,809 Vale, pues haríais algo así, ¿verdad? 677 00:29:56,250 --> 00:29:58,869 Vamos a recorrer los 5 primeros 678 00:29:58,869 --> 00:30:01,490 Desde igual a 0 679 00:30:01,490 --> 00:30:03,730 Esto, por ejemplo, con un for each no podríamos 680 00:30:03,730 --> 00:30:06,190 porque un forage te recorre todo 681 00:30:06,190 --> 00:30:06,710 por 682 00:30:06,710 --> 00:30:08,789 pelotas 683 00:30:08,789 --> 00:30:15,970 porque para los 684 00:30:15,970 --> 00:30:18,430 conjuntos son la única opción 685 00:30:18,430 --> 00:30:19,490 al margen de los tiradores 686 00:30:19,490 --> 00:30:22,289 ya lo sabréis 687 00:30:22,289 --> 00:30:23,650 vale 688 00:30:23,650 --> 00:30:25,670 es un tipo de colección muy útil 689 00:30:25,670 --> 00:30:27,509 que no lo sé 690 00:30:27,509 --> 00:30:30,109 dejad de meterme como que sé cosas 691 00:30:30,109 --> 00:30:31,210 que yo vengo aquí 692 00:30:31,210 --> 00:30:32,509 y sé lo mismo que vos 693 00:30:32,509 --> 00:30:35,690 Pero no las voy a decir 694 00:30:35,690 --> 00:30:43,490 Ya, pero entonces vas a pasar 695 00:30:43,490 --> 00:30:44,289 Siempre a la mitad 696 00:30:44,289 --> 00:30:47,710 Yo he dicho que quiero pasar a los 5 primeros 697 00:30:47,710 --> 00:30:49,490 Si el array tiene 100 698 00:30:49,490 --> 00:30:50,730 Los 5 primeros 699 00:30:50,730 --> 00:30:53,269 Son los 5 primeros 700 00:30:53,269 --> 00:30:55,589 ¿Vale? Acordaos de 701 00:30:55,589 --> 00:30:56,849 Que hay que hacer 702 00:30:56,849 --> 00:30:58,430 Lo que te pidan 703 00:30:58,430 --> 00:31:01,569 ¿Vale? La iniciativa 704 00:31:01,569 --> 00:31:02,670 en este contexto 705 00:31:02,670 --> 00:31:05,809 mal, lo que te pidan 706 00:31:05,809 --> 00:31:06,970 vale 707 00:31:06,970 --> 00:31:08,890 bueno, pues que hacemos 708 00:31:08,890 --> 00:31:11,670 pues una línea y se acabó 709 00:31:11,670 --> 00:31:13,849 profesores de i 710 00:31:13,849 --> 00:31:15,410 punto 711 00:31:15,410 --> 00:31:17,890 departamento igual a 712 00:31:17,890 --> 00:31:18,789 dev2 713 00:31:18,789 --> 00:31:20,990 ala, ya están pasados 714 00:31:20,990 --> 00:31:23,210 vale 715 00:31:23,210 --> 00:31:24,190 ya están 716 00:31:24,190 --> 00:31:26,289 easy 717 00:31:26,289 --> 00:31:29,650 donde hay un easy, aquí no hay ningún easy 718 00:31:29,650 --> 00:31:41,630 perdona 719 00:31:41,630 --> 00:31:45,309 como que mi hija 720 00:31:45,309 --> 00:31:46,910 seré yo la que tenga que enseñarle 721 00:31:46,910 --> 00:31:49,309 inglés a ella, a ti y a cuantos como tú 722 00:31:49,309 --> 00:31:51,109 que yo tuve 723 00:31:51,109 --> 00:31:53,210 un novio americano que no hablaba español 724 00:31:53,210 --> 00:31:54,609 durante un tiempo largo 725 00:31:54,609 --> 00:31:57,490 norteamericano 726 00:31:57,490 --> 00:31:58,269 perdón 727 00:31:58,269 --> 00:32:03,210 es que no era de ahí 728 00:32:03,210 --> 00:32:04,750 era indio 729 00:32:04,750 --> 00:32:06,609 pero trabajaba 730 00:32:06,609 --> 00:32:09,430 entonces, como comprenderás 731 00:32:09,430 --> 00:32:10,390 hablábamos en inglés 732 00:32:10,390 --> 00:32:12,390 así que no tienes nada que enseñar 733 00:32:12,390 --> 00:32:16,549 hombre, y si para mí es 734 00:32:16,549 --> 00:32:18,190 y si me tiro por la ventana 735 00:32:18,190 --> 00:32:19,589 y si no sé qué, para mí es eso 736 00:32:19,589 --> 00:32:23,250 claro, es el if 737 00:32:23,250 --> 00:32:24,430 para mí el if es el if 738 00:32:24,430 --> 00:32:26,289 y si te tiro a ti por la ventana 739 00:32:26,289 --> 00:32:29,230 Vale, esto está clarísimo, ¿verdad? 740 00:32:29,910 --> 00:32:31,150 Hemos cambiado al profesor 741 00:32:31,150 --> 00:32:33,309 Y si ahora volviéramos a mostrar a los profes 742 00:32:33,309 --> 00:32:35,869 Pues los cinco primeros se han ido a lengua 743 00:32:35,869 --> 00:32:39,990 Fijaos qué maravilla 744 00:32:39,990 --> 00:32:43,890 Qué maravilla 745 00:32:43,890 --> 00:32:45,230 Estaban todos en mates 746 00:32:45,230 --> 00:32:47,769 Y después de lo que hemos hecho 747 00:32:47,769 --> 00:32:49,130 Los cinco primeros 748 00:32:49,130 --> 00:32:51,789 Los hemos calzado al departamento de lengua 749 00:32:51,789 --> 00:32:52,869 Con lo cual van a cobrar más 750 00:32:52,869 --> 00:33:03,279 Este bucle de aquí 751 00:33:03,279 --> 00:33:10,910 Ahora vamos a ponerles 752 00:33:10,910 --> 00:33:15,049 Claro, vamos a su 753 00:33:15,049 --> 00:33:16,250 Ahora ya vamos a ponerles 754 00:33:16,250 --> 00:33:18,109 Como ya hay profes en diferentes departamentos 755 00:33:18,109 --> 00:33:20,670 Vamos a ponerles el extra de sueldo 756 00:33:20,670 --> 00:33:22,450 Sobre el 1000 que tenían todos 757 00:33:22,450 --> 00:33:25,150 ¿No se puede hacer eso que directamente al pertenecer al departamento 758 00:33:25,150 --> 00:33:26,089 eso ocurra? 759 00:33:26,750 --> 00:33:28,910 En el momento que perteneces al departamento de lengua 760 00:33:28,910 --> 00:33:30,390 ya tienes ese extra de sueldo. 761 00:33:33,089 --> 00:33:34,329 Claro, es lo de... 762 00:33:34,329 --> 00:33:36,289 No, a ver. 763 00:33:36,990 --> 00:33:38,509 En el momento de hacer la asignación, 764 00:33:38,609 --> 00:33:39,710 si tú lo haces con un igual, no. 765 00:33:39,990 --> 00:33:41,490 Porque eso es una asignación de una variable a otra. 766 00:33:42,329 --> 00:33:45,089 Sí, si esta asignación la haces a través de un método set, 767 00:33:46,289 --> 00:33:47,609 que te ha sonado el método set, 768 00:33:48,329 --> 00:33:49,809 que entonces puedes meter en el set eso. 769 00:33:50,009 --> 00:33:50,849 Pero bueno, eso... 770 00:33:50,849 --> 00:33:52,029 Pero si es a través de una asignación, 771 00:33:52,450 --> 00:33:54,730 No puedes ejecutar código en la asignación. 772 00:33:55,490 --> 00:33:56,609 Igual a punto 773 00:33:56,609 --> 00:33:58,569 departamento 2, una propiedad 774 00:33:58,569 --> 00:34:00,069 del departamento 2 que sea extrasueldo 775 00:34:00,069 --> 00:34:01,490 y más igual. 776 00:34:03,250 --> 00:34:04,710 Bueno, si has puesto una propiedad 777 00:34:04,710 --> 00:34:06,569 que es extrasueldo, pero... 778 00:34:06,569 --> 00:34:08,469 Vale, entonces ahora ya, como ya tenemos 779 00:34:08,469 --> 00:34:09,989 profes y ya no vamos a ir, tranquilo, 780 00:34:10,289 --> 00:34:12,630 relájate. Que estás como 781 00:34:12,630 --> 00:34:13,949 diciendo, acaba ya de una vez. 782 00:34:15,690 --> 00:34:16,869 Ya, pero que ya acabamos. 783 00:34:16,949 --> 00:34:17,869 Con esto ya acabamos. 784 00:34:18,210 --> 00:34:20,130 Es como que espero más rápido. 785 00:34:20,670 --> 00:34:21,289 Espero rápido. 786 00:34:21,289 --> 00:34:23,710 O sea que voy más lenta de lo que te gustaría 787 00:34:23,710 --> 00:34:25,150 No, no, no, al revés 788 00:34:25,150 --> 00:34:27,789 Vas tan rápido que me haces esperar rápido 789 00:34:27,789 --> 00:34:30,210 Contagio la rapidez 790 00:34:30,210 --> 00:34:32,110 Vale, entonces ahora vamos 791 00:34:32,110 --> 00:34:34,150 Ahora ya, todos los profes que hemos hecho 792 00:34:34,150 --> 00:34:35,889 Ganaban 793 00:34:35,889 --> 00:34:38,590 Mil euritos 794 00:34:38,590 --> 00:34:39,750 No, mil no 795 00:34:39,750 --> 00:34:40,610 Dos mil 796 00:34:40,610 --> 00:34:42,949 Todos los profes que hemos hecho ganaban dos mil 797 00:34:42,949 --> 00:34:44,989 Ahora vamos a ponerles el extra 798 00:34:44,989 --> 00:34:46,030 En función 799 00:34:46,030 --> 00:34:49,110 Del departamento en el que están 800 00:34:49,110 --> 00:34:50,530 Para eso tenemos un método 801 00:34:50,530 --> 00:34:53,150 Espera, vamos a poner unos asteriscos 802 00:34:53,150 --> 00:34:54,230 Para poder distinguir 803 00:34:54,230 --> 00:34:55,329 Porque ya con tantos 804 00:34:55,329 --> 00:34:56,989 Luego ya no vamos a ver nada 805 00:34:56,989 --> 00:34:59,929 Entonces, vamos a poner ahora ya lo de 806 00:34:59,929 --> 00:35:01,869 Poner el extra 807 00:35:01,869 --> 00:35:03,309 Entonces 808 00:35:03,309 --> 00:35:05,650 Vamos a 809 00:35:05,650 --> 00:35:08,650 Recorrer el array para hacérselo a todos los profes 810 00:35:08,650 --> 00:35:12,510 Y sea menor que 811 00:35:12,510 --> 00:35:14,849 Profesores.lenz 812 00:35:14,849 --> 00:35:18,489 Pues con cada profesores 813 00:35:18,489 --> 00:35:18,949 De ahí 814 00:35:18,949 --> 00:35:22,699 ¿Qué hacemos? 815 00:35:23,440 --> 00:35:24,360 Extra sueldo 816 00:35:24,360 --> 00:35:27,840 sueldo extra 817 00:35:27,840 --> 00:35:30,019 ya está 818 00:35:30,019 --> 00:35:32,519 entonces al haber llamado este método 819 00:35:32,519 --> 00:35:34,500 a cada profesor 820 00:35:34,500 --> 00:35:37,039 en función de si es de lengua o de mates 821 00:35:37,039 --> 00:35:38,800 le sube al sueldo 822 00:35:38,800 --> 00:35:40,519 100 o 200 823 00:35:40,519 --> 00:35:42,380 ¿por qué eso hace este método? 824 00:35:43,440 --> 00:35:44,440 este método 825 00:35:44,440 --> 00:35:46,880 coge un objeto profesor 826 00:35:46,880 --> 00:35:50,730 ahora lo vuelvo a poner Juan 827 00:35:50,730 --> 00:35:52,829 ese método coge un objeto profesor 828 00:35:52,829 --> 00:35:54,730 si su nombre es mates 829 00:35:54,730 --> 00:35:55,670 es que le veía así 830 00:35:55,670 --> 00:36:00,429 Si su nombre es mates le sube 100 831 00:36:00,429 --> 00:36:01,670 Y si es lengua le sube 200 832 00:36:01,670 --> 00:36:03,989 Vale, pues entonces este método 833 00:36:03,989 --> 00:36:06,710 Ya a cada profesor le subirá lo que le toque 834 00:36:06,710 --> 00:36:10,409 Vale, pues vamos a mostrar 835 00:36:10,409 --> 00:36:12,610 Ahora ya sí que con un for each 836 00:36:12,610 --> 00:36:16,429 Vamos a mostrar el sueldo de cada profe 837 00:36:16,969 --> 00:36:20,429 Vamos a mostrar el sueldo de cada profe 838 00:36:20,889 --> 00:36:22,610 Después de la subida 839 00:36:22,610 --> 00:36:23,730 Con el extra este 840 00:36:23,730 --> 00:36:46,449 Pues el sueldo de cada profe. Cuidado que p.nombre más p.sueldo. Vale, vamos a ver. Ahora ya después del sueldo extra. 841 00:36:46,449 --> 00:36:49,050 Pues efectivamente 842 00:36:49,050 --> 00:36:50,329 Después de la extra 843 00:36:50,329 --> 00:36:52,230 Los de lengua 844 00:36:52,230 --> 00:36:55,590 Tienen 200 euros más de los 2000 iniciales 845 00:36:55,590 --> 00:36:56,929 Y los de mates 846 00:36:56,929 --> 00:36:58,289 Tienen 100 más 847 00:36:58,289 --> 00:37:00,349 De los 2000 iniciales 848 00:37:00,349 --> 00:37:02,929 Que bien, ahora los pepitos podrán comer 849 00:37:02,929 --> 00:37:03,510 Todos los meses 850 00:37:03,510 --> 00:37:06,670 Todos los meses 851 00:37:06,670 --> 00:37:08,170 Bueno 852 00:37:08,170 --> 00:37:12,309 Depende de tus necesidades 853 00:37:12,309 --> 00:37:18,170 claro, si quieres un Lamborghini 854 00:37:18,170 --> 00:37:20,190 o tienes una tarjeta Pokémon de esas tuyas 855 00:37:20,190 --> 00:37:21,590 o te has quedado sin Lamborghini 856 00:37:21,590 --> 00:37:24,429 ya, pero yo las tengo mejores 857 00:37:24,429 --> 00:37:26,590 que esas, por pese a que no me las traigo 858 00:37:26,590 --> 00:37:27,110 pero 859 00:37:27,110 --> 00:37:30,269 ¿pero no consigues un buen comprador o qué? 860 00:37:30,389 --> 00:37:31,750 porque te la veo pasear todos los días 861 00:37:31,750 --> 00:37:35,829 te da buena suerte 862 00:37:35,829 --> 00:37:37,289 muy bien 863 00:37:37,289 --> 00:37:38,090 es como el que 864 00:37:38,090 --> 00:37:42,130 por si se 865 00:37:42,130 --> 00:37:44,389 reproduce, pero no ocurre 866 00:37:44,389 --> 00:37:45,550 bueno 867 00:37:45,550 --> 00:37:47,050 ¿tú has visto billetes de 500 euros? 868 00:37:47,670 --> 00:37:48,510 yo he visto uno también 869 00:37:48,510 --> 00:37:50,050 creo que nunca 870 00:37:50,050 --> 00:37:53,269 ¿de qué color son? ¿morados? 871 00:37:54,409 --> 00:37:56,429 bueno, pues esto está súper claro 872 00:37:56,429 --> 00:37:58,510 entonces ya con esto de que 873 00:37:58,510 --> 00:38:00,030 los objetos 874 00:38:00,030 --> 00:38:01,750 puedan tener a su vez objetos dentro 875 00:38:01,750 --> 00:38:04,230 se nos abren ya todas las 876 00:38:04,230 --> 00:38:05,449 posibilidades posibles 877 00:38:05,449 --> 00:38:07,889 para hacer aplicaciones con lo que queramos 878 00:38:07,889 --> 00:38:08,469 y lo que sea 879 00:38:08,469 --> 00:38:09,869 ¿vale? 880 00:38:12,130 --> 00:38:12,369 Gracias.