Saltar navegación

20241205 POO-Clases_10 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 5 de diciembre de 2024 por Raquel G.

9 visualizaciones

Descargar la transcripción

Vale, bueno, pues hasta aquí 00:00:00
ya todo lo que hemos visto clarísimo, constructores incluidos. 00:00:07
Pero todo lo que hemos... 00:00:11
Vale, pues todos los ejercicios que hemos hecho hasta ahora 00:00:13
había una sola clase. 00:00:23
¿Verdad, Mario y Daniel? 00:00:27
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. 00:00:30
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. 00:00:48
nosotros hasta ahora o solamente había una cafetera 00:01:10
o solamente había, pero normalmente hay más 00:01:13
de una entidad 00:01:15
y las entidades 00:01:16
además entre sí 00:01:19
se relacionan 00:01:21
si no se relacionaran 00:01:23
como en la aplicación está 00:01:25
William 00:01:26
por fin que oigo 00:01:29
vuestra voz y me distraigo 00:01:31
por señas 00:01:32
vale, en esta aplicación 00:01:35
había cuatro entidades 00:01:37
había más de una 00:01:38
pero no se relacionaban entre sí. 00:01:40
Los círculos eran independientes 00:01:42
y cuando hacíamos cosas con círculo, 00:01:44
pues hacíamos cosas con círculos. 00:01:45
Los cuadrados también eran independientes. 00:01:46
Cuando hacíamos cosas con cuadrados, 00:01:48
hacíamos cosas con cuadrados. 00:01:49
Eran independientes. 00:01:50
Pero en una aplicación real, 00:01:51
los conceptos con los que trabajo, 00:01:54
lo normal es que se relacionen entre sí. 00:01:56
Y por eso cuando hacéis modelos de entidad-relación, 00:01:57
pues no solo modeláis las entidades con sus campos 00:02:00
o como sea que los llaméis, 00:02:04
sino las relaciones que tienen entre sí. 00:02:05
vale, pues 00:02:07
si volviéramos 00:02:09
a nuestra aplicación 00:02:10
de explicación de origen de toda la vida 00:02:13
la que solamente tenía un pobre profesor 00:02:15
había quitado esta cosa roja 00:02:18
que está aquí, que molesta un poco 00:02:19
eso, perdón 00:02:21
cuando 00:02:26
volvemos a la aplicación esta en la que usamos 00:02:27
para explicar que teníamos una clase 00:02:29
profesor con tres propiedades 00:02:31
porque en esta aplicación 00:02:34
de los profesores solo nos interesaba 00:02:36
el nombre, el NIV y el sueldo, no nos interesaba nada más. 00:02:38
Entonces luego teníamos ya aquí nuestras diferentes 00:02:42
aplicaciones. Pues esta, por ejemplo, que ya es 00:02:45
un instituto de 10 profesores y me sacaba 00:02:48
el que más ganaba, patatín, patatán. 00:02:51
Vale, pues ya está. Aplicación que lo único 00:02:54
que hacía era cosas con profesores. Bueno, pues ahora 00:02:57
resulta que en este instituto también la aplicación nos interesa 00:03:00
gestionar los departamentos, los profesores y los 00:03:03
departamentos. Vale, pues entonces vamos a tener que 00:03:07
incluir otra entidad, departamento. Entonces, 00:03:11
¿qué nos interesa del departamento? Pues, por 00:03:25
ejemplo, nos podría interesar, le quito el public, 00:03:29
nos podría interesar el nombre del departamento, si es de informática, 00:03:33
de educación física, lo que fuera. 00:03:37
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. 00:03:43
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. 00:04:05
en bases de datos 00:04:27
ahora mismo como todavía no estáis haciendo 00:04:29
una base de datos real 00:04:31
sino solamente un diagrama 00:04:32
pues esa relación la hacéis 00:04:35
tirando una rayita 00:04:36
y poniendo pues un N, N1 00:04:38
depende de esa relación como sea 00:04:41
aquí 00:04:43
como hacemos 00:04:45
como reflejamos la idea de relación 00:04:47
entre clases y departamentos 00:04:49
pues no metemos nada 00:04:50
nuevo a lo que ya sabemos, utilizamos 00:04:53
lo que ya sabemos y como lo utilizamos 00:04:55
pues primero habría que entender 00:04:57
la relación como es 00:04:58
Mario, porfa 00:05:00
la relación como es, vale, pues 00:05:03
un profesor 00:05:05
pertenece a un departamento 00:05:07
por ejemplo, llegamos a esa conclusión 00:05:09
que un profesor pertenece a un departamento 00:05:11
pues entonces ahora 00:05:14
nuestro profesor 00:05:15
tendría todo el sentido del mundo 00:05:17
que tuviera otra propiedad dentro 00:05:18
que fuera el objeto 00:05:21
departamento al que pertenece 00:05:23
que tuviera otra propiedad dentro 00:05:25
por ejemplo esta 00:05:27
entonces haciendo esta tontería 00:05:31
ya hemos 00:05:35
simulado esa relación 00:05:36
un profesor tiene 00:05:38
un departamento 00:05:40
y ya está, ya no hace falta en realidad incluir más 00:05:41
nuestra aplicación ya hará 00:05:46
todas sus funcionalidades, sus requisitos 00:05:48
y ya tendrá esta relación 00:05:50
metida dentro 00:05:52
entonces 00:05:53
¿qué es lo que quiero incluir aquí? 00:05:55
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. 00:05:58
Una propiedad de un objeto puede ser a su vez otro objeto. 00:06:13
esta relación en programación de entrada de objetos 00:06:17
se llama de composición 00:06:22
pues porque el profesor está compuesto 00:06:25
de un departamento 00:06:29
a ver, está mal en realidad 00:06:30
la palabra no está muy bien usada 00:06:32
porque el profesor no es que tenga dentro el departamento 00:06:36
nosotros como ya sabemos lo que es un objeto 00:06:39
el profesor tiene dentro una referencia 00:06:41
al departamento que es un objeto aparte 00:06:45
Que es un objeto aparte con sus propiedades. 00:06:48
Y el profesor lo que tiene dentro es una referencia al departamento al que pertenece. 00:06:51
Y a ese departamento pueden tener referencia muchos profesores. 00:06:56
Por ejemplo, con que los del departamento de matemáticas cobran un 10% más de sueldo. 00:07:00
Para que se actualice. 00:07:05
Vale, espera. 00:07:06
Ahora, con esto hemos mapeado la relación. 00:07:07
Ahora ya podemos decir, vale, ¿qué funcionalidades le interesan a esta aplicación? 00:07:09
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%. 00:07:13
Por ejemplo, pues, venga, vamos a incluir ese método, ¿vale? 00:07:30
Pero ya todo el mundo más o menos ha entendido que no pasa 00:07:34
nada, que las propiedades pueden ser de tipo objeto. 00:07:37
Porque ahora ya las clases son un tipo más de datos. 00:07:40
Igual que cuando hacíamos el app este, aquí, pues, 00:07:44
efectivamente, cafetera es una variable de tipo cafetera. 00:07:49
Entonces, las clases que hacemos es como si estuviéramos 00:07:54
haciendo tipos de datos nuestros, nuevos, a nuestra medida. 00:07:56
que tienen dentro propiedades sencillas. 00:07:59
¿Vale? 00:08:03
Pues profesor igual es un tipo de dato 00:08:06
que tiene dentro una propiedad 00:08:08
cuyo tipo de dato es departamento. 00:08:10
Es decir, que a su vez tiene dentro cosas. 00:08:12
Bueno, pues entonces el profesor se caracteriza 00:08:15
por nombre, NIF, sueldo y departamento al que pertenece. 00:08:17
Si se caracteriza por eso, lo tengo que meter aquí 00:08:20
como propiedades. 00:08:22
Y ahora ya uno programa lo que sea 00:08:24
que la aplicación quiere hacer. 00:08:25
por ejemplo, vamos a incluir un método 00:08:27
vamos a ponerle primero 00:08:30
el constructor 00:08:32
ahora ya que sabemos hacer constructores y que nos facilitan 00:08:33
la vida 00:08:36
vamos a hacer un constructor y lo voy a generar ya 00:08:36
directamente con el source 00:08:40
genera constructor usando campos 00:08:41
que campos, los marco todos 00:08:43
pues este es 00:08:46
mi constructor, le quito el super y el public 00:08:48
porque no sabemos a cuento de que vienen 00:08:50
ala, ya me ha hecho un constructor que recibe 00:08:52
cuatro parámetros 00:08:56
y uno de ellos es un objeto 00:08:56
claro, uno de ellos es un objeto, no pasa nada 00:09:00
y ese objeto 00:09:02
sirve para inicializar 00:09:03
la propiedad esta de aquí 00:09:05
entonces es lo mismo 00:09:07
es una propiedad igual, lo que pasa es que su tipo 00:09:10
de dato es departamento 00:09:12
vale, pues tenemos el constructor 00:09:13
y ahora vamos a hacer un método 00:09:16
para subir el sueldo, pero ahora 00:09:18
ya este dependiendo del departamento 00:09:22
este lo usaremos cuando quiero subirle 00:09:23
el sueldo, un porcentaje cualquiera, el que sea 00:09:26
y ahora vamos a hacer otro 00:09:28
que sea subir 00:09:29
sueldo en función 00:09:32
del departamento, ¿cómo le podemos 00:09:35
yo llamar a esto? 00:09:37
extra sueldo departamento 00:09:40
extra departamento 00:09:41
venga, pues extra departamento 00:09:44
vale 00:09:46
entonces, a ver 00:09:50
vamos a hacerlo, aquí suponemos 00:09:54
extra departamento y el suministro 00:09:56
vale, entonces vamos a hacerlo 00:09:57
que pues eso, en función de si es 00:10:05
de mates o de lengua, ya está, pues te sube 00:10:07
una cosa, te sube otra, porque es un instituto 00:10:08
que solo tiene mates o lengua 00:10:10
esto claro, me queda una aplicación 00:10:12
una clase, me va a quedar una clase 00:10:15
que solo funciona si realmente tengo un instituto 00:10:17
que tiene mates y lengua 00:10:19
pero bueno, esto pues se podría hacer de forma 00:10:20
que tú le pasas por parámetro el array de departamentos 00:10:22
como sea, pero bueno, no os da igual 00:10:25
¿le pasas el departamento? 00:10:26
la cosa es que pasando el departamento 00:10:29
a una cosa u otra 00:10:31
Sí, bueno, lo podríamos hacer 00:10:31
de muchas versiones, o aquí hay que distinguir 00:10:38
porque claro, si tú le pasas el departamento 00:10:40
al que pertenece, vale, pero es que 00:10:42
el departamento no lo tienes que pasar, pero ya está aquí dentro 00:10:44
Entonces, aquí el sueldo 00:10:45
sería, en función de si el profe 00:10:48
es de mates o es de lengua 00:10:50
le subes una cosa, le subes otra 00:10:52
Entonces, pues vamos a hacer eso 00:10:53
Lo podemos hacer 00:10:56
con un switch case, porque en función 00:10:58
de, bueno, vamos a quitar el switch case 00:11:00
para que veáis más claro a lo que vamos 00:11:04
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. 00:11:05
claro, entonces 00:11:27
vale, pues de qué depende 00:11:32
que le subamos al sueldo 100 a 200 00:11:37
depende del departamento 00:11:38
del nombre del departamento en el que trabaje 00:11:40
¿cuál es el nombre 00:11:43
del departamento en el que trabaje? 00:11:45
claro, lo tenemos aquí dentro 00:11:47
guardado, porque aquí tenemos el departamento 00:11:49
entero, ahí lo tenemos entero 00:11:51
y de ahí yo saco 00:11:52
la información que yo quiera para cada situación 00:11:55
pues para este 00:11:57
método en concreto, para este 00:11:59
en concreto, me interesa sacar el 00:12:01
nombre. 00:12:03
Bueno, pues si departamento 00:12:05
punto nombre 00:12:07
punto equals 00:12:08
mates, pues le subo esto. 00:12:11
Entonces, departamento 00:12:17
punto nombre, ¿qué es? 00:12:18
La propiedad nombre del objeto 00:12:19
departamento, que es 00:12:22
propiedad del profesor. 00:12:24
Que no, que departamento 00:12:30
nombre, ¿vale? 00:12:31
Pues entonces, 00:12:46
todo es lo mismo. 00:12:47
Esta es una propiedad más 00:12:50
con la particularidad de que su tipo 00:12:51
es un tipo de dato objeto. 00:12:53
Y ahora, como es un tipo de dato objeto, 00:12:58
a departamento lo que tiene dentro 00:13:00
en realidad lo tengo que sacar 00:13:02
a través de las propiedades. 00:13:04
Porque departamento en sí, 00:13:05
esto ya sabemos que es una dirección de memoria. 00:13:07
Es una dirección de memoria. 00:13:09
Entonces, lo que a mí me interesa 00:13:10
de esta propiedad es lo que tiene dentro. 00:13:11
Su nombre, su localización, lo que sea. 00:13:14
Lo que sea. 00:13:17
en este caso me interesaba 00:13:18
el nombre del departamento del 00:13:19
profesor 00:13:21
si es mates, pues este 00:13:23
si es lengua, no sé qué 00:13:25
¿Cómo se pasa por parámetro el nombre del departamento 00:13:26
y la localización? 00:13:32
¿Pero para qué querrías pasárselo 00:13:34
por parámetro? 00:13:36
Tú a un método le puedes pasar por parámetro lo que quieras 00:13:38
la pregunta es 00:13:40
si tú le quieres pasar un nombre, ¿le pasas un string? 00:13:41
No, no, perdón, estaba hablando del 00:13:44
Ah, vale, ahora hacemos la aplicación 00:13:45
ahora hacemos una aplicación 00:13:48
fijaos lo que ha pasado, en esta aplicación 00:13:49
profesores, donde tengo varias 00:13:51
versiones, la app 00:13:53
todas las 00:13:54
que tenía, veis se me han puesto 00:13:56
en rojito, buf, todas en rojo 00:13:59
claro, porque yo he añadido 00:14:01
aquí un constructor 00:14:03
que ha pisado el sin parámetros 00:14:04
con lo cual, todas mis 00:14:07
versiones anteriores 00:14:09
pongo un sin parámetros en profesor 00:14:12
claro, entonces 00:14:15
todas las versiones que yo tenía 00:14:16
de mi aplicación, las que hacían cosas en pruebas 00:14:19
me dice el compilador, eh, este 00:14:21
constructor no me vale, porque tú has 00:14:23
pisado el constructor vacío 00:14:25
que yo estaba usando y que no se veía 00:14:27
porque estaba oculto, lo has pisado 00:14:29
por uno con parámetros, con lo cual me tienes que 00:14:31
pasar parámetros, vale, para que 00:14:33
las aplicaciones anteriores no tenga que tocarlas todas 00:14:35
vamos a decir, no pasa nada 00:14:36
vamos a poner la clase profesora, aparte de este 00:14:38
vamos a hacer también uno vacío 00:14:41
para que las aplicaciones que lo usaban 00:14:43
no se lo carguen 00:14:45
no las estropee 00:14:46
ala, solucionado 00:14:48
ya se me han quitado todos los rojos 00:14:50
¿vale? 00:14:53
normalmente se hacen varios constructores 00:14:55
en una clase 00:14:57
porque cada aplicación puede querer usar uno 00:14:58
u otro, entonces casi siempre 00:15:01
se hace uno sin parámetros 00:15:03
vacío, para el que quiera instanciar 00:15:05
por las buenas, y otro con 00:15:07
parámetros porque es muy cómodo 00:15:09
instanciar pasando propiedades 00:15:11
¿vale? normalmente se hacen dos 00:15:13
vale, pues vamos a hacer una aplicación 00:15:15
que ahora ya sí que crea 00:15:17
un departamento, unos profesores 00:15:19
y le asigna departamentos a un profesor 00:15:22
y muestra cosas o lo que sea. 00:15:23
Pues venga, vamos a hacernos ahora ya 00:15:26
la versión 5. 00:15:28
Ahora ya tengo un main 00:15:41
haciendo cosas. 00:15:43
Vale, pues esta aplicación 00:15:48
va a 00:15:50
crear un array de 00:15:51
10 profesores. 00:15:53
Este instituto tiene 10 profes. 00:15:56
Vale, ahora 00:16:12
Vamos a este 00:16:16
Vamos a 00:16:21
Vamos a hacer un departamento 00:16:23
Un objeto departamento 00:16:24
Departamento 00:16:27
Un único 00:16:29
Departamento de mates 00:16:34
A departamento no le he puesto constructores 00:16:36
Buf, que rollo 00:16:42
Entonces voy a tener que hacer el de punto no se que 00:16:43
Vamos a hacerle un constructor 00:16:45
Con propiedades al departamento 00:16:47
uno con propiedades 00:16:49
con parámetros 00:16:56
y voy a hacer ya 00:16:57
porque es una buena costumbre 00:17:00
me facilita luego los mains hacerlos como me den la gana 00:17:01
vamos a hacer uno 00:17:04
sin parámetros también 00:17:06
hala 00:17:07
hala ya tengo dos constructores 00:17:10
luego ahora ya me voy a mi aplicación 00:17:16
de profesores 00:17:18
me voy a crear un departamento de mates 00:17:19
un departamento de mates 00:17:21
Que dónde va a estar, en la planta 2 00:17:25
¡Hala! Ya tengo creado un departamento 00:17:28
Cuyo nombre es mates 00:17:32
Porque el constructor ha utilizado 00:17:33
Esto que yo le paso para inicializarlo 00:17:36
Que está en la planta 2 00:17:37
¿Vale? 00:17:39
Si pusiéramos 00:17:42
Aquí esto 00:17:43
Has creado 00:17:46
Un departamento 00:17:50
De nombre 00:17:55
Voy a ponerlo en dos 00:18:01
exista en la una parte para que no se quede tan grande 00:18:04
tan 00:18:06
de punto nombre 00:18:07
oe colega 00:18:12
punto 00:18:22
localización 00:18:27
vale, vamos a poner unos asteriscos 00:18:30
abajo para que 00:18:38
vale, entonces me he limitado 00:18:39
a crear un departamento 00:18:47
y voy a poner esto system out 00:18:48
para ver que efectivamente se ha creado un departamento 00:18:51
con ese nombre y con esa localización 00:18:53
que no he tenido que inicializarlo 00:18:55
porque el constructor ya lo ha hecho 00:18:57
vale, el constructor 00:18:59
ya lo habrá hecho 00:19:01
ejecutamos esto 00:19:04
pues aquí está, hemos creado un departamento 00:19:08
de mates que está en la planta 2 00:19:13
está claro, vale 00:19:14
ahora que vamos a hacer 00:19:18
vamos a crear 00:19:19
los profesores que estaban 00:19:22
sin crear y vamos a asignarles 00:19:24
a todos 00:19:26
al departamento de mates 00:19:27
vamos a hacer que estén todos en el departamento de mates 00:19:29
pues vamos a recorrer 00:19:32
la raíz de profesores 00:19:33
cuidado aquí con el for each nunca jamás 00:19:35
por lo que dijimos el otro día que os habéis aprendido ya en memoria 00:19:38
porque el for each 00:19:40
te va haciendo copias de esto 00:19:42
luego si creas el objeto, el objeto lo asocia 00:19:44
a la copia y no a la variable 00:19:46
etcétera, con lo cual aquí tenemos que 00:19:48
hacerlo con este sí o sí 00:19:50
bueno, si vas a consultar, lo otro se escribe muy rápido 00:19:51
por ejemplo 00:20:00
bueno, consultar es coger los datos 00:20:07
también para 00:20:09
para asignar eso a otra variable 00:20:10
eso también es consultar 00:20:14
ahora, ¿qué hacemos con cada 00:20:15
profesor? pues vamos 00:20:20
a crear un profesor, gracias a que 00:20:22
tenemos el constructor, lo podemos 00:20:24
hacer con una única línea, en las versiones 00:20:26
anteriores, teníamos que 00:20:28
instanciarlo y ahora darle 00:20:30
las propiedades 00:20:32
en las versiones anteriores, ahora ya no hace falta 00:20:33
tenemos el constructor, pues llamo 00:20:36
al constructor 00:20:38
profesor 00:20:39
y a través del constructor 00:20:43
ya le doy los valores iniciales 00:20:46
que le vamos a poner pues 00:20:47
el nombre 00:20:49
no sé que iba 00:20:51
primero, si nombre, DNI 00:20:53
nombre, lo que importa es el orden 00:20:55
aquí, primero el nombre, luego 00:20:58
el NIF y luego el sueldo 00:20:59
00:21:01
El Eclipse te ofrece esa ayuda 00:21:06
Bueno 00:21:09
Lo carga el diablo 00:21:13
Que a Eclipse 00:21:15
Y a cualquier entorno de desarrollo 00:21:18
Lo carga el diablo 00:21:19
Porque le estoy pasando varios parámetros 00:21:20
El primer parámetro es este 00:21:25
El nombre 00:21:27
El segundo parámetro que le paso al constructor 00:21:27
El NIF es este 00:21:30
El tercer parámetro que le paso es el sueldo 00:21:30
que empiecen ganando todos 2.000 00:21:32
y ahora 00:21:34
¿cuál es el tercer parámetro que le tengo 00:21:36
que pasar? 00:21:38
el objeto departamento al que pertenece 00:21:40
le tengo que pasar un objeto 00:21:43
cualquier cosa que yo le pase ahí 00:21:44
que no sea un objeto departamento no vale 00:21:46
le tengo que pasar un objeto 00:21:48
¿y cuál le tengo que pasar? al que yo quiera que pertenezca 00:21:50
ese profesor 00:21:52
bueno pues si hemos dicho que van a pertenecer todos al de mates 00:21:53
pues paso este objeto que acabo de crear 00:21:57
le paso este objeto 00:21:59
Y ya está 00:22:02
Y ya tengo los 10 profesores creados 00:22:04
Todos en el único departamento que hay 00:22:06
El único que hay 00:22:09
Y con esas propiedades 00:22:10
Vamos a 00:22:13
Mostrar a los profesores 00:22:15
Para ver que los ha creado 00:22:18
Bien 00:22:20
Ahora ya para mostrar, pues venga, vamos a hacer un for each 00:22:23
Porque esto es solo 00:22:26
El system out 00:22:27
Como le gusta 00:22:28
Vale 00:22:30
profesores 00:22:32
es un for que recorre 00:22:35
todas las posiciones de la raíz de principio a fin 00:22:44
todas, a menos que metas un break dentro 00:22:46
todas 00:22:47
y en cada iteración 00:22:48
esta variable se va 00:22:50
la crea 00:22:52
esta variable solo existe el tiempo que dure el for 00:22:54
¿pero qué tipo de variable es? 00:22:57
del tipo que pongas tú aquí 00:22:59
y en cada iteración 00:23:00
se queda con una copia 00:23:03
de la 00:23:05
posición en la que estés en el array 00:23:07
y si le pasas ahí una variable de tipo 00:23:09
profesor, la lias 00:23:11
¿cómo si le pasas una variable? ¿dónde? 00:23:12
en el port 00:23:14
aquí tienes que poner siempre 00:23:15
un array 00:23:18
pero en la izquierda si le pasas 00:23:19
una variable de tipo profesor mismo 00:23:22
pero que ya exista 00:23:23
no, no, no, no, es una variable 00:23:25
local porque es que tú la vas modificando 00:23:28
No, no, no, claro 00:23:29
No, es que de hecho 00:23:33
Ni siquiera creo que te deje 00:23:36
Imagínate que 00:23:37
Claro, que yo tengo ahí una variable 00:23:38
Profesor 00:23:41
Y aquí digo 00:23:42
No sé si reutilizaría esa para hacer eso 00:23:45
Y luego 00:23:48
Pero vamos, no creo que el compilador te deje hacer esto 00:23:49
O sea, es una variable suya 00:23:51
Nueva que tú creas solo para ese uso 00:23:53
¿Vale? 00:23:55
Vale, vamos a dejarlo 00:24:01
¿Cómo estaba? Y esto fuera. 00:24:02
Vale, y ahora vamos a mostrar 00:24:05
de cada profesor 00:24:06
p.nombre 00:24:07
y vamos a mostrar el departamento en el que está. 00:24:10
Para mostrar el departamento en el que está, 00:24:18
¿qué hay que mostrar? p.departamento. 00:24:20
Claro, ¿qué es? 00:24:23
p.departamento es el objeto entero. 00:24:24
Esto es una dirección de memoria. 00:24:26
Yo esto no lo puedo mostrar. 00:24:28
Este es el objeto entero. 00:24:29
Poder puedo, pero 00:24:32
me va a mostrar una cosa rara 00:24:33
que ni siquiera es una dirección, es tu string 00:24:35
de object, todo eso también lo veremos 00:24:37
porque me muestra esa arroba y esas cosas 00:24:40
vale, pero esto es un objeto 00:24:41
ya entenderás por qué 00:24:44
porque todo eso tiene que ver con la herencia, muy interesante 00:24:47
y bonito 00:24:50
es que nos quedan millones de miles 00:24:50
de cientos de cosas que dar 00:24:54
entonces, insisto 00:24:55
pero tenemos todo el curso, no pasa nada 00:24:56
pero insisto, ya sé que soy la más pesada 00:24:59
del mundo. Me lo dicen 00:25:02
en casa todo el rato. Entonces, 00:25:03
como ya he asumido que soy la más pesada 00:25:06
del mundo, me da igual, ya, no voy a cambiar. 00:25:08
Claro, sí. 00:25:11
Bueno, me dice mi hija, ¿eh? 00:25:12
Si me lo dijera el resto del mundo, ya. 00:25:14
Vale, entonces, como soy la más 00:25:16
pesada del mundo, ya me da igual, no tengo nada que perder. 00:25:18
Entonces, insisto, 00:25:20
tenéis que aprendéroslo todo. 00:25:22
No vale con que lo entendáis 00:25:24
aquí, no vale. 00:25:26
Luego tenéis que aprendéroslo en casa, porque 00:25:28
nos quedan 200.000 millones de ladrillos. 00:25:30
¿Vale? Y como todo esto no esté 00:25:32
a... Vale, vale, vale. 00:25:33
Se va todo al 00:25:36
garete. Vale, pues entonces, 00:25:37
p.departamento es el objeto departamento 00:25:39
entero. Este. 00:25:41
Este objeto entero. Con ese 00:25:44
objeto entero, yo en el system 00:25:45
no hago nada. Eso es una referencia. 00:25:47
Vale, pero es que yo 00:25:50
quiero mostrar el nombre. Pues entonces 00:25:51
ahora pongo nombre. Y como 00:25:53
veis, se han anidado dos puntitos y no 00:25:55
pasa nada que se hayan anidado. 00:25:57
Claro, a ver, no porque lo haremos a través de métodos 00:26:00
Porque no se hace así en realidad 00:26:04
Pero 00:26:05
Este es el objeto departamento 00:26:05
El objeto departamento tiene una propiedad en nombre 00:26:09
Que el objeto departamento tiene una propiedad 00:26:10
Que es objeto 00:26:14
Pues podríamos poner ese objeto y luego otro punto 00:26:15
Y luego otro punto y podríamos 00:26:17
Anidar hasta el infinito 00:26:19
Si departamento tuviera 00:26:21
Una propiedad que fuera objeto 00:26:23
Y ese objeto a su vez tuviera otro objeto dentro 00:26:25
Y otro dentro 00:26:28
Pero hombre, eso ya sería un diseño 00:26:28
Un poco ágil 00:26:31
Vale, pues entonces 00:26:33
Esto 00:26:35
A nadie le angustia esto, ¿no? 00:26:36
Es que, bueno, vais sobrados 00:26:40
Vale, pues ahora vamos a ejecutar esto 00:26:43
A ver si es verdad que los ha metido 00:26:46
A todos en mates 00:26:47
¿Por qué le hemos metido a este departamento? 00:26:48
Pues sí 00:26:52
Pero a Pedro no le funciona, pero a los demás sí 00:26:53
Vale, pues están 00:26:55
los que hemos creado en mates 00:26:57
vale, ahora resulta 00:26:59
bueno 00:27:02
dije que iba a hablar poquito y he mentido 00:27:03
pero bueno, es una mentira más 00:27:05
os he soltado tantas ya, que una más 00:27:07
como cuando dijiste 00:27:09
los chicos, los estudiantes que están rojos no caen en el examen 00:27:11
y no cayeron 00:27:14
a ver, que de 10 cosas 00:27:15
si, de 10 cosas que digo, 8 son mentiras 00:27:18
dadlo por sentado, pero luego lo voy aclarando 00:27:22
luego lo voy aclarando 00:27:24
No, esas son 00:27:25
Las dos de las que son verdad son esas 00:27:28
Cuando digo U0 00:27:30
Esa es la que es verdad 00:27:32
Es verdad, joder 00:27:33
Vamos a entrar aquí en un bucle infinito 00:27:36
Bueno, a ver 00:27:39
Ahora vamos a imaginar que el instituto 00:27:42
Se ha hecho grande y ha aparecido 00:27:45
Un departamento de lengua 00:27:46
Se ha hecho, ha aparecido un departamento de lengua 00:27:48
Pues vamos a hacer un departamento 00:27:51
¿Qué? 00:27:52
Vamos a hacer un nuevo departamento. 00:27:54
Departamento 2. 00:27:56
Otro más. 00:27:58
El instituto se ha hecho muy grande. 00:28:00
El departamento este es de lengua. 00:28:06
¿Y dónde está? 00:28:10
Este está en la planta 1. 00:28:10
Este pobre departamento, pues ya está. 00:28:15
Está aquí creado con su constructor, 00:28:17
pero no tiene ningún profe, ni tiene nada. 00:28:19
Buena señal. 00:28:25
Vale, a mí me pasaba eso de joven. 00:28:27
¿Qué planta está ahí? 00:28:28
en la que tú quieras. ¿Cuál quieres tú? 00:28:29
Que yo te la pongo. La 19. 00:28:32
Pues venga, la 19. 00:28:34
Está en la 19 el departamento de lengua. 00:28:36
¿Y sin ascensor? 00:28:39
Sin ascensor. 00:28:40
Vale, entonces, ahora 00:28:42
de los 10 00:28:44
profes del instituto, 00:28:46
ahora vamos a pasar al departamento de lengua 00:28:48
unos cuantos. Por ejemplo, 00:28:50
vamos a pasar a los 5 primeros 00:28:52
al departamento de lengua. 00:28:54
Yo sabía que se jodan. 00:28:55
Son profes de matemática. 00:28:57
Ahora, vamos a pasar a los cinco primeros profes al departamento de lengua. 00:28:58
Departamento de lengua. 00:29:16
Bueno, pues ¿qué haríais? 00:29:22
Un bucle. 00:29:24
Cualquier pregunta, la respuesta a un bucle siempre suele ser cierta. 00:29:27
Un bucle. 00:29:31
¿Qué más? 00:29:33
No, pues .22 no, los 5 00:29:34
Hasta que valga 5 00:29:38
Bueno, en este caso sería igual 00:29:39
Lo que pasa es que si luego aumentas a 100 00:29:43
Y quieres seguir pasando los 5 primeros 00:29:47
Bueno, bueno, ahí te hemos pillado 00:29:49
Vale, pues haríais algo así, ¿verdad? 00:29:53
Vamos a recorrer los 5 primeros 00:29:56
Desde igual a 0 00:29:58
Esto, por ejemplo, con un for each no podríamos 00:30:01
porque un forage te recorre todo 00:30:03
por 00:30:06
pelotas 00:30:06
porque para los 00:30:08
conjuntos son la única opción 00:30:15
al margen de los tiradores 00:30:18
ya lo sabréis 00:30:19
vale 00:30:22
es un tipo de colección muy útil 00:30:23
que no lo sé 00:30:25
dejad de meterme como que sé cosas 00:30:27
que yo vengo aquí 00:30:30
y sé lo mismo que vos 00:30:31
Pero no las voy a decir 00:30:32
Ya, pero entonces vas a pasar 00:30:35
Siempre a la mitad 00:30:43
Yo he dicho que quiero pasar a los 5 primeros 00:30:44
Si el array tiene 100 00:30:47
Los 5 primeros 00:30:49
Son los 5 primeros 00:30:50
¿Vale? Acordaos de 00:30:53
Que hay que hacer 00:30:55
Lo que te pidan 00:30:56
¿Vale? La iniciativa 00:30:58
en este contexto 00:31:01
mal, lo que te pidan 00:31:02
vale 00:31:05
bueno, pues que hacemos 00:31:06
pues una línea y se acabó 00:31:08
profesores de i 00:31:11
punto 00:31:13
departamento igual a 00:31:15
dev2 00:31:17
ala, ya están pasados 00:31:18
vale 00:31:20
ya están 00:31:23
easy 00:31:24
donde hay un easy, aquí no hay ningún easy 00:31:26
perdona 00:31:29
como que mi hija 00:31:41
seré yo la que tenga que enseñarle 00:31:45
inglés a ella, a ti y a cuantos como tú 00:31:46
que yo tuve 00:31:49
un novio americano que no hablaba español 00:31:51
durante un tiempo largo 00:31:53
norteamericano 00:31:54
perdón 00:31:57
es que no era de ahí 00:31:58
era indio 00:32:03
pero trabajaba 00:32:04
entonces, como comprenderás 00:32:06
hablábamos en inglés 00:32:09
así que no tienes nada que enseñar 00:32:10
hombre, y si para mí es 00:32:12
y si me tiro por la ventana 00:32:16
y si no sé qué, para mí es eso 00:32:18
claro, es el if 00:32:19
para mí el if es el if 00:32:23
y si te tiro a ti por la ventana 00:32:24
Vale, esto está clarísimo, ¿verdad? 00:32:26
Hemos cambiado al profesor 00:32:29
Y si ahora volviéramos a mostrar a los profes 00:32:31
Pues los cinco primeros se han ido a lengua 00:32:33
Fijaos qué maravilla 00:32:35
Qué maravilla 00:32:39
Estaban todos en mates 00:32:43
Y después de lo que hemos hecho 00:32:45
Los cinco primeros 00:32:47
Los hemos calzado al departamento de lengua 00:32:49
Con lo cual van a cobrar más 00:32:51
Este bucle de aquí 00:32:52
Ahora vamos a ponerles 00:33:03
Claro, vamos a su 00:33:10
Ahora ya vamos a ponerles 00:33:15
Como ya hay profes en diferentes departamentos 00:33:16
Vamos a ponerles el extra de sueldo 00:33:18
Sobre el 1000 que tenían todos 00:33:20
¿No se puede hacer eso que directamente al pertenecer al departamento 00:33:22
eso ocurra? 00:33:25
En el momento que perteneces al departamento de lengua 00:33:26
ya tienes ese extra de sueldo. 00:33:28
Claro, es lo de... 00:33:33
No, a ver. 00:33:34
En el momento de hacer la asignación, 00:33:36
si tú lo haces con un igual, no. 00:33:38
Porque eso es una asignación de una variable a otra. 00:33:39
Sí, si esta asignación la haces a través de un método set, 00:33:42
que te ha sonado el método set, 00:33:46
que entonces puedes meter en el set eso. 00:33:48
Pero bueno, eso... 00:33:50
Pero si es a través de una asignación, 00:33:50
No puedes ejecutar código en la asignación. 00:33:52
Igual a punto 00:33:55
departamento 2, una propiedad 00:33:56
del departamento 2 que sea extrasueldo 00:33:58
y más igual. 00:34:00
Bueno, si has puesto una propiedad 00:34:03
que es extrasueldo, pero... 00:34:04
Vale, entonces ahora ya, como ya tenemos 00:34:06
profes y ya no vamos a ir, tranquilo, 00:34:08
relájate. Que estás como 00:34:10
diciendo, acaba ya de una vez. 00:34:12
Ya, pero que ya acabamos. 00:34:15
Con esto ya acabamos. 00:34:16
Es como que espero más rápido. 00:34:18
Espero rápido. 00:34:20
O sea que voy más lenta de lo que te gustaría 00:34:21
No, no, no, al revés 00:34:23
Vas tan rápido que me haces esperar rápido 00:34:25
Contagio la rapidez 00:34:27
Vale, entonces ahora vamos 00:34:30
Ahora ya, todos los profes que hemos hecho 00:34:32
Ganaban 00:34:34
Mil euritos 00:34:35
No, mil no 00:34:38
Dos mil 00:34:39
Todos los profes que hemos hecho ganaban dos mil 00:34:40
Ahora vamos a ponerles el extra 00:34:42
En función 00:34:44
Del departamento en el que están 00:34:46
Para eso tenemos un método 00:34:49
Espera, vamos a poner unos asteriscos 00:34:50
Para poder distinguir 00:34:53
Porque ya con tantos 00:34:54
Luego ya no vamos a ver nada 00:34:55
Entonces, vamos a poner ahora ya lo de 00:34:56
Poner el extra 00:34:59
Entonces 00:35:01
Vamos a 00:35:03
Recorrer el array para hacérselo a todos los profes 00:35:05
Y sea menor que 00:35:08
Profesores.lenz 00:35:12
Pues con cada profesores 00:35:14
De ahí 00:35:18
¿Qué hacemos? 00:35:18
Extra sueldo 00:35:23
sueldo extra 00:35:24
ya está 00:35:27
entonces al haber llamado este método 00:35:30
a cada profesor 00:35:32
en función de si es de lengua o de mates 00:35:34
le sube al sueldo 00:35:37
100 o 200 00:35:38
¿por qué eso hace este método? 00:35:40
este método 00:35:43
coge un objeto profesor 00:35:44
ahora lo vuelvo a poner Juan 00:35:46
ese método coge un objeto profesor 00:35:50
si su nombre es mates 00:35:52
es que le veía así 00:35:54
Si su nombre es mates le sube 100 00:35:55
Y si es lengua le sube 200 00:36:00
Vale, pues entonces este método 00:36:01
Ya a cada profesor le subirá lo que le toque 00:36:03
Vale, pues vamos a mostrar 00:36:06
Ahora ya sí que con un for each 00:36:10
Vamos a mostrar el sueldo de cada profe 00:36:12
Vamos a mostrar el sueldo de cada profe 00:36:16
Después de la subida 00:36:20
Con el extra este 00:36:22
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. 00:36:23
Pues efectivamente 00:36:46
Después de la extra 00:36:49
Los de lengua 00:36:50
Tienen 200 euros más de los 2000 iniciales 00:36:52
Y los de mates 00:36:55
Tienen 100 más 00:36:56
De los 2000 iniciales 00:36:58
Que bien, ahora los pepitos podrán comer 00:37:00
Todos los meses 00:37:02
Todos los meses 00:37:03
Bueno 00:37:06
Depende de tus necesidades 00:37:08
claro, si quieres un Lamborghini 00:37:12
o tienes una tarjeta Pokémon de esas tuyas 00:37:18
o te has quedado sin Lamborghini 00:37:20
ya, pero yo las tengo mejores 00:37:21
que esas, por pese a que no me las traigo 00:37:24
pero 00:37:26
¿pero no consigues un buen comprador o qué? 00:37:27
porque te la veo pasear todos los días 00:37:30
te da buena suerte 00:37:31
muy bien 00:37:35
es como el que 00:37:37
por si se 00:37:38
reproduce, pero no ocurre 00:37:42
bueno 00:37:44
¿tú has visto billetes de 500 euros? 00:37:45
yo he visto uno también 00:37:47
creo que nunca 00:37:48
¿de qué color son? ¿morados? 00:37:50
bueno, pues esto está súper claro 00:37:54
entonces ya con esto de que 00:37:56
los objetos 00:37:58
puedan tener a su vez objetos dentro 00:38:00
se nos abren ya todas las 00:38:01
posibilidades posibles 00:38:04
para hacer aplicaciones con lo que queramos 00:38:05
y lo que sea 00:38:07
¿vale? 00:38:08
Gracias. 00:38:12
Materias:
Programación
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado superior
      • Primer Curso
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
9
Fecha:
5 de diciembre de 2024 - 18:36
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
38′ 12″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
165.59 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid