Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Clase 05-03-24 - 2 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
vale, pues ya por fin vamos a hacer este método
00:00:00
que era
00:00:04
por lo que
00:00:05
por lo que arrancamos este proyecto
00:00:07
entonces ahora vamos a ponerle alumno
00:00:12
¿está apagado? ¿lo he apagado yo antes?
00:00:14
Vale, vamos a ponerle a alumno un constructor solo por la clave primaria.
00:00:38
Vale, para que nos quede ahora más cómodo
00:01:04
Y más bonito y que os pueda hacer una
00:01:11
Vale, vamos a ponerle a alumno
00:01:12
También un constructor, como le puede poner
00:01:15
Uno de los constructores que le dé la gana
00:01:17
Vamos a ponerle
00:01:18
Un constructor solo por clave primaria
00:01:21
Vamos a hacerle un constructor
00:01:23
Solo
00:01:30
¿Dónde estoy yo? ¿En qué alumno estoy?
00:01:31
Ah, que no estoy en
00:01:35
No estoy en el alumno bueno
00:01:36
En este, vale
00:01:38
le voy a hacer un constructor
00:01:40
solo con clave primaria
00:01:44
para que me sea más fácil
00:01:46
ahora, solo con el nif
00:01:51
vale
00:01:54
ya tengo un constructor solo con nif
00:01:54
el resto de valores
00:01:58
se queda, bueno pues ahora ya
00:01:59
con este constructor ahora aquí
00:02:01
vale, nos vamos al método
00:02:03
que estábamos haciendo, este método auxiliar
00:02:05
bueno
00:02:07
que
00:02:10
decidme que dos líneas
00:02:12
pondríais aquí
00:02:15
para mostrar
00:02:15
el nombre del profesor
00:02:17
de posición I
00:02:20
si es que contiene
00:02:21
al alumno de NIF
00:02:24
dos líneas solo, quiero que pongáis ahí
00:02:25
para completar ya ese método
00:02:28
entonces lo que hay que hacer ahí es
00:02:29
esto
00:02:32
mostrar el nombre
00:02:33
del profesor
00:02:36
de posición I
00:02:39
este es un for que va uno por uno
00:02:41
claro, si es que
00:02:42
El alumno de NIF, si es que el alumno con ese NIF está entre en su lista de alumnos.
00:02:51
Vale, eso es lo que queremos hacer en ese método, mostrarlo.
00:03:10
Podríamos concatenarlo en un exilio y devolverlo, pero bueno, vamos.
00:03:13
Como es un método auxiliar, no es un método de una clase de operaciones que vaya a llamar cualquiera,
00:03:16
es un método privado auxiliar aquí que nos llevamos a nosotros, hacemos lo que nos dé la gana.
00:03:21
Dime.
00:03:24
Voy, ¿dónde?
00:03:26
Sí, porque voy a hacer aquí el system out para mostrarlo directamente.
00:03:32
Claro, porque este método es un método auxiliar que yo he hecho en el main
00:03:37
para ser llamado desde aquí, pero no es un método que yo he hecho en una clase aparte
00:03:41
para que lo llame cualquiera.
00:03:45
Entonces, es otra idea, es otra filosofía.
00:03:47
Aquí, esto es un método, de hecho pone privado.
00:03:51
Es un método que voy a llamar yo aquí solamente,
00:03:53
simplemente para meterme
00:03:55
en un
00:03:57
en una función
00:03:58
el que yo iba a poner aquí
00:04:01
entonces con ese diseño
00:04:03
con ese diseño, aquí ya
00:04:05
no tiene, no hay necesidad
00:04:07
de que devuelva el string, lo muestro
00:04:09
aquí con system out y ya está, es otra filosofía
00:04:11
de diseño, otra cosa es que yo me haga una
00:04:13
clase con métodos y diga
00:04:15
este método va a
00:04:17
es para mostrar los profes que tiene el alumno, entonces
00:04:18
como ese método lo puede llamar cualquiera
00:04:21
pues lo mejor es que devuelva el string
00:04:22
Y cada uno que haga con ese string lo que le dé la gana
00:04:24
Pero aquí estoy haciendo un diseño alternativo
00:04:27
Un diseño alternativo
00:04:29
Bueno, pues entonces ahora
00:04:31
Aquí voy a mostrarlo
00:04:34
Entonces
00:04:36
Dos líneas para completar este método
00:04:36
Y ya está, pues venga
00:04:40
Dictadmelas, dos líneas solo
00:04:41
¿Qué escribo?
00:04:43
¿Qué pongo?
00:04:47
¿Qué es lo primero que pongo?
00:04:49
Es el profesor de posiciones
00:04:49
Vale, ¿qué hago con él?
00:04:59
A ver, bueno, primera cosa
00:05:11
Nunca compararías cadenas con doble igual
00:05:13
Vale, la compararías con equals
00:05:16
Vale, pero aún así
00:05:19
Asumiendo que
00:05:20
Ahora, ¿qué problema tiene esto?
00:05:23
¿Qué problema tiene este equals?
00:05:28
De hecho me aparece
00:05:30
No un error de compilación
00:05:31
Al equals, con que le pases dos objects
00:05:33
le da igual, como si le pasas una mesa
00:05:36
y un dinosaurio, son dos
00:05:38
objects, al equals le cae todo
00:05:40
pero
00:05:42
silencio, por ahí detrás
00:05:43
pero puede no tener sentido
00:05:45
entonces los avisos en otro color
00:05:47
son los avisos de los plugins
00:05:50
de sonar, que se llaman así, que te
00:05:52
dicen, oye, estás seguro, esto no tiene mucho sentido
00:05:54
vale, pues por qué me está diciendo
00:05:56
que esto no tiene mucho sentido, que ha detectado él
00:05:58
que estoy comparando con equals
00:06:00
una lista
00:06:02
entera
00:06:04
con un iconiz
00:06:04
o sea, dos objetos distintos
00:06:07
efectivamente es como estar comparando una mesa
00:06:09
con un dinosaurio, entonces me dice
00:06:11
¿estás seguro de que quieres ver si una mesa es igual
00:06:12
que un dinosaurio?
00:06:15
¿estás seguro de que quieres ver si una lista
00:06:17
es igual que un nif?
00:06:18
no puede ser, entonces no es igual lo que tú quieres
00:06:20
no es
00:06:23
igualdad, la idea
00:06:25
que tú quieres reflejar no es la de
00:06:27
una lista es igual a ese nif
00:06:28
sino que es decir una lista contiene a ese nif
00:06:30
Es otra cosa lo que tú quieres decir, ¿no?
00:06:33
Entonces, tú quieres decir que esta lista contenga ese NIF,
00:06:38
no que sea igual a ese NIF.
00:06:41
Entonces, para decir que esa lista contenga ese NIF,
00:06:43
¿qué ponemos?
00:06:46
¿Por qué lo cambiamos?
00:06:47
Ese equals.
00:06:48
Por contains.
00:06:50
Ahora ya sí.
00:06:52
¿Vale?
00:06:59
Pero esto no deja de ser una condición.
00:06:59
Esto de devolver a true es una condición.
00:07:01
No la podemos poner suelta.
00:07:03
Claro.
00:07:05
Esto habrá que decir, oye,
00:07:05
si la lista de alumnos
00:07:06
de este profe
00:07:09
contiene
00:07:10
vale
00:07:11
profesores.get
00:07:12
y
00:07:22
ah bueno, como tengo un toString
00:07:22
lo paso
00:07:25
le paso el profesor entero
00:07:26
porque tengo un toString en profesor
00:07:29
vale, tengo un toString en profesor
00:07:31
como tengo un toString en profesor, se lo paso al system.not
00:07:33
vale, pero
00:07:35
nos sigue apareciendo
00:07:37
aquí otro aviso
00:07:39
esto
00:07:41
nos sigue apareciendo aquí un aviso
00:07:43
algo aquí deja de tener sentido
00:07:47
vale, entonces vamos a pensar
00:07:54
este contains, efectivamente
00:07:56
la idea que queremos es que una lista
00:07:58
de alumnos contenga
00:08:00
pero no que contenga al NIF
00:08:01
sino que contenga a un alumno
00:08:04
de ese NIF, este aviso si lo vemos
00:08:06
me dice, oye
00:08:08
esta lista, ¿de qué es esa lista? Vamos a ver de qué es esa lista. Esa lista es de alumno. Entonces,
00:08:10
esa lista, como es una lista de alumno, lo que contiene son alumnos, no contiene NIF. Esa lista
00:08:23
contiene alumnos, no NIF. Pues es lo que me está diciendo con este aviso. Me está diciendo, oye,
00:08:31
me estás diciendo, si una lista de mesas
00:08:36
contiene un
00:08:38
dinosaurio, vale
00:08:40
como el context también va con object
00:08:42
tú dime lo que el compilador lo traga
00:08:44
pero eso no tiene sentido
00:08:46
esto
00:08:48
es una lista de alumnos, hay que
00:08:50
pasarle un objeto de tipo
00:08:52
alumno
00:08:54
entonces hay que decirle, si mi lista
00:08:57
de alumnos contiene
00:09:00
un alumno con este nif
00:09:02
vale, a una lista
00:09:03
de mesas, para ver si contiene una mesa
00:09:06
concreta y hay que pasar a una mesa, a ver si la contiene.
00:09:08
Pues a una lista de alumnos hay que pasar
00:09:10
a un alumno concreto, a ver si lo contiene.
00:09:12
Pero claro, un alumno con ese NIF.
00:09:14
Por eso me he hecho el constructor
00:09:16
solo con el NIF, para que aquí
00:09:18
lo pueda hacer solo con una línea más rápido.
00:09:20
Ahora ya sí.
00:09:27
Ahora ya no hay avisos amarillos, ni azules,
00:09:28
ni de ninguno de los plugins estos
00:09:31
que te dicen, pues estás programando,
00:09:32
vamos, el peor del universo.
00:09:34
Ya no hay ningún aviso.
00:09:36
Si mi lista de alumnos del profesor
00:09:38
de posición i contiene a un alumno
00:09:40
igual que ese
00:09:43
y como la igualdad está con nif
00:09:44
pues esto se traduce
00:09:46
si mi lista de alumnos del profesor i contiene
00:09:48
un alumno con este nif
00:09:50
pues muéstrame
00:09:52
a ese profe
00:09:55
si no tuviera el constructor
00:09:59
solo con nif pues me haría
00:10:02
un alumno arriba, le haría
00:10:03
con el set el nif y ya está
00:10:05
bueno pues este método auxiliar
00:10:07
con este for
00:10:17
me muestra la lista de profesores
00:10:20
porque era este alumno.
00:10:22
Si ningún alumno está en la lista
00:10:23
de ninguno de los profes,
00:10:26
simplemente ese método no muestra nada,
00:10:27
no hace ningún system out y ya está.
00:10:29
Otra cosa es que queramos que funcione así,
00:10:31
que no funcione así,
00:10:33
que si nunca entra en este if,
00:10:34
avisemos con un boolean para decir
00:10:37
no hay profes con este alumno.
00:10:39
Eso ya tendríamos que hablar con el que lo ha pedido.
00:10:41
Si quisiéramos que avisara
00:10:45
en el caso de que ese alumno no tuviera profes,
00:10:47
Pues lo más cómodo sería hacer esto
00:10:50
Yo de partida asumo que no hay ningún profe
00:10:53
Que tenga a ese alumno
00:11:00
Y en el momento en el que encuentro uno
00:11:02
Ya solo en ese momento
00:11:05
Digo, oye, que sí, que sí
00:11:10
Al menos existe uno
00:11:12
Luego puede que aparezcan más
00:11:14
Luego puede que aparezcan más
00:11:15
Pero al menos uno existe
00:11:16
Y ahora ya cuando ya ha acabado mi for
00:11:19
Cuando ya ha acabado mi for
00:11:27
yo podría hacer, si no encontré ninguno
00:11:30
pues puedo poner
00:11:32
no hay ningún profesor
00:11:37
que dé clase a este alumno y ya está
00:11:38
voy a seguir por aquí
00:11:41
abajo
00:11:56
que dé clase al alumno
00:11:56
bueno, esto si quiero que muestre un mensaje
00:12:01
en el caso que no lo encuentre
00:12:05
vale, entonces
00:12:06
como ya que he puesto un boolean
00:12:14
ya que he puesto un boolean
00:12:15
aquí que cambia a true
00:12:17
cuando encuentra un profesor
00:12:19
que da clase a este alumno
00:12:21
ya que he puesto un boolean
00:12:23
que cambia a true
00:12:24
aprovecho y pongo esto aquí
00:12:25
como hacíamos ayer
00:12:30
para que el bucle pare
00:12:33
cuando encuentra un profesor
00:12:36
que da clase a ese alumno
00:12:39
¿sí o no?
00:12:40
pues no, ¿cómo voy a poner eso?
00:12:48
porque aquí puede haber muchos profes
00:12:50
que den clase a un alumno
00:12:52
claro, yo quiero seguir
00:12:53
Que haya encontrado a uno
00:12:56
Ya lo que me permite es avisar
00:12:58
Que al menos uno hay
00:13:00
Y me viene muy bien para el mensaje
00:13:01
Pero yo quiero seguir buscando
00:13:03
Por si hay más, para mostrarlos todos
00:13:06
¿Vale? Ayer lo que pasa
00:13:07
Es que las búsquedas que hacíamos
00:13:10
Sabíamos que solo iban a tener un resultado
00:13:11
Entonces en cuanto lo encontraba
00:13:13
Ya decíamos, oye, ya no sigas con el for
00:13:15
Pero aquí puede haber muchos profes
00:13:18
¿Vale?
00:13:19
Entonces aquí obviamente no haría esto
00:13:21
¿Vale?
00:13:23
Bueno, pues ya está, mostramos profes
00:13:27
¿Y qué me dice este?
00:13:31
Pues este
00:13:35
Lo que me está diciendo es
00:13:36
Que he dado el NIF de un profe
00:13:39
Listado alfabético de sus alumnos
00:13:43
Introduzca NIF
00:13:45
Vale
00:13:57
Leemos
00:13:58
Vamos a reutilizar la variable que ya tenemos arriba
00:13:59
Para leer el NIF del profe
00:14:02
Y ahora
00:14:05
Lo que tenemos es que
00:14:08
ordenar alfabéticamente
00:14:10
la lista
00:14:12
de alumnos
00:14:14
del profe con este nif
00:14:16
vamos a hacerlo igual
00:14:17
en lugar de meter aquí todas las líneas
00:14:20
vamos a hacer aquí
00:14:22
un método auxiliar
00:14:24
mostrar listado
00:14:25
alfabético
00:14:31
y le paso el nif
00:14:32
del profe
00:14:35
vale
00:14:37
entonces este método
00:14:45
está simplemente aquí
00:14:47
Con la idea de
00:14:49
Un método privado, auxiliar
00:14:51
Con la idea de recorrer la lista
00:14:53
Lo que sea
00:14:55
Vale
00:14:56
Venga, pues a ver
00:14:58
Un ratito, hacéis este método
00:15:06
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 8
- Fecha:
- 6 de marzo de 2024 - 12:24
- Visibilidad:
- Público
- Centro:
- IES ROSA CHACEL
- Duración:
- 15′ 11″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 71.52 MBytes