1 00:00:00,240 --> 00:00:14,060 Bueno, ¿vienen hasta aquí? Vale, pues por ejemplo, para seguir un poquito con ejemplos, que resulta que mi aplicación no es un instituto con dos alumnos solo, que es muy poquito, sino que tiene mil. 2 00:00:25,559 --> 00:00:37,100 Vale, que resulta que mi aplicación no va a trabajar solo con dos alumnos, sino con mil alumnos, pues no tiene sentido que me haga alumno 1, alumno 2, alumno 3, ¿qué me puedo hacer entonces? 3 00:00:38,659 --> 00:00:40,659 si quiero trabajar con mil 4 00:00:40,659 --> 00:00:42,500 un array 5 00:00:42,500 --> 00:00:44,799 vale 6 00:00:44,799 --> 00:00:45,539 pues 7 00:00:45,539 --> 00:00:48,039 por ejemplo 8 00:00:48,039 --> 00:00:57,399 resulta que mi aplicación va a trabajar 9 00:00:57,399 --> 00:00:58,320 mi instituto tiene mil 10 00:00:58,320 --> 00:01:01,119 pues me hago un array de mil 11 00:01:01,119 --> 00:01:03,320 alumnos, entonces igual que yo 12 00:01:03,320 --> 00:01:05,120 me hacía un array de números enteros 13 00:01:05,120 --> 00:01:06,340 ¿cómo me lo hacía? 14 00:01:06,920 --> 00:01:08,159 pues lo hacíamos así ¿verdad? 15 00:01:09,280 --> 00:01:10,400 new int 16 00:01:10,400 --> 00:01:15,340 así me hacía yo un array 17 00:01:15,340 --> 00:01:17,260 para mil números enteros 18 00:01:17,260 --> 00:01:19,540 pues aquí en lugar de mil 19 00:01:19,540 --> 00:01:21,459 números enteros, lo que quiero es 20 00:01:21,459 --> 00:01:23,180 mil variables tipo alumno 21 00:01:23,180 --> 00:01:25,540 pues entonces el int 22 00:01:25,540 --> 00:01:27,599 lo cambio por 23 00:01:27,599 --> 00:01:29,620 alumno, porque ahora mi tipo de dato ha cambiado 24 00:01:29,620 --> 00:01:31,819 ahora ya no es int, ahora es 25 00:01:31,819 --> 00:01:32,659 alumno 26 00:01:32,659 --> 00:01:37,099 vale, ahora es alumno 27 00:01:37,099 --> 00:01:39,799 entender la clase 28 00:01:39,799 --> 00:01:41,599 como la creación de un tipo 29 00:01:41,599 --> 00:01:43,659 de datos propio que me he inventado yo 30 00:01:43,659 --> 00:01:46,200 y es un tipo de datos propio 31 00:01:46,200 --> 00:01:48,219 complejo porque tiene tres partes 32 00:01:48,219 --> 00:01:50,500 pero es un tipo de datos más 33 00:01:50,500 --> 00:01:52,459 del que declaramos variables 34 00:01:52,459 --> 00:01:54,040 si nos da la gana, como aquí 35 00:01:54,040 --> 00:01:56,739 variables que al ser objeto hay que crear 36 00:01:56,739 --> 00:02:00,480 declaro array si me da la gana 37 00:02:00,480 --> 00:02:02,579 ¿vale? entonces aquí lo único 38 00:02:02,579 --> 00:02:04,260 ojo, cuidado 39 00:02:04,260 --> 00:02:05,620 con el array 40 00:02:05,620 --> 00:02:13,150 ¿por qué? ahora estamos hablando 41 00:02:13,150 --> 00:02:13,930 de objetos 42 00:02:13,930 --> 00:02:16,250 entonces con new alumno 43 00:02:16,250 --> 00:02:19,110 yo me estoy creando mil posiciones 44 00:02:19,110 --> 00:02:21,530 mil posiciones 45 00:02:21,530 --> 00:02:23,210 de variables 46 00:02:23,210 --> 00:02:24,150 de tipo alumno 47 00:02:24,150 --> 00:02:26,849 pero es que ya sabemos lo que es una variable de tipo alumno 48 00:02:26,849 --> 00:02:28,250 en realidad es una dirección de memoria 49 00:02:28,250 --> 00:02:29,969 que te apunta a algún sitio 50 00:02:29,969 --> 00:02:32,530 esto es lo que nos estamos creando 51 00:02:32,530 --> 00:02:35,229 pero los alumnos todavía no están 52 00:02:35,229 --> 00:02:37,229 con esta declaración 53 00:02:37,229 --> 00:02:39,050 con esta declaración 54 00:02:39,050 --> 00:02:39,509 de arriba 55 00:02:39,509 --> 00:02:41,889 yo tengo esta tabla 56 00:02:41,889 --> 00:02:44,310 pero los alumnos todavía no los he creado 57 00:02:44,310 --> 00:02:47,250 Me falta hacer todos los news 58 00:02:47,250 --> 00:02:49,229 Para crear los espacios 59 00:02:49,229 --> 00:02:51,330 ¿Vale? Valeria no se come 60 00:02:51,330 --> 00:02:52,650 En clase 61 00:02:52,650 --> 00:02:54,550 Bueno 62 00:02:54,550 --> 00:02:59,000 Pues resto del mundo 63 00:02:59,000 --> 00:02:59,960 No se come en clase 64 00:02:59,960 --> 00:03:02,740 ¿Vale? Entonces con esto 65 00:03:02,740 --> 00:03:04,300 He declarado esta parte 66 00:03:04,300 --> 00:03:06,759 Me falta esta de aquí 67 00:03:06,759 --> 00:03:08,960 Pues menos mal que está en un array 68 00:03:08,960 --> 00:03:10,860 Y no tengo que hacer mil news uno tras otro 69 00:03:10,860 --> 00:03:12,319 Menos mal que está en un array 70 00:03:12,319 --> 00:03:13,979 Y no tengo que hacer mil news uno tras otro 71 00:03:13,979 --> 00:03:15,199 Vamos a recorrer el array 72 00:03:15,199 --> 00:03:17,539 vamos a recorrerlo 73 00:03:17,539 --> 00:03:20,280 con un for 74 00:03:20,280 --> 00:03:21,819 de toda la vida de Dios 75 00:03:21,819 --> 00:03:43,460 vale, pues me recorro mi array 76 00:03:43,460 --> 00:03:45,039 como recorro los arrays de siempre 77 00:03:45,039 --> 00:03:47,000 y ahora, números de i 78 00:03:47,000 --> 00:03:49,319 ¿ahora qué es números de i? 79 00:03:50,139 --> 00:03:51,819 números de i es una variable 80 00:03:51,819 --> 00:03:52,620 alumno 81 00:03:52,620 --> 00:03:54,879 un objeto alumno 82 00:03:54,879 --> 00:03:57,520 que está declarado, sí, pero que está todavía 83 00:03:57,520 --> 00:03:59,639 sin crear, su espacio está todavía sin crear 84 00:03:59,639 --> 00:04:01,500 entonces, antes 85 00:04:01,500 --> 00:04:03,219 de nada tendré que hacer esto 86 00:04:03,219 --> 00:04:05,360 con todos y cada uno de ellos. 87 00:04:06,340 --> 00:04:06,819 ¿Vale? 88 00:04:07,520 --> 00:04:09,539 Antes de nada, con todos y cada uno 89 00:04:09,539 --> 00:04:11,520 de ellos, con números 0, números 1, números 2, 90 00:04:12,000 --> 00:04:12,879 tendré que hacer esto 91 00:04:12,879 --> 00:04:14,680 para crear su espacio. 92 00:04:15,199 --> 00:04:17,519 Igual que aquí, después 93 00:04:17,519 --> 00:04:19,579 de declarar alumno 1, 94 00:04:20,319 --> 00:04:21,420 le he creado el espacio. 95 00:04:23,160 --> 00:04:24,439 Pero aquí solo tenía 1. 96 00:04:25,339 --> 00:04:26,939 Y he creado el espacio para ese. 97 00:04:28,279 --> 00:04:29,579 Pero aquí tengo 1000. 98 00:04:30,100 --> 00:04:31,300 Pues para cada uno de ellos, 99 00:04:31,300 --> 00:04:33,079 Números 0, así hasta número 99 100 00:04:33,079 --> 00:04:34,800 Le creo su espacio 101 00:04:34,800 --> 00:04:36,899 Y ahora ya sí que tengo esos objetos 102 00:04:36,899 --> 00:04:38,980 Para hacer con ellos lo que me dé la gana 103 00:04:38,980 --> 00:04:41,199 Por ejemplo 104 00:04:41,199 --> 00:04:42,959 Vamos a ponerles a todos 105 00:04:42,959 --> 00:04:44,959 Edades aleatorias 106 00:04:44,959 --> 00:04:47,199 Entre 0 y 107 00:04:47,199 --> 00:04:48,379 100, por ejemplo 108 00:04:48,379 --> 00:04:51,279 Pues venga, vamos a recorrer 109 00:04:51,279 --> 00:04:52,920 Nuestro array 110 00:04:52,920 --> 00:04:54,720 ¿Alguien ha llamado? 111 00:04:57,199 --> 00:04:57,759 Dime 112 00:04:57,759 --> 00:05:01,899 Vale 113 00:05:01,899 --> 00:05:11,139 Vale, pues por ejemplo 114 00:05:11,139 --> 00:05:13,720 Vamos 115 00:05:13,720 --> 00:05:17,800 Números de i 116 00:05:17,800 --> 00:05:20,139 Es el alumno en posición i 117 00:05:20,139 --> 00:05:22,720 He dicho que a la edad de cada alumno 118 00:05:22,720 --> 00:05:24,720 Es a la que le voy a dar una edad aleatoria 119 00:05:24,720 --> 00:05:30,720 Pues yo que sé 120 00:05:30,720 --> 00:05:32,040 Por 100 121 00:05:32,040 --> 00:05:36,199 Para que me genere entre 0 y 100 122 00:05:36,199 --> 00:05:36,920 Aprox 123 00:05:36,920 --> 00:05:40,259 Casting de int 124 00:05:40,259 --> 00:05:45,720 Pues que te va a generar 0 todo el rato 125 00:05:45,720 --> 00:05:48,040 Porque más random te generan 0, 0,1 126 00:05:48,040 --> 00:05:49,220 0, entre 0 y 1 127 00:05:49,220 --> 00:05:51,480 Entonces al hacerle int 128 00:05:51,480 --> 00:05:52,740 Van a ser 0 siempre 129 00:05:52,740 --> 00:05:54,600 Vale, pues así por ejemplo 130 00:05:54,600 --> 00:05:56,379 He asignado 131 00:05:56,379 --> 00:06:05,800 Edad aleatoria 132 00:06:05,800 --> 00:06:08,379 A todos los alumnos de la RAI 133 00:06:08,379 --> 00:06:12,870 vale, vamos a mostrarlos 134 00:06:12,870 --> 00:06:13,829 uy 135 00:06:13,829 --> 00:06:18,779 si hacemos eso pero en el 136 00:06:18,779 --> 00:06:20,860 fichero de alumno, en donde se crea 137 00:06:20,860 --> 00:06:22,680 la clase, no habrá que poner 138 00:06:22,680 --> 00:06:23,660 esto, ¿no? 139 00:06:25,199 --> 00:06:26,800 vale, no, pero es que la idea de los 140 00:06:26,800 --> 00:06:28,819 métodos que pones aquí son los que trabajan con 141 00:06:28,819 --> 00:06:30,879 un único alumno, ahora cuando 142 00:06:30,879 --> 00:06:32,839 nos metamos en método entenderás, esto no trabaja con 143 00:06:32,839 --> 00:06:34,480 uno en particular, sino que trabaja con todos 144 00:06:34,480 --> 00:06:37,040 pero bueno, sí, se podría hacer un método 145 00:06:37,040 --> 00:06:38,740 que fuera, dame una 146 00:06:38,740 --> 00:06:40,660 daza aleatoria a mí mismo, y luego lo llamo 147 00:06:40,660 --> 00:06:42,639 para todos, vale, ahora lo hacemos, vale, cuando nos 148 00:06:42,639 --> 00:06:43,540 metamos en métodos 149 00:06:43,540 --> 00:06:44,879 vale 150 00:06:44,879 --> 00:06:48,560 con esto asignaría 151 00:06:48,560 --> 00:06:50,220 aleatoria a todos, vale 152 00:06:50,220 --> 00:06:51,899 entonces vamos a mostrarlos 153 00:06:51,899 --> 00:06:54,620 y ya está, pues venga, vamos a mostrarlos 154 00:06:54,620 --> 00:06:56,839 para variar, voy a recorrer 155 00:06:56,839 --> 00:06:58,560 en un for each, porque estoy 156 00:06:58,560 --> 00:07:00,100 consultando, no estoy 157 00:07:00,100 --> 00:07:02,240 pues para cada alumno, ah 158 00:07:02,240 --> 00:07:04,259 en mi array 159 00:07:04,259 --> 00:07:05,680 jolín 160 00:07:05,680 --> 00:07:08,540 le he llamado números, que poco explicativo 161 00:07:08,540 --> 00:07:11,579 voy a cambiarle el nombre de la array 162 00:07:11,579 --> 00:07:13,060 a alumnos 163 00:07:13,060 --> 00:07:14,959 ¿eh? 164 00:07:23,259 --> 00:07:25,339 podéis refactorizar o hacerlo con 165 00:07:25,339 --> 00:07:26,379 atajo, como os dé la gana 166 00:07:26,379 --> 00:07:27,720 vale 167 00:07:27,720 --> 00:07:32,939 vale, pues para cada alumno 168 00:07:32,939 --> 00:07:33,379 a 169 00:07:33,379 --> 00:07:38,009 ¿vale? este es el for each de toda la vida 170 00:07:38,009 --> 00:07:40,230 es un bucle 171 00:07:40,230 --> 00:07:42,410 que va recorriendo el array que yo ponga aquí 172 00:07:42,410 --> 00:07:44,790 el array que yo ponga aquí 173 00:07:44,790 --> 00:07:46,430 y este elemento 174 00:07:46,430 --> 00:07:47,750 va 175 00:07:47,750 --> 00:07:50,629 quedándose con una copia 176 00:07:50,629 --> 00:07:52,509 de todos y cada uno de los elementos del array 177 00:07:52,509 --> 00:07:54,490 claro, este elemento se tiene que 178 00:07:54,490 --> 00:07:56,769 declarar como alumno, porque el array es de alumnos 179 00:07:56,769 --> 00:08:01,750 en cada iteración 180 00:08:01,750 --> 00:08:04,649 A va teniendo cada uno de los elementos 181 00:08:04,649 --> 00:08:06,649 del array, en la primera iteración 182 00:08:06,649 --> 00:08:08,629 A es el primer alumno del array, una copia 183 00:08:08,629 --> 00:08:10,569 en la segunda iteración 184 00:08:10,569 --> 00:08:12,790 A es una copia del segundo elemento del array 185 00:08:12,790 --> 00:08:14,230 luego este for each 186 00:08:14,230 --> 00:08:16,730 no acaba hasta que no has recorrido 187 00:08:16,730 --> 00:08:17,290 todo el array 188 00:08:17,290 --> 00:08:22,230 ¿cuándo le di valor a quién? 189 00:08:25,089 --> 00:08:29,810 A es una variable temporal auxiliar 190 00:08:29,810 --> 00:08:32,029 que solo vive, solo tiene vida aquí dentro 191 00:08:32,029 --> 00:08:34,309 de este for y se va rellenando 192 00:08:34,309 --> 00:08:36,350 en cada iteración con cada uno de los alumnos 193 00:08:36,350 --> 00:08:37,149 pero es una variable 194 00:08:37,149 --> 00:08:39,210 que solo vive ahí dentro 195 00:08:39,210 --> 00:08:41,149 cuando el forish termina desaparecido 196 00:08:41,149 --> 00:08:43,429 y sirve para irse quedando con una copia 197 00:08:43,429 --> 00:08:45,169 de cada alumno en las sucesivas iteraciones 198 00:08:45,169 --> 00:08:45,590 ya está 199 00:08:45,590 --> 00:08:48,750 vale, pues entonces, efectivamente 200 00:08:48,750 --> 00:08:50,669 si yo trato de mostrar al alumno a lo bestia 201 00:08:50,669 --> 00:08:54,970 a ver, en lugar de mil 202 00:08:54,970 --> 00:08:56,889 vamos a ponerle menos para que no me salgan ahí 203 00:08:56,889 --> 00:08:58,870 200.000 líneas, vamos a hacer 204 00:08:58,870 --> 00:09:01,210 un array de 10 solamente, no de mil alumnos 205 00:09:01,210 --> 00:09:02,429 de 10 206 00:09:02,429 --> 00:09:06,240 gracias a que 207 00:09:06,240 --> 00:09:08,120 he tirado de len, si no he puesto 208 00:09:08,120 --> 00:09:09,740 tal cual, mil 209 00:09:09,740 --> 00:09:11,940 El cambio de código es inmediato 210 00:09:11,940 --> 00:09:13,179 Me voy aquí, lo cambio y ya está 211 00:09:13,179 --> 00:09:14,899 Vale, pues 212 00:09:14,899 --> 00:09:17,539 Vamos a ejecutar este código 213 00:09:17,539 --> 00:09:19,759 Primero a la parte de arriba 214 00:09:19,759 --> 00:09:22,179 Y luego se pondrá a mostrar todo eso 215 00:09:22,179 --> 00:09:31,519 Vale, entonces 216 00:09:31,519 --> 00:09:33,820 Estos son los 10 alumnos 217 00:09:33,820 --> 00:09:35,639 Efectivamente me está mostrando 218 00:09:35,639 --> 00:09:36,960 Algo muy extraño, ¿qué es esto? 219 00:09:37,100 --> 00:09:39,159 Claro, porque el SISO 220 00:09:39,159 --> 00:09:42,059 Aquí le estamos dando una caja con cosas dentro 221 00:09:42,059 --> 00:09:43,879 No le estás dando 222 00:09:43,879 --> 00:09:45,740 Una única cosa, un string, un int 223 00:09:45,740 --> 00:09:47,460 como le dábamos antes, que él, el stringer 224 00:09:47,460 --> 00:09:49,299 lo sabe mostrar, aquí le damos 225 00:09:49,299 --> 00:09:51,220 una caja con un montón de basurilla 226 00:09:51,220 --> 00:09:53,340 entonces él, ya entendemos 227 00:09:53,340 --> 00:09:55,519 por qué, te hace un aplanamiento 228 00:09:55,519 --> 00:09:57,299 extraño, ya entenderemos por qué 229 00:09:57,299 --> 00:09:59,320 y te dice, me das una caja con un montón 230 00:09:59,320 --> 00:10:01,220 de cosas raras, te muestro 231 00:10:01,220 --> 00:10:03,299 un aplanamiento muy raro y paso 232 00:10:03,299 --> 00:10:04,919 de ti, claro 233 00:10:04,919 --> 00:10:07,399 o le decimos cómo aplanar 234 00:10:07,399 --> 00:10:08,399 que eso todavía no sabemos 235 00:10:08,399 --> 00:10:11,340 o le tendremos que decir que muestre 236 00:10:11,340 --> 00:10:12,480 las propiedades por separado 237 00:10:12,480 --> 00:10:14,899 entonces hombre, aquí 238 00:10:14,899 --> 00:10:16,100 Y pues tiene sentido. 239 00:10:16,460 --> 00:10:17,940 ¿Qué quieres mostrar? ¿La edad? 240 00:10:21,149 --> 00:10:22,929 Pues ahora esto ya sí lo vas a ver mostrar. 241 00:10:23,070 --> 00:10:27,370 Porque a.edad será la edad de cada uno de los alumnos. 242 00:10:30,139 --> 00:10:31,100 Por ejemplo. 243 00:10:40,879 --> 00:10:42,779 ¿Vale? Pues ahora con esto. 244 00:10:51,879 --> 00:10:55,779 ¿Vale? Pues estas son las 10 edades que ha generado. 245 00:10:56,320 --> 00:10:58,480 ¿Vale? Este era de un System.out que está arriba. 246 00:10:59,700 --> 00:11:00,179 ¿Vale? 247 00:11:00,179 --> 00:11:04,460 Que este System.out es 248 00:11:04,460 --> 00:11:05,399 De donde está 249 00:11:05,399 --> 00:11:07,279 De aquí 250 00:11:07,279 --> 00:11:09,620 ¿Vale? 251 00:11:10,080 --> 00:11:13,500 Entonces lo ponemos aquí 252 00:11:13,500 --> 00:11:18,710 Si lo mostramos así 253 00:11:18,710 --> 00:11:21,730 Como tiene 254 00:11:21,730 --> 00:11:25,769 Varios elementos 255 00:11:25,769 --> 00:11:32,139 Nos muestra 256 00:11:32,139 --> 00:11:34,080 Algo raro 257 00:11:34,080 --> 00:11:35,059 Un resumen raro 258 00:11:35,059 --> 00:11:37,440 Ese resumen raro nos vale 259 00:11:37,440 --> 00:11:39,440 Tendríamos que mostrar las propiedades por separado 260 00:11:39,440 --> 00:11:43,799 entonces esto lo voy a poner aquí 261 00:11:43,799 --> 00:11:49,870 entonces nunca 262 00:11:49,870 --> 00:11:52,250 mientras no sepamos 263 00:11:52,250 --> 00:11:54,049 mientras no sepamos 264 00:11:54,049 --> 00:11:56,629 cómo decirle a Java que ese resumen 265 00:11:56,629 --> 00:11:57,549 lo haga a mi gusto 266 00:11:57,549 --> 00:12:00,690 mientras no sepamos, no mostramos un alumno dando el alumno 267 00:12:00,690 --> 00:12:01,990 entero, porque es una caja con cosas 268 00:12:01,990 --> 00:12:04,210 él muestra, yo que sé, le hace así 269 00:12:04,210 --> 00:12:05,730 la caja y muestra lo que sea 270 00:12:05,730 --> 00:12:08,429 mientras no sepamos cómo aplanar la caja 271 00:12:08,429 --> 00:12:10,490 vamos a tener que decirle 272 00:12:10,490 --> 00:12:10,830 que 273 00:12:10,830 --> 00:12:14,070 nos muestra propiedad por propiedad 274 00:12:14,070 --> 00:12:23,769 no, no hemos hecho nada importante 275 00:12:23,769 --> 00:12:26,629 vale 276 00:12:26,629 --> 00:12:27,990 esto sí que lo haríamos 277 00:12:27,990 --> 00:12:30,730 alumno1.nombre 278 00:12:30,730 --> 00:12:31,850 onif 279 00:12:31,850 --> 00:12:38,200 alumno1.nombre 280 00:12:38,200 --> 00:12:45,299 no, es que 281 00:12:45,299 --> 00:12:47,080 los métodos los hemos dejado en blanco todavía 282 00:12:47,080 --> 00:12:49,159 porque estamos por ahora entendiendo cómo funciona 283 00:12:49,159 --> 00:12:51,179 esto y lo que te rondaré morena 284 00:12:51,179 --> 00:12:54,019 porque hemos visto un 0,01% 285 00:12:54,019 --> 00:12:55,220 de todo lo que tenemos que aprender 286 00:12:55,220 --> 00:13:01,259 esto sí nos mostraría cosas con sentido 287 00:13:01,259 --> 00:13:02,580 esto sí, esto no 288 00:13:02,580 --> 00:13:04,919 si ejecutamos esto 289 00:13:04,919 --> 00:13:09,690 esto nos muestra algo raro 290 00:13:09,690 --> 00:13:11,049 porque le he pasado al alumno al completo 291 00:13:11,049 --> 00:13:13,389 y aquí le he pasado propiedad por propiedad 292 00:13:13,389 --> 00:13:14,090 esto ya sí 293 00:13:14,090 --> 00:13:17,549 bueno, pues más o menos la dinámica entendida 294 00:13:17,549 --> 00:13:17,750 ¿no? 295 00:13:19,129 --> 00:13:19,690 vale 296 00:13:19,690 --> 00:13:22,129 pero 297 00:13:22,129 --> 00:13:24,529 esta aplicación 298 00:13:24,529 --> 00:13:27,350 solo tiene una entidad 299 00:13:27,350 --> 00:13:30,700 y si tuviera 300 00:13:30,700 --> 00:13:32,639 dos, por ejemplo, ahora vamos a 301 00:13:32,639 --> 00:13:34,679 trabajar con alumnos que tienen 302 00:13:34,679 --> 00:13:36,659 cada uno su matrícula, mi aplicación 303 00:13:36,659 --> 00:13:38,580 va a gestionar, pues que alumno 304 00:13:38,580 --> 00:13:40,600 ha pagado la matrícula, que patatín 305 00:13:40,600 --> 00:13:42,720 patatán, vale, pues entonces 306 00:13:42,720 --> 00:13:43,980 yo me voy con el 307 00:13:43,980 --> 00:13:46,679 cliente y le digo, oye la matrícula 308 00:13:47,320 --> 00:13:48,840 ¿cómo se caracteriza 309 00:13:48,840 --> 00:13:50,700 de que va la matrícula? le digo, oye pues la matrícula 310 00:13:50,700 --> 00:13:52,679 tiene un código, tiene 311 00:13:52,679 --> 00:13:54,299 un nombre de 312 00:13:54,299 --> 00:13:56,440 matrícula, pues de dam, dau 313 00:13:56,440 --> 00:13:57,779 y tiene un precio 314 00:13:57,779 --> 00:14:00,220 vale, pues entonces es una 315 00:14:00,220 --> 00:14:01,279 entidad compleja 316 00:14:01,279 --> 00:14:04,240 porque si me dijeran la matrícula 317 00:14:04,240 --> 00:14:06,320 es un precio, ya está, pues la podría declarar 318 00:14:06,320 --> 00:14:08,440 como dabble, porque en un dabble 319 00:14:08,440 --> 00:14:09,919 me cabe el precio, ya está, podría 320 00:14:09,919 --> 00:14:12,179 matrícula, dabble, pero no 321 00:14:12,179 --> 00:14:14,159 la matrícula tiene su nombre, tiene su 322 00:14:14,159 --> 00:14:16,179 precio, tiene su no sé qué, pues tengo que hacerme 323 00:14:16,179 --> 00:14:18,460 una clase matrícula que tenga todo eso 324 00:14:18,460 --> 00:14:20,220 pues venga, vamos a 325 00:14:20,220 --> 00:14:21,240 ampliar la aplicación 326 00:14:21,240 --> 00:14:31,240 ahora con matrícula 327 00:14:31,240 --> 00:14:32,980 a la otra clase más, matrícula 328 00:14:32,980 --> 00:14:35,419 Le quito el public para no liarnos 329 00:14:35,419 --> 00:14:37,600 Matrícula, ¿por qué se va a caracterizar? 330 00:14:38,399 --> 00:14:39,580 Pues se va a caracterizar 331 00:14:39,580 --> 00:14:41,559 Por un código de matrícula 332 00:14:41,559 --> 00:14:42,240 Por ejemplo 333 00:14:42,240 --> 00:14:46,000 Se va a caracterizar por una descripción 334 00:14:46,000 --> 00:14:50,299 Y se va a caracterizar 335 00:14:50,299 --> 00:14:52,500 Por un precio 336 00:14:52,500 --> 00:14:55,519 Una cantidad 337 00:14:55,519 --> 00:14:59,200 Por esas tres cosas 338 00:14:59,200 --> 00:15:00,419 Se va a caracterizar 339 00:15:00,419 --> 00:15:03,220 Vale, entonces podríamos 340 00:15:03,220 --> 00:15:04,879 Instanciar matrículas 341 00:15:04,879 --> 00:15:06,220 ver los precios que tiene, etc. 342 00:15:07,039 --> 00:15:08,259 Pero lógicamente 343 00:15:08,259 --> 00:15:10,759 os vendrá a la cabeza 344 00:15:10,759 --> 00:15:11,919 una pregunta natural 345 00:15:11,919 --> 00:15:13,980 sobre esta aplicación. 346 00:15:14,720 --> 00:15:15,840 ¿No os canta algo raro? 347 00:15:15,919 --> 00:15:17,440 Tengo alumno con sus propiedades, 348 00:15:18,000 --> 00:15:19,139 matrícula con las suyas, 349 00:15:19,259 --> 00:15:21,220 una aplicación que gestiona matrículas de alumnos. 350 00:15:21,679 --> 00:15:23,379 ¿Qué os suena aquí un poco extraño? 351 00:15:26,159 --> 00:15:26,600 Eso. 352 00:15:27,159 --> 00:15:27,580 Muy bien. 353 00:15:27,919 --> 00:15:29,559 Tengo mis alumnos, tengo las matrículas, 354 00:15:29,639 --> 00:15:32,080 pero esta aplicación gestiona matrículas de alumnos. 355 00:15:32,080 --> 00:15:34,220 O sea, las matrículas solo tienen sentido 356 00:15:34,220 --> 00:15:35,679 si son de un alumno, las matrículas 357 00:15:35,679 --> 00:15:37,679 los alumnos sí pueden estar sueltos por la vida 358 00:15:37,679 --> 00:15:40,120 pero una matrícula es de un alumno 359 00:15:40,120 --> 00:15:40,840 entonces 360 00:15:40,840 --> 00:15:44,200 nos falta algo fundamental en este diseño 361 00:15:44,200 --> 00:15:46,159 que el alumno 362 00:15:46,159 --> 00:15:48,220 tiene su matrícula 363 00:15:48,220 --> 00:15:48,600 luego 364 00:15:48,600 --> 00:15:51,720 esto automáticamente ahora ya 365 00:15:51,720 --> 00:15:53,679 me hace que yo modifique la clase alumno 366 00:15:53,679 --> 00:15:55,240 porque ahora alumno se va a caracterizar 367 00:15:55,240 --> 00:16:00,019 por su NIF 368 00:16:00,019 --> 00:16:01,840 su nombre, su edad 369 00:16:01,840 --> 00:16:03,740 y ahora le aparece 370 00:16:03,740 --> 00:16:04,879 una propiedad nueva 371 00:16:04,879 --> 00:16:08,039 que es su matrícula 372 00:16:08,039 --> 00:16:14,539 y matrícula es otra 373 00:16:14,539 --> 00:16:15,379 propiedad más 374 00:16:15,379 --> 00:16:18,580 lo que pasa es que esta es de un tipo 375 00:16:18,580 --> 00:16:20,539 complejo, es del tipo 376 00:16:20,539 --> 00:16:22,600 matrícula, nif y nombre son 377 00:16:22,600 --> 00:16:24,340 string, porque con un string se queda 378 00:16:24,340 --> 00:16:26,019 completamente caracterizado nif y nombre 379 00:16:26,019 --> 00:16:28,580 el hace su nint, porque con un número se queda 380 00:16:28,580 --> 00:16:29,940 completamente caracterizado edad 381 00:16:29,940 --> 00:16:32,659 pero matrícula no se queda 382 00:16:32,659 --> 00:16:34,620 completamente caracterizado con un 383 00:16:34,620 --> 00:16:36,419 double o con un string, porque matrícula 384 00:16:36,419 --> 00:16:37,539 tiene muchas cosas dentro 385 00:16:37,539 --> 00:16:41,539 entonces me tendré que hacer mi clase matrícula 386 00:16:41,539 --> 00:16:43,279 con todas las cosas que tiene dentro 387 00:16:43,279 --> 00:16:47,500 y ahora ya sí, alumno tendrá dentro de sí 388 00:16:47,500 --> 00:16:50,299 un objeto matrícula suyo 389 00:16:50,299 --> 00:16:51,860 con sus propios datos 390 00:16:51,860 --> 00:17:01,179 luego, las clases, los objetos 391 00:17:01,179 --> 00:17:04,299 tienen dentro otros objetos que los caracterizan 392 00:17:04,299 --> 00:17:06,940 porque si no, el modelo se quedaría muy sencillo 393 00:17:06,940 --> 00:17:07,460 muy simple 394 00:17:07,460 --> 00:17:09,940 y esto no nos tiene que asustar 395 00:17:09,940 --> 00:17:12,440 porque matrícula es otra variable más 396 00:17:12,440 --> 00:17:15,759 es otra variable más, lo que pasa es que es de este tipo de dato 397 00:17:15,759 --> 00:17:18,859 y yo aquí ni hago new ni hago nada 398 00:17:18,859 --> 00:17:21,839 no hay necesidad porque aquí estoy en la clase, estoy en la plantilla 399 00:17:21,839 --> 00:17:25,359 aquí lo que digo es, oye que mi alumno va a tener un nif 400 00:17:25,359 --> 00:17:27,960 mi alumno va a tener un nombre, mi alumno va a tener una edad 401 00:17:27,960 --> 00:17:30,759 y mi alumno va a tener una matrícula, pero todavía no hay nada real 402 00:17:30,759 --> 00:17:33,000 aquí no existe nada todavía, esto es una plantilla 403 00:17:33,000 --> 00:17:36,299 aquí no hay ningún nif, no hay ningún nombre 404 00:17:36,299 --> 00:17:38,859 no hay ninguna edad y no hay ninguna matrícula, no hay nada 405 00:17:38,859 --> 00:17:41,599 por eso ni hago new ni hay nada, solamente hay 406 00:17:41,599 --> 00:17:44,240 unas casillas diciendo 407 00:17:44,240 --> 00:17:46,079 el alumno tiene casilla 408 00:17:46,079 --> 00:17:48,000 nif, casilla nombre, casilla edad, 409 00:17:48,119 --> 00:17:50,240 casilla matrícula. Pero esas casillas 410 00:17:50,240 --> 00:17:52,039 solo se van a 411 00:17:52,039 --> 00:17:54,259 rellenar cuando 412 00:17:54,259 --> 00:17:55,920 el programa se lance y 413 00:17:55,920 --> 00:17:57,019 aparezcan los alumnos. 414 00:18:00,250 --> 00:18:01,809 Bueno, pues para no liar 415 00:18:01,809 --> 00:18:03,750 vamos a hacernos un main2 416 00:18:03,750 --> 00:18:05,410 que 417 00:18:05,410 --> 00:18:07,690 crea ahora matrículas, se las ponga alumnos, 418 00:18:07,829 --> 00:18:09,470 etc. Este main, este 419 00:18:09,470 --> 00:18:11,309 proyecto de ejemplo, como lo subimos 420 00:18:11,309 --> 00:18:13,970 luego, este main lo dejamos así 421 00:18:13,970 --> 00:18:15,730 que es el que trabaja con objetos 422 00:18:15,730 --> 00:18:17,869 normales y corrientes, que no tiene 423 00:18:17,869 --> 00:18:19,690 ni otros objetos dentro, ni nada 424 00:18:19,690 --> 00:18:25,940 a ver 425 00:18:25,940 --> 00:18:27,819 solo uno, la máquina 426 00:18:27,819 --> 00:18:28,779 virtual solo va a tener 427 00:18:28,779 --> 00:18:31,579 solo va a tener en cuenta uno, el otro no se va a arrancar nunca 428 00:18:31,579 --> 00:18:33,700 si tiene dos, o yo me voy a hacer otra clase 429 00:18:33,700 --> 00:18:35,599 main, le voy a decir, arranca ahora este, con lo cual 430 00:18:35,599 --> 00:18:37,599 este otro es como si no existiera, nunca va 431 00:18:37,599 --> 00:18:38,619 a ser arrancado 432 00:18:38,619 --> 00:18:41,680 digamos que en un paquete solo podemos tener 433 00:18:41,680 --> 00:18:45,779 a ver, puedes tener todos los que quieras 434 00:18:45,779 --> 00:18:51,640 Pero, claro, una ejecución solo puede empezar por uno. 435 00:18:52,720 --> 00:18:54,799 Tú eliges por cuál, ¿vale? 436 00:18:54,799 --> 00:18:55,500 Eliges por cuál. 437 00:18:55,640 --> 00:19:00,039 Cada ejecución arranca en un único main, en un único main. 438 00:19:00,400 --> 00:19:02,859 Entonces, voy a hacer otro main que significaría darle otro 439 00:19:02,859 --> 00:19:04,180 punto de arranque a la aplicación, 440 00:19:04,259 --> 00:19:06,819 otro punto de arranque, para elegir si la arranco desde este 441 00:19:06,819 --> 00:19:08,259 o desde este otro, ¿vale? 442 00:19:08,880 --> 00:19:11,099 Entonces, me voy a hacer otra clase con otro método main que 443 00:19:11,099 --> 00:19:12,339 sería otro punto de arranque. 444 00:19:12,420 --> 00:19:14,480 Es como hacer otra aplicación distinta, otra distinta. 445 00:19:14,480 --> 00:19:17,380 Pues venga, me voy a hacer aquí un 446 00:19:17,380 --> 00:19:18,640 main2 447 00:19:18,640 --> 00:19:31,960 No, aquí 448 00:19:31,960 --> 00:19:33,660 con el diseño que yo he hecho 449 00:19:33,660 --> 00:19:36,299 un alumno tiene una única matrícula 450 00:19:36,299 --> 00:19:37,940 si tuviera varias, lo puede hacer 451 00:19:37,940 --> 00:19:39,339 pero entonces tengo que cambiarlo a esto 452 00:19:39,339 --> 00:19:42,339 con el diseño que yo he hecho 453 00:19:42,339 --> 00:19:44,720 un alumno tiene una matrícula, o sea, esto lógicamente 454 00:19:44,720 --> 00:19:46,640 está completamente 455 00:19:46,640 --> 00:19:48,180 ligado al diagrama de la relación 456 00:19:48,180 --> 00:19:50,660 esto sería una relación de uno a uno 457 00:19:50,660 --> 00:19:53,119 un alumno, una matrícula, o de 0 a 1 458 00:19:53,119 --> 00:19:55,380 porque puede haber un alumno sin matrícula 459 00:19:55,380 --> 00:19:56,299 a lo mejor, podría 460 00:19:56,299 --> 00:19:59,319 esta sería de 1 a 1, que yo la quiero 461 00:19:59,319 --> 00:20:01,180 de 1 a muchos, pues es así 462 00:20:01,180 --> 00:20:05,440 bueno, si estás 463 00:20:05,440 --> 00:20:07,480 trabajando con una base de datos, sí, pero ahora mismo 464 00:20:07,480 --> 00:20:09,220 nosotros estamos trabajando con una base de datos 465 00:20:09,220 --> 00:20:11,420 es bueno que 466 00:20:11,420 --> 00:20:13,440 nuestros datos no vienen de una base 467 00:20:13,440 --> 00:20:15,240 de datos, los vamos a ir creando 468 00:20:15,240 --> 00:20:17,599 o sea, es bueno que veáis ese paralelismo 469 00:20:17,599 --> 00:20:19,319 en cuanto al concepto 470 00:20:19,319 --> 00:20:21,640 ¿vale? pero ahora mismo nuestros datos 471 00:20:21,640 --> 00:20:23,220 no están en una base de datos, luego no hay ni 472 00:20:23,220 --> 00:20:25,099 de relación, los metemos por teclado 473 00:20:25,099 --> 00:20:27,960 vale 474 00:20:27,960 --> 00:20:30,339 bueno pues entonces 475 00:20:30,339 --> 00:20:32,660 mi otra aplicación 476 00:20:32,660 --> 00:20:35,380 esta es otra aplicación porque es otro main 477 00:20:35,380 --> 00:20:36,519 luego esta es otra 478 00:20:36,519 --> 00:20:38,680 esta es otra porque es otro main 479 00:20:38,680 --> 00:20:41,119 pues venga, vamos a hacernos un alumno 480 00:20:41,119 --> 00:20:45,420 el que yo decida 481 00:20:45,420 --> 00:20:48,160 es que yo no arranco, es que claro, yo cuando arranco una aplicación 482 00:20:48,160 --> 00:20:49,319 arranco un main, le digo este 483 00:20:49,319 --> 00:20:51,160 claro 484 00:20:51,160 --> 00:20:54,240 porque si yo arrancara la aplicación como tal así 485 00:20:54,240 --> 00:20:56,180 le tengo que 486 00:20:56,180 --> 00:20:58,079 decidir en las configuraciones de ejecución 487 00:20:58,079 --> 00:20:59,380 cuál de las dos elegir 488 00:20:59,380 --> 00:21:02,299 ¿vale? porque si no él no sabe 489 00:21:02,299 --> 00:21:03,720 por cuál arrancar 490 00:21:03,720 --> 00:21:08,119 ¿te va a arrancar por uno o te va a arrancar por otro? 491 00:21:08,180 --> 00:21:08,839 nunca por los dos 492 00:21:08,839 --> 00:21:11,660 vale, pues a ver 493 00:21:11,660 --> 00:21:13,119 mi este de aquí 494 00:21:13,119 --> 00:21:16,920 relax 495 00:21:16,920 --> 00:21:20,519 venga, pues si yo me hago un alumno 496 00:21:20,519 --> 00:21:27,349 Aquí tengo mi alumno 497 00:21:27,349 --> 00:21:28,049 Vale 498 00:21:28,049 --> 00:21:33,650 El alumno ya tiene espacio para sus propiedades 499 00:21:33,650 --> 00:21:35,930 Pues venga, mi alumno 500 00:21:35,930 --> 00:21:37,910 Le vamos a dar 501 00:21:37,910 --> 00:21:39,250 Tiene un NIF 502 00:21:39,250 --> 00:21:40,690 Muy bonito 503 00:21:40,690 --> 00:21:45,660 Y tiene un nombre, muy bonito 504 00:21:45,660 --> 00:21:52,940 Lo podía leer por teclado 505 00:21:52,940 --> 00:21:55,059 Claro, en lugar de dárselo directamente 506 00:21:55,059 --> 00:21:56,839 Esto ya es lo que la aplicación me diga 507 00:21:56,839 --> 00:22:00,000 Tiene su edad 508 00:22:00,000 --> 00:22:08,259 muy bonita también 509 00:22:08,259 --> 00:22:09,619 y 510 00:22:09,619 --> 00:22:12,559 le voy a dar 511 00:22:12,559 --> 00:22:13,859 una matrícula 512 00:22:13,859 --> 00:22:15,759 entonces alumno.matricula 513 00:22:15,759 --> 00:22:17,420 ¿qué necesita? 514 00:22:18,200 --> 00:22:20,299 un objeto matrícula 515 00:22:20,299 --> 00:22:22,339 luego ¿qué pondríais ahí? 516 00:22:23,400 --> 00:22:24,359 muy bien 517 00:22:24,359 --> 00:22:26,420 antes que nada habría que crear 518 00:22:26,420 --> 00:22:27,920 el objeto matrícula para él 519 00:22:27,920 --> 00:22:29,759 antes de nada, antes de empezar a hablar 520 00:22:29,759 --> 00:22:31,480 creamos el objeto matrícula 521 00:22:31,480 --> 00:22:34,539 y ahora ya podemos meternos en la matrícula 522 00:22:34,539 --> 00:22:35,420 para darle los datos 523 00:22:35,420 --> 00:22:38,059 entonces 524 00:22:38,059 --> 00:22:40,380 ahora, que yo quiero 525 00:22:40,380 --> 00:22:42,680 a mi matrícula darle un código 526 00:22:42,680 --> 00:22:43,359 pues sería 527 00:22:43,359 --> 00:22:46,160 alumno.matrícula 528 00:22:46,160 --> 00:22:46,980 y ahora que pondría 529 00:22:46,980 --> 00:22:49,059 .código 530 00:22:49,059 --> 00:22:52,579 y así me puedo ir hasta el infinito 531 00:22:52,579 --> 00:22:54,380 porque si matrícula tuviera dentro otro objeto 532 00:22:54,380 --> 00:22:56,299 seguiría con el punto y punto y punto 533 00:22:56,299 --> 00:22:57,200 y así hasta el infinito 534 00:22:57,200 --> 00:22:59,319 código 535 00:22:59,319 --> 00:23:01,940 ala, pues mi alumno 536 00:23:01,940 --> 00:23:04,200 tiene una matrícula 537 00:23:04,200 --> 00:23:05,819 cuyo código es 43 538 00:23:05,819 --> 00:23:13,940 descripción 539 00:23:13,940 --> 00:23:15,819 pues mi alumno está 540 00:23:15,819 --> 00:23:17,319 matriculado en DAM 541 00:23:17,319 --> 00:23:24,960 mi alumno 542 00:23:24,960 --> 00:23:31,480 cantidad, ¿cuánta cantidad 543 00:23:31,480 --> 00:23:32,700 va a pagar de matrícula? 544 00:23:33,920 --> 00:23:34,799 pues eso 545 00:23:34,799 --> 00:23:36,859 ¿vale? entonces es 546 00:23:36,859 --> 00:23:39,220 aplicar el mismo criterio todo el rato 547 00:23:39,220 --> 00:23:41,660 si alumno matrícula es un objeto 548 00:23:41,660 --> 00:23:43,099 porque lo es 549 00:23:43,099 --> 00:23:45,559 pues tendré que crear espacio para él 550 00:23:45,559 --> 00:23:46,240 antes de nada 551 00:23:46,240 --> 00:23:49,339 edad era un número, por eso no he hecho el niño 552 00:23:49,339 --> 00:23:50,940 Porque es un número, le asigno el número y ya está 553 00:23:50,940 --> 00:23:53,559 Nif es un string, trabajo como trabajo 554 00:23:53,559 --> 00:23:55,339 Con los string, asigno el valor y ya está 555 00:23:55,339 --> 00:23:57,519 Pero matrícula es un objeto 556 00:23:57,519 --> 00:23:59,539 Matrícula, pues tengo que crearlo 557 00:23:59,539 --> 00:24:00,220 Antes de nada 558 00:24:00,220 --> 00:24:03,119 Y luego ya, ¿qué le quiero dar propiedades? 559 00:24:03,279 --> 00:24:04,200 Pues se las doy 560 00:24:04,200 --> 00:24:12,819 ¿Vale? ¿Qué quiero mostrar 561 00:24:12,819 --> 00:24:14,799 Mi alumno? Pues con esto no haríamos nada 562 00:24:14,799 --> 00:24:16,980 Lógicamente, yo podría mostrar 563 00:24:16,980 --> 00:24:17,940 Lo que me diera a mí la gana 564 00:24:17,940 --> 00:24:30,990 ¿Vale? Aquí ya podríamos mostrar lo que quisiéramos 565 00:24:30,990 --> 00:24:32,470 Pues alumno 566 00:24:32,470 --> 00:24:34,650 Su matrícula 567 00:24:34,650 --> 00:24:36,910 Por su código, lo que yo quisiera 568 00:24:36,910 --> 00:24:39,250 O la cantidad, lo que vas a pagar 569 00:24:39,250 --> 00:24:45,170 No, lo acabamos de hacer hace un ratito 570 00:24:45,170 --> 00:24:47,130 Y acabo de explicar por qué no funciona 571 00:24:47,130 --> 00:24:48,269 ¿En qué estabas pensando? 572 00:24:51,519 --> 00:24:52,819 Pero ¿qué vas a correr con un for each? 573 00:24:52,839 --> 00:24:53,519 Aquí no hay ningún array 574 00:24:53,519 --> 00:24:55,240 No puedes recorrer nada con un for each 575 00:24:55,240 --> 00:25:04,490 ¿Vale? 576 00:25:05,230 --> 00:25:06,930 Entonces voy a ejecutar este main 577 00:25:06,930 --> 00:25:10,490 Aquí, ligado con lo que me preguntabais antes 578 00:25:10,490 --> 00:25:11,730 Efectivamente 579 00:25:11,730 --> 00:25:13,829 Yo hago varios mains 580 00:25:13,829 --> 00:25:17,190 pues para poder practicar diferentes cosas 581 00:25:17,190 --> 00:25:18,210 sin mezclar el código 582 00:25:18,210 --> 00:25:19,130 y que luego quede más claro. 583 00:25:19,809 --> 00:25:21,849 Claro, si entendemos este proyecto 584 00:25:21,849 --> 00:25:23,809 como una aplicación completa, 585 00:25:24,710 --> 00:25:26,910 yo no puedo arrancar esta aplicación sin más 586 00:25:26,910 --> 00:25:28,670 porque la máquina virtual se volvería loca. 587 00:25:29,230 --> 00:25:31,769 Me diría, pero escúchame, 588 00:25:31,950 --> 00:25:33,529 dime el punto de arranque, 589 00:25:33,589 --> 00:25:35,009 dime el punto de arranque cuál es. 590 00:25:35,410 --> 00:25:36,869 Entonces, si lo puedo configurar aquí 591 00:25:36,869 --> 00:25:38,549 en configuraciones de arranque, 592 00:25:38,630 --> 00:25:39,630 en run configuratios, 593 00:25:40,089 --> 00:25:41,349 pero ahora no nos vamos a meter en eso. 594 00:25:41,349 --> 00:25:43,829 que yo quiero ejecutar este 595 00:25:43,829 --> 00:25:45,690 pues aquí botón derecho run este 596 00:25:45,690 --> 00:25:47,190 ya está, que quiero ejecutar este 597 00:25:47,190 --> 00:25:49,309 pues aquí botón derecho run este y ya está 598 00:25:49,309 --> 00:25:52,029 y ese se convierte automáticamente en el punto de arranque 599 00:25:52,029 --> 00:25:53,670 pues venga 600 00:25:53,670 --> 00:25:55,549 vamos a ejecutar el 2 601 00:25:55,549 --> 00:25:59,539 vale, pues este apagado 602 00:25:59,539 --> 00:26:10,269 76, bueno pues 603 00:26:10,269 --> 00:26:12,450 esta dinámica de crear clases 604 00:26:12,450 --> 00:26:14,069 con sus propiedades 605 00:26:14,069 --> 00:26:16,849 y acceder a ellas 606 00:26:16,849 --> 00:26:18,430 con el operador 607 00:26:18,430 --> 00:26:20,369 punto, para darles valor 608 00:26:20,369 --> 00:26:22,990 o para recuperarlo, para mostrarlo, 609 00:26:24,130 --> 00:26:24,769 está cogida. 610 00:26:26,950 --> 00:26:28,430 Ya sabemos cómo crear una clase, 611 00:26:29,569 --> 00:26:32,470 cómo darle, asignarle propiedades 612 00:26:32,470 --> 00:26:35,569 y luego cómo instanciar objetos de esa clase 613 00:26:35,569 --> 00:26:37,650 y dar valor a sus propiedades. 614 00:26:38,349 --> 00:26:40,869 Y con esas propiedades yo luego opero 615 00:26:40,869 --> 00:26:41,890 como cualquier otra variable. 616 00:26:42,329 --> 00:26:43,609 Opero y hago lo que me dé la gana, 617 00:26:43,750 --> 00:26:44,450 como cualquier otra. 618 00:26:45,049 --> 00:26:46,569 O lo meto en un array, lo que quiera. 619 00:26:55,119 --> 00:26:56,680 Los métodos hemos dicho que son 620 00:26:56,680 --> 00:26:58,299 trozos de código 621 00:26:58,299 --> 00:27:01,119 que un objeto alumno puede ejecutar 622 00:27:01,119 --> 00:27:03,039 entonces esos trozos de código 623 00:27:03,039 --> 00:27:04,579 se supone que son 624 00:27:04,579 --> 00:27:07,319 cosas que a ti te interesa 625 00:27:07,319 --> 00:27:09,579 que a ti te interesa hacer con los alumnos 626 00:27:09,579 --> 00:27:11,359 o sea, tú has estudiado 627 00:27:11,359 --> 00:27:13,220 bien tu aplicación, te has entrevistado 628 00:27:13,220 --> 00:27:14,960 con el cliente, has mirado mil cosas 629 00:27:14,960 --> 00:27:17,279 y ya tienes claro que es lo que 630 00:27:17,279 --> 00:27:18,980 tu aplicación necesita hacer 631 00:27:18,980 --> 00:27:21,400 pues ponerle a un alumno 632 00:27:21,400 --> 00:27:23,319 si ha pagado la matrícula o no la ha pagado 633 00:27:23,319 --> 00:27:24,980 cambiarle el nombre 634 00:27:24,980 --> 00:27:26,140 porque se ha cambiado de nombre 635 00:27:26,140 --> 00:27:29,660 pues decirme si es mayor de edad o no 636 00:27:29,660 --> 00:27:31,960 hay cosas que a lo mejor tu aplicación 637 00:27:31,960 --> 00:27:33,380 va a querer hacer con los alumnos 638 00:27:33,380 --> 00:27:34,700 por ejemplo 639 00:27:34,700 --> 00:27:39,480 una muy fácil, pues a lo mejor 640 00:27:39,480 --> 00:27:42,039 el tipo de secretaría 641 00:27:42,039 --> 00:27:43,440 que me ha pedido la aplicación me ha dicho 642 00:27:43,440 --> 00:27:45,740 oye perdona, yo necesito saber 643 00:27:45,740 --> 00:27:47,339 de un alumno si es mayor de edad o no 644 00:27:47,339 --> 00:27:48,740 porque en función de eso 645 00:27:48,740 --> 00:27:51,960 hago unas cosas o hago otras, entonces tu aplicación 646 00:27:51,960 --> 00:27:53,839 tiene que tener una funcionalidad 647 00:27:54,480 --> 00:27:55,900 para decirme si un alumno 648 00:27:55,900 --> 00:27:57,759 es mayor de edad o no, la tiene que tener porque 649 00:27:57,759 --> 00:27:59,779 yo voy a invocar a esa funcionalidad 650 00:27:59,779 --> 00:28:01,400 para obtener respuesta. 651 00:28:02,700 --> 00:28:03,619 Vale, pues entonces, 652 00:28:03,819 --> 00:28:05,920 automáticamente, nosotros ya como programadores decimos 653 00:28:05,920 --> 00:28:07,980 vale, pues para cada alumno 654 00:28:07,980 --> 00:28:09,720 me va a interesar saber 655 00:28:09,720 --> 00:28:10,960 si es mayor de edad. 656 00:28:11,900 --> 00:28:13,660 Requisito. Pues entonces, 657 00:28:13,819 --> 00:28:15,920 en la clase alumno, me voy 658 00:28:15,920 --> 00:28:17,799 a, porque esta operativa 659 00:28:17,799 --> 00:28:19,539 tiene que ver con alumnos, porque 660 00:28:19,539 --> 00:28:21,119 si el alumno es mayor de edad, 661 00:28:22,140 --> 00:28:23,960 pues en la clase alumno, que es su sitio, 662 00:28:23,960 --> 00:28:27,079 me voy a meter un trozo de código 663 00:28:27,079 --> 00:28:28,859 que me diga 664 00:28:28,859 --> 00:28:30,619 si un alumno es mayor de edad o no 665 00:28:30,619 --> 00:28:32,039 me lo voy a meter en la clase alumno 666 00:28:32,039 --> 00:28:34,880 porque repito, esta operativa, esta funcionalidad 667 00:28:34,880 --> 00:28:36,119 está relacionada con alumnos 668 00:28:36,119 --> 00:28:38,180 que me dice el de secretaría 669 00:28:38,180 --> 00:28:41,019 oye, también necesito saber si una matrícula está pagada o no 670 00:28:41,019 --> 00:28:41,700 por ejemplo 671 00:28:41,700 --> 00:28:44,039 o si el precio supera 672 00:28:44,039 --> 00:28:45,720 el precio establecido 673 00:28:45,720 --> 00:28:48,960 pues de, uy, esto que me estás pidiendo tiene que ver con matrículas 674 00:28:48,960 --> 00:28:50,960 pues este trozo de código te lo voy a meter en matrícula 675 00:28:51,660 --> 00:28:53,359 pero estamos con lo de ser mayor de edad 676 00:28:53,359 --> 00:29:03,559 Vale, pues entonces, ahora ya vamos a programar un código que me diga si un alumno es mayor de edad o no. 677 00:29:04,500 --> 00:29:05,339 Un método. 678 00:29:06,460 --> 00:29:07,700 ¿Dónde lo meto eso? 679 00:29:07,880 --> 00:29:11,400 En alumno, porque yo he decidido que es ahí su sitio, porque tiene que ver con alumnos. 680 00:29:12,019 --> 00:29:27,569 Pues ahora vamos a hacer método que devuelve true o false en función de si el alumno es mayor de edad o no. 681 00:29:27,569 --> 00:29:43,009 vale 682 00:29:43,009 --> 00:29:45,009 pues entonces 683 00:29:45,009 --> 00:29:48,410 esto de aquí es un poco lo más complicado 684 00:29:48,410 --> 00:29:50,390 de entender y lo más complicado de explicar 685 00:29:50,390 --> 00:29:52,329 ahora haciendo 686 00:29:52,329 --> 00:29:54,390 este método, primero hay que 687 00:29:54,390 --> 00:29:56,490 darle un nombre, el método 688 00:29:56,490 --> 00:29:57,990 es el trozo de código que voy a hacer aquí 689 00:29:57,990 --> 00:29:59,930 un trocito de código relacionado con esto 690 00:29:59,930 --> 00:30:02,430 a ese trozo de código vamos a darle 691 00:30:02,430 --> 00:30:04,329 un nombre, para luego tenerlo identificado 692 00:30:04,329 --> 00:30:05,670 y poder llamarlo desde otros sitios 693 00:30:05,670 --> 00:30:08,670 pues por ejemplo, un nombre explicativo 694 00:30:08,670 --> 00:30:10,309 es 695 00:30:10,309 --> 00:30:10,950 mayor 696 00:30:10,950 --> 00:30:14,130 de edad. Así. 697 00:30:14,730 --> 00:30:15,210 Por ejemplo. 698 00:30:16,910 --> 00:30:18,069 Al método 699 00:30:18,069 --> 00:30:20,410 le doy, elijo 700 00:30:20,410 --> 00:30:22,150 un nombrecito, por ahora estoy eligiendo el nombre. 701 00:30:22,309 --> 00:30:24,190 Elijo un nombre lo más 702 00:30:24,190 --> 00:30:26,329 explicativo posible, un nombre lo más 703 00:30:26,329 --> 00:30:26,950 explicativo 704 00:30:26,950 --> 00:30:30,490 y que empiece por minúscula 705 00:30:30,490 --> 00:30:31,710 también como convenio. 706 00:30:32,089 --> 00:30:34,630 Igual que las propiedades, por minúscula 707 00:30:34,630 --> 00:30:36,630 como convenio. No es obligatorio, 708 00:30:36,710 --> 00:30:38,529 no lo es, pero luego queda 709 00:30:38,529 --> 00:30:40,049 más claro el código, hacedme caso. 710 00:30:40,309 --> 00:30:41,470 vale 711 00:30:41,470 --> 00:30:43,970 entonces a este método que me faltan 712 00:30:43,970 --> 00:30:46,230 a mí ahora me faltan mil cosas todavía 713 00:30:46,230 --> 00:30:48,470 por ponerle esto ahora mismo 714 00:30:48,470 --> 00:30:50,170 he elegido el nombre 715 00:30:50,170 --> 00:30:52,390 lo único que he hecho es elegir el nombre, no he hecho nada más 716 00:30:52,390 --> 00:30:54,250 me faltan todavía mil cosas 717 00:30:54,250 --> 00:30:56,170 por hacer, lo único que he hecho 718 00:30:56,170 --> 00:30:57,589 es elegir el nombre del método 719 00:30:57,589 --> 00:30:58,289 vale 720 00:30:58,289 --> 00:31:02,210 a este método ¿quién lo va a llamar? 721 00:31:03,849 --> 00:31:05,910 pues a los métodos de una clase 722 00:31:05,910 --> 00:31:08,529 los llaman los objetos 723 00:31:08,529 --> 00:31:09,250 de la clase 724 00:31:09,250 --> 00:31:12,130 el método se declara aquí 725 00:31:12,130 --> 00:31:14,529 pero luego el que lo llama 726 00:31:14,529 --> 00:31:16,130 el que lo invoca, el que lo ejecuta 727 00:31:16,130 --> 00:31:17,630 es un objeto de la clase 728 00:31:17,630 --> 00:31:20,269 es decir, este método 729 00:31:20,269 --> 00:31:22,490 cuando ya esté hecho, que está sin hacer 730 00:31:22,490 --> 00:31:24,250 ¿quién lo va a ejecutar? 731 00:31:24,309 --> 00:31:26,549 no se va a ejecutar aquí, aquí está simplemente 732 00:31:26,549 --> 00:31:27,950 escrito para ver lo que hace 733 00:31:27,950 --> 00:31:29,710 pero ahí no se ejecuta 734 00:31:29,710 --> 00:31:32,670 ¿quién va a ejecutar este método? pues yo en mi main 735 00:31:32,670 --> 00:31:34,630 ¿vale? 736 00:31:34,630 --> 00:31:35,890 me voy aquí a este main 737 00:31:35,890 --> 00:31:38,630 por ejemplo, al main2 de la matrícula 738 00:31:40,950 --> 00:31:51,529 Y vamos a ver, pues por ejemplo, quiero ver si el alumno, este que me acabo de crear, el único, es mayor de edad. 739 00:31:52,990 --> 00:32:02,089 Pues entonces, este alumno, el objeto alumno, este, es el que llamará al método, este. 740 00:32:02,829 --> 00:32:10,910 Luego los métodos no se llaman así por las buenas de la nada, los llama siempre un objeto perteneciente a la clase donde está el método. 741 00:32:14,299 --> 00:32:16,599 Entonces, ¿cómo lo va a llamar? 742 00:32:18,119 --> 00:32:23,180 alumno.nombreDelMétodo 743 00:32:23,180 --> 00:32:30,059 y unos paréntesis que le explicaremos por qué. 744 00:32:31,099 --> 00:32:33,200 Luego, igual que a las propiedades las llama 745 00:32:33,200 --> 00:32:36,200 .nombreDeLaPropiedad para dar un valor, 746 00:32:37,200 --> 00:32:40,400 al método lo va a llamar .también 747 00:32:40,400 --> 00:32:42,079 nombreDelMétodo. 748 00:32:42,460 --> 00:32:44,299 Pero es fundamental entender, 749 00:32:44,599 --> 00:32:45,779 y aquí está la clave de todo, 750 00:32:45,779 --> 00:32:47,819 que a ese método que yo voy a hacer, 751 00:32:47,900 --> 00:32:48,559 que está sin hacer, 752 00:32:49,160 --> 00:32:51,000 el que le llamas siempre es un objeto. 753 00:32:51,440 --> 00:32:52,700 No aparece de la nada. 754 00:32:53,000 --> 00:32:54,519 No es que llamemos a es mayor de edad y ya está. 755 00:32:55,279 --> 00:32:57,319 No, lo llama siempre un objeto. 756 00:32:59,460 --> 00:33:03,339 Y entonces, este método va a trabajar con este objeto. 757 00:33:03,759 --> 00:33:05,140 Con este, no con otro, con este. 758 00:33:06,599 --> 00:33:09,099 Entonces, ahora, cuando yo programe este objeto, 759 00:33:09,440 --> 00:33:10,640 aquí, perdón, este método, 760 00:33:11,299 --> 00:33:12,099 es mayor de edad. 761 00:33:12,500 --> 00:33:14,200 Ahora ya voy a empezar a programarlo. 762 00:33:14,200 --> 00:33:16,859 vale, pues en estas interrogaciones 763 00:33:16,859 --> 00:33:17,920 que yo he puesto aquí delante 764 00:33:17,920 --> 00:33:20,339 ¿qué es lo que pongo? 765 00:33:21,400 --> 00:33:22,640 si ese método 766 00:33:22,640 --> 00:33:24,359 me va a devolver 767 00:33:24,359 --> 00:33:26,660 algo como valor de vuelta 768 00:33:26,660 --> 00:33:27,200 o no 769 00:33:27,200 --> 00:33:30,579 puede que no me devuelva nada, puede que sí 770 00:33:30,579 --> 00:33:31,799 todo esto lo iremos entendiendo 771 00:33:31,799 --> 00:33:33,779 en este caso, este método 772 00:33:33,779 --> 00:33:36,339 ¿qué me va a devolver? 773 00:33:36,759 --> 00:33:38,619 me tiene que devolver o true o false 774 00:33:38,619 --> 00:33:41,000 con lo cual lo que me va a devolver es un boolean 775 00:33:41,000 --> 00:33:42,599 pues ¿qué pongo yo aquí? 776 00:33:42,599 --> 00:33:46,319 el tipo de dato del valor de vuelta 777 00:33:46,319 --> 00:33:48,859 vale, pues este método 778 00:33:48,859 --> 00:33:50,759 me va a devolver 779 00:33:50,759 --> 00:33:52,500 un boolean 780 00:33:52,500 --> 00:33:54,920 vale, luego el método 781 00:33:54,920 --> 00:33:55,700 luego el nombre 782 00:33:55,700 --> 00:33:58,000 y ahora, ¿qué pongo después? 783 00:33:58,500 --> 00:33:59,700 unos paréntesis 784 00:33:59,700 --> 00:34:04,559 unos paréntesis 785 00:34:04,559 --> 00:34:06,039 y una llave 786 00:34:06,039 --> 00:34:08,579 que se cierra y se abre 787 00:34:08,579 --> 00:34:17,139 entonces 788 00:34:17,139 --> 00:34:20,800 dentro de estas llaves va el código del método 789 00:34:20,800 --> 00:34:23,000 estos paréntesis 790 00:34:23,000 --> 00:34:24,960 ahora mismo los dejo vacíos 791 00:34:24,960 --> 00:34:26,380 ya los usaremos 792 00:34:26,380 --> 00:34:28,619 en el siguiente método 793 00:34:28,619 --> 00:34:30,800 ahora mismo los dejo vacíos 794 00:34:30,800 --> 00:34:32,260 vale, pues ahora pienso 795 00:34:32,260 --> 00:34:34,960 elegido ya, el valor que va a devolver 796 00:34:34,960 --> 00:34:35,940 un true o un false 797 00:34:35,940 --> 00:34:37,599 el nombre del método 798 00:34:37,599 --> 00:34:40,420 paréntesis vacíos, pero hay que ponerlos obligatorios 799 00:34:40,420 --> 00:34:41,320 paréntesis vacíos 800 00:34:41,320 --> 00:34:44,340 y ahora, a este método, ¿quién lo va a llamar? 801 00:34:44,900 --> 00:34:46,179 lo va a llamar este 802 00:34:46,179 --> 00:34:47,559 ¿veis? 803 00:34:47,760 --> 00:34:49,780 el objeto alumno va a llamar 804 00:34:49,780 --> 00:34:53,760 con el punto al método es mayor de edad, poniendo su paréntesis también. 805 00:34:54,860 --> 00:34:56,159 Bueno, pues ahora me pongo a hacer el código. 806 00:34:56,800 --> 00:34:57,960 ¿Qué hace este código? 807 00:34:58,820 --> 00:35:00,239 Pues tendrá que ir a dónde? 808 00:35:00,619 --> 00:35:02,059 A la edad del alumno. 809 00:35:03,340 --> 00:35:06,840 La edad tiene acceso directo porque está aquí arriba. 810 00:35:07,739 --> 00:35:09,780 Es decir, todo el código que yo haga aquí, 811 00:35:10,579 --> 00:35:13,059 el código que hagamos aquí, 812 00:35:13,840 --> 00:35:26,300 tiene acceso directamente, sin necesidad de redeclararlo de nuevo ni de nada, 813 00:35:26,300 --> 00:35:38,539 a todas las propiedades 814 00:35:38,539 --> 00:35:39,659 del objeto que lo llama 815 00:35:39,659 --> 00:35:43,309 fijaos, a este objeto 816 00:35:43,309 --> 00:35:45,789 perdón, a este método 817 00:35:45,789 --> 00:35:47,250 del objeto 818 00:35:47,250 --> 00:35:48,769 que lo llama 819 00:35:48,769 --> 00:35:55,210 a este método, repito 820 00:35:55,210 --> 00:35:57,409 lo está llamando este 821 00:35:57,409 --> 00:35:59,730 este lo está llamando 822 00:35:59,730 --> 00:36:02,369 luego cuando yo aquí ponga 823 00:36:02,369 --> 00:36:04,170 por ejemplo esto 824 00:36:04,170 --> 00:36:06,469 if edad 825 00:36:06,469 --> 00:36:08,630 mayor que 18 826 00:36:08,630 --> 00:36:11,349 return true 827 00:36:11,349 --> 00:36:12,849 else 828 00:36:12,849 --> 00:36:15,369 retun false, que este código ya 829 00:36:15,369 --> 00:36:16,309 lo sabemos hacer. 830 00:36:19,030 --> 00:36:20,590 Del retun ahora, un momento, olvidaos. 831 00:36:21,570 --> 00:36:23,429 Vale, cuando yo ponga aquí edad, 832 00:36:24,130 --> 00:36:25,269 estoy poniendo edad directamente 833 00:36:25,269 --> 00:36:27,090 sin declarar ni nada. ¿Por qué? 834 00:36:27,530 --> 00:36:28,610 Porque edad está aquí arriba. 835 00:36:29,349 --> 00:36:30,429 Es la edad del alumno. 836 00:36:31,269 --> 00:36:33,429 Entonces, este método tiene acceso 837 00:36:33,429 --> 00:36:35,590 directamente a las propiedades 838 00:36:35,590 --> 00:36:37,570 del alumno que lo está llamando. 839 00:36:38,090 --> 00:36:39,610 Que están declaradas aquí arriba. 840 00:36:40,690 --> 00:36:41,389 Que están declaradas 841 00:36:41,389 --> 00:36:41,929 aquí arriba. 842 00:36:43,369 --> 00:36:45,190 Entonces, yo con esto estoy diciendo, 843 00:36:45,829 --> 00:36:49,369 si la edad del alumno que te llama, 844 00:36:50,449 --> 00:36:54,409 luego aquí el que está llamando es alumno, 845 00:36:54,409 --> 00:36:56,570 luego es mayor de edad, 846 00:36:56,650 --> 00:36:59,329 en esta llamada estará trabajando con la edad de este. 847 00:37:01,190 --> 00:37:04,349 Si la edad del alumno que te llama es mayor que 18, 848 00:37:04,489 --> 00:37:04,889 haz esto. 849 00:37:05,050 --> 00:37:06,130 Ahora vemos lo que es haz esto. 850 00:37:06,369 --> 00:37:07,130 Si no, haz esto otro. 851 00:37:15,480 --> 00:37:17,260 Sí, porque si no es mayor de edad, 852 00:37:17,360 --> 00:37:18,199 tienes que devolver false. 853 00:37:18,619 --> 00:37:20,539 Pero vamos a quitar por ahora el boolean para no liarnos. 854 00:37:21,199 --> 00:37:22,260 Vamos a hacer que el método 855 00:37:22,260 --> 00:37:25,280 muestre por pantalla si es mayor de edad o no. 856 00:37:25,900 --> 00:37:26,699 Que muestre. 857 00:37:29,559 --> 00:37:30,860 Para ir más despacio. 858 00:37:31,099 --> 00:37:31,900 Por pantalla. 859 00:37:36,880 --> 00:37:38,679 Si el alumno es mayor de edad o no. 860 00:37:39,159 --> 00:37:40,360 Pues entonces voy a quitar el retun. 861 00:37:41,719 --> 00:37:42,900 Y voy a poner 862 00:37:42,900 --> 00:37:44,440 es mayor de edad. 863 00:37:57,059 --> 00:37:58,260 Olvidaos del retun 864 00:37:58,260 --> 00:37:59,440 que he puesto hasta ahora. 865 00:37:59,440 --> 00:38:00,599 Lo incorporamos después. 866 00:38:01,440 --> 00:38:03,440 Vale, ahora este método es más fácil de entender. 867 00:38:04,139 --> 00:38:06,019 este método, si la edad 868 00:38:06,019 --> 00:38:08,179 que no tengo que declararla, es que tiene acceso 869 00:38:08,179 --> 00:38:10,280 directo, está aquí arriba, ¿y de quién es 870 00:38:10,280 --> 00:38:11,719 esa edad? ¿Qué edad va a tener en cuenta? 871 00:38:12,380 --> 00:38:13,239 La del que lo llame. 872 00:38:14,019 --> 00:38:16,340 La del que lo llame, si lo llama alumno, será la edad de este. 873 00:38:16,699 --> 00:38:18,420 Si lo llama otro, será la edad de otro. 874 00:38:19,380 --> 00:38:19,940 Pues si 875 00:38:19,940 --> 00:38:22,179 la edad es mayor 876 00:38:22,179 --> 00:38:24,159 o igual que 18, el método 877 00:38:24,159 --> 00:38:26,179 hará esto, mostrar esto por consola, si no hará 878 00:38:26,179 --> 00:38:28,099 esto otro. Entonces, 879 00:38:28,659 --> 00:38:29,480 como este método 880 00:38:29,480 --> 00:38:32,059 no me devuelve a mí nada, 881 00:38:32,059 --> 00:38:34,480 no me entrega nada, se limita a mostrar por consola 882 00:38:34,480 --> 00:38:36,099 en ese caso 883 00:38:36,099 --> 00:38:37,639 se pone aquí void 884 00:38:37,639 --> 00:38:54,809 porque el método no me está 885 00:38:54,809 --> 00:38:56,789 entregando nada de vuelta, se limita 886 00:38:56,789 --> 00:38:57,750 a mostrar por consola 887 00:38:57,750 --> 00:39:00,530 vale, pero bueno 888 00:39:00,530 --> 00:39:02,630 con esto ahora volvemos cuando veamos el retune 889 00:39:02,630 --> 00:39:04,670 y eso lo entenderemos mejor 890 00:39:04,670 --> 00:39:09,469 no me devuelve ningún 891 00:39:09,469 --> 00:39:11,269 valor, que podría 892 00:39:11,269 --> 00:39:13,250 devolverlo, vale 893 00:39:13,250 --> 00:39:15,329 vale 894 00:39:15,329 --> 00:39:16,349 pues entonces 895 00:39:16,349 --> 00:39:20,150 ¿está entendido esto que es lo más 896 00:39:20,150 --> 00:39:22,030 importante? yo aquí declaro 897 00:39:22,030 --> 00:39:24,130 un método al cual le pongo 898 00:39:24,130 --> 00:39:25,969 un nombre, paréntesis 899 00:39:25,969 --> 00:39:28,210 obligatorios, entre llaves 900 00:39:28,210 --> 00:39:29,309 lo que hay que hacer 901 00:39:29,309 --> 00:39:31,449 si el método no me 902 00:39:31,449 --> 00:39:33,969 entrega nada de vuelta, que ya entenderemos 903 00:39:33,969 --> 00:39:35,929 después que significa entregarte algo de vuelta 904 00:39:35,929 --> 00:39:38,289 si el método no me entrega nada de vuelta 905 00:39:38,289 --> 00:39:39,849 voy, ya está 906 00:39:39,849 --> 00:39:41,889 y ahora, este método 907 00:39:41,889 --> 00:39:43,909 va a hacer cosas dentro 908 00:39:43,909 --> 00:39:44,849 lo que a mí me dé la gana 909 00:39:44,849 --> 00:39:47,289 y va a acceder 910 00:39:47,289 --> 00:39:48,869 si quiere y lo necesita 911 00:39:48,869 --> 00:39:51,170 si necesita va a acceder a esto de arriba 912 00:39:51,170 --> 00:39:59,489 El BOI significa 913 00:39:59,489 --> 00:40:02,010 este método no le entrega 914 00:40:02,010 --> 00:40:03,449 al programa que lo llama 915 00:40:03,449 --> 00:40:04,250 ningún valor 916 00:40:04,250 --> 00:40:07,690 solamente muestra porque yo aquí he puesto 917 00:40:07,690 --> 00:40:09,690 muestra, pero podría ni mostrar siquiera 918 00:40:09,690 --> 00:40:13,650 No, tú aquí puedes 919 00:40:13,650 --> 00:40:14,449 hacer lo que quieras 920 00:40:14,449 --> 00:40:17,110 Sí, pues yo aquí puedo 921 00:40:17,110 --> 00:40:18,650 Hacerle un escáner, puedo hacer lo que me dé la gana 922 00:40:18,650 --> 00:40:20,949 Lo único es que al tener void, este método 923 00:40:20,949 --> 00:40:22,730 No me entrega nada 924 00:40:22,730 --> 00:40:23,690 De vuelta 925 00:40:23,690 --> 00:40:40,449 Vale, es decir, pero bueno, eso ahora 926 00:40:40,449 --> 00:40:42,789 Lo entenderemos mejor, cuando ahora mismo, olvidaos de eso 927 00:40:42,789 --> 00:40:44,829 ¿Vale? Ahora lo que me importa 928 00:40:44,829 --> 00:40:45,750 Es que entendáis que 929 00:40:45,750 --> 00:40:47,590 lo que yo pongo aquí 930 00:40:47,590 --> 00:40:48,829 accede directamente 931 00:40:48,829 --> 00:40:49,489 a estas variables 932 00:40:49,489 --> 00:40:50,849 y ahora ya 933 00:40:50,849 --> 00:40:51,550 dependiendo 934 00:40:51,550 --> 00:40:52,690 de qué objeto lo llame 935 00:40:52,690 --> 00:40:56,510 las variables que usa 936 00:40:56,510 --> 00:40:57,309 son unas u otras 937 00:40:57,309 --> 00:41:00,230 vamos a crear otro alumno 938 00:41:00,230 --> 00:41:00,730 por ejemplo 939 00:41:00,730 --> 00:41:01,570 este alumno de aquí 940 00:41:01,570 --> 00:41:02,469 ¿qué edad le hemos puesto? 941 00:41:03,789 --> 00:41:04,789 uy, este va a ser mayor de edad 942 00:41:04,789 --> 00:41:05,929 pero yo no me entiendo 87 943 00:41:05,929 --> 00:41:07,909 si yo ejecuto este main 944 00:41:07,909 --> 00:41:12,130 si yo ejecuto este main 945 00:41:12,130 --> 00:41:14,670 el alumno es mayor de edad 946 00:41:14,670 --> 00:41:17,809 porque tenía 700 y pico años 947 00:41:17,829 --> 00:41:37,750 87, vamos a hacernos otro alumno, otro alumno distinto, alumno 2, igual a new alumno, vale, ahora a este alumno 2 le vamos a poner una edad igual a 12, por ejemplo, 948 00:41:37,750 --> 00:41:43,469 Ahora yo hago alumno2.edad 949 00:41:43,469 --> 00:41:48,070 Perdón, alumno2.llamoalmetodo 950 00:41:48,070 --> 00:41:52,599 ¿Qué me va a mostrar esto? 951 00:41:56,170 --> 00:41:56,949 Pues que va a hacer 952 00:41:56,949 --> 00:41:59,030 Es mayor de edad, se va a ejecutar 953 00:41:59,030 --> 00:42:01,889 Pero se va a ejecutar con los datos de alumno2 954 00:42:01,889 --> 00:42:04,110 Con los datos de alumno2 porque es el que lo llama 955 00:42:04,110 --> 00:42:05,530 Es el que lo llama 956 00:42:05,530 --> 00:42:07,829 Y alumno2 tiene 12 957 00:42:07,829 --> 00:42:10,230 Pues entonces se va a ejecutar, es mayor de edad 958 00:42:10,230 --> 00:42:12,409 Pero se va a ejecutar, es mayor de edad 959 00:42:12,409 --> 00:42:18,630 y ahora edad será la edad del objeto alumno 2. 960 00:42:20,269 --> 00:42:23,710 Luego el método hace el código que hay aquí, 961 00:42:24,230 --> 00:42:26,369 pero lo que cambia es el valor de las variables. 962 00:42:26,710 --> 00:42:29,789 El valor de las variables usadas que están declaradas aquí arriba, 963 00:42:30,369 --> 00:42:33,550 el valor va a ser el del objeto, que lo llama alumno, 964 00:42:34,730 --> 00:42:37,869 pues las variables que usa es mayor de edad serán las que tiene alumno, 965 00:42:38,289 --> 00:42:39,630 que lo llama alumno 2, 966 00:42:39,630 --> 00:42:42,670 pues las variables que usa es las de alumno 2 967 00:42:42,670 --> 00:42:45,369 entonces si yo ejecuto esto 968 00:42:45,369 --> 00:42:47,190 el primero me dirá es mayor de edad 969 00:42:47,190 --> 00:42:51,860 y el segundo me va a decir no es mayor de edad 970 00:42:51,860 --> 00:42:53,619 esta es la primera ejecución 971 00:42:53,619 --> 00:42:59,840 era mayor de edad 972 00:42:59,840 --> 00:43:02,820 porque el alumno este era mayor de edad 973 00:43:02,820 --> 00:43:05,199 esta es la segunda ejecución 974 00:43:05,199 --> 00:43:06,119 esta es esta de abajo 975 00:43:06,119 --> 00:43:08,940 alumno 2 tenía 12 976 00:43:08,940 --> 00:43:12,699 luego es mayor de edad toma esta propiedad 977 00:43:12,699 --> 00:43:23,769 bueno, pues esto entendido seguro 978 00:43:23,769 --> 00:43:25,849 yo aquí declaro lo que va a hacer 979 00:43:25,849 --> 00:43:27,489 pero aquí no se ejecuta nada todavía 980 00:43:27,489 --> 00:43:28,690 aquí no se ejecuta nada 981 00:43:28,690 --> 00:43:31,369 la ejecución se hace ahora ya 982 00:43:31,369 --> 00:43:32,550 cuando existe un objeto 983 00:43:32,550 --> 00:43:35,530 cuando ya existe, porque es un objeto 984 00:43:35,530 --> 00:43:37,170 el que tiene que llamar al método 985 00:43:37,170 --> 00:43:39,489 el método no se lanza así por las buenas, el solo 986 00:43:39,489 --> 00:43:41,409 no, al método 987 00:43:41,409 --> 00:43:43,550 lo llama un objeto de esta clase 988 00:43:43,550 --> 00:43:45,210 y no de otra, de esta 989 00:43:45,210 --> 00:43:47,510 de la clase alumna, no le puede llamar 990 00:43:47,510 --> 00:43:49,489 un objeto de otra clase, le llama un objeto de esta 991 00:43:49,489 --> 00:43:58,110 Y un objeto de la clase alumno es el que lo llama y entonces ahora ya sí se ejecuta, pero se ejecuta poniendo aquí sus propios datos. 992 00:44:00,170 --> 00:44:09,869 En esta ejecución es mayor de edad, vuelca los datos de alumno para ejecutarse y en esta ejecución es mayor de edad, vuelca los datos de alumno 2 para ejecutarse. 993 00:44:11,530 --> 00:44:14,550 ¿Vale? Pues venga, vamos a parar.