Saltar navegación

20250127 InterfacesComparable_2YEjercicioAlumnos - 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 29 de enero de 2025 por Raquel G.

12 visualizaciones

Descargar la transcripción

que te atreves a decir ahora 00:00:00
ha quedado grabado 00:00:06
bueno pues venga 00:00:12
rápidamente vamos a hacer este método y ya está 00:00:14
bueno pues 00:00:16
ahora tenemos 00:00:17
vale, string es una 00:00:19
dirección es un string 00:00:31
entonces vamos a hacer el método un poco feo 00:00:33
la dirección del objeto que llama al método 00:00:36
es igual 00:00:40
la comparo con igual 00:00:43
porque es on stream 00:00:44
en ese caso devuélveme 0 00:00:46
¿verdad? devuélveme 0 00:00:49
porque esa es la regla del juego y yo tengo que respetar 00:00:51
¿por qué me da rojo? 00:00:53
claro, porque me da rojo, pues dímelo tú 00:00:55
no, pues no 00:00:57
¿por qué te da rojo? 00:00:59
ahora que somos expertos en herencia 00:01:02
esto es fácil de entender y de solucionar 00:01:03
no, el rojo me da 00:01:06
aquí justo 00:01:10
no hace falta de buquear 00:01:11
yo voy subiendo y bajando 00:01:14
despacito, que es como gusta 00:01:18
hasta que lo 00:01:20
bien, muy bien 00:01:21
claro 00:01:26
este método es un método que 00:01:27
está declarado para que tú le pases 00:01:30
cualquier cosa 00:01:32
entonces como object en la super clase 00:01:33
de todo, que ya lo sabemos 00:01:36
que lo explicamos el otro día y las implicaciones que tiene 00:01:38
pues en object cabe cualquier cosa 00:01:40
pero claro, object no tiene 00:01:43
un método, no tiene una propia dirección 00:01:45
no la tiene, pero yo sé 00:01:47
que lo que el método sort 00:01:49
le va a pasar es casa 00:01:51
pues entonces no pasa 00:01:53
nada, le hago yo el casting a casa 00:01:55
sin miedo 00:01:57
sin miedo porque sé que es 00:01:57
una casa, hacer un casting 00:02:01
así alegremente 00:02:03
porque eso implica con 00:02:04
no lo pongas 00:02:08
no, podrías 00:02:09
pero entonces tienes que parametrizar 00:02:13
la interfaz, ves que está amarilla 00:02:15
está amarilla porque no está parametrizada 00:02:17
entonces, si pones caso abajo 00:02:19
había que parametrizarla 00:02:21
y eso implica entender lo que son los tipos 00:02:23
genéricos, y todavía 00:02:25
no los entendemos, pero lo haremos 00:02:27
¿vale? 00:02:29
es que, de verdad, hay muchas millones 00:02:31
yo intento darlas de forma dosificada 00:02:33
de manera, en una 00:02:35
en una secuencia que se pueda ir incorporando 00:02:36
pero si tú me cambias ahora esto 00:02:39
y le pones casa 00:02:41
hay que parametrizarlo de arriba 00:02:42
y entonces hay que decir que es un tipo genérico 00:02:44
conclusión, no hace falta 00:02:47
tienes una solución mucho más sencilla 00:02:49
que es esta 00:02:50
tienes una solución más sencilla que es esta 00:02:51
si este objeto 00:02:55
que va a ser una casa 00:02:57
porque yo a short le paso una write 00:02:58
si dan muy mal rollo 00:03:00
pero los castings se usan muchísimo 00:03:12
Porque muchas veces es que es imprescindible 00:03:14
Claro, o sea, me refiero que no es que decir 00:03:16
Uy, qué feo, habría que hacerlo de otra forma 00:03:18
Es que no, es que los castings son una herramienta básica 00:03:20
Vale 00:03:23
Bueno, a ver, el paréntesis 00:03:23
Oh, tiene esto delante 00:03:27
Que es el casting 00:03:30
Y ahora de todo esto 00:03:30
Me saco yo ya de todo esto 00:03:32
Que es el objeto casteado 00:03:35
Es el objeto casteado o castinizado 00:03:36
Me saco la dirección 00:03:39
Y ahora ya todo eso 00:03:41
se lo paso al equals 00:03:43
y luego este paréntesis 00:03:45
es el que me faltaba por cerrar 00:03:50
entonces 00:03:51
pero si dirección 00:03:55
está antes alfabéticamente 00:03:58
que casa o dirección, tengo que volver negativo 00:03:59
y como sé yo si un string 00:04:02
está alfabéticamente antes que otro 00:04:04
ya en su momento, en la clase string 00:04:05
dijimos, anda, si tienes un método compare 00:04:08
00:04:10
para 00:04:10
decirme si 00:04:12
una cadena 00:04:16
está alfabéticamente antes que otra. 00:04:18
Es decir, 00:04:21
dis.dirección es un 00:04:22
string. Si yo 00:04:24
miro los métodos que tiene 00:04:25
para cotillear, 00:04:28
veo que tiene un compareTo 00:04:30
ahí, 00:04:31
un compareTo 00:04:32
al que le puedo 00:04:34
pasar otro string. En nuestro 00:04:36
caso le pasaremos este, la dirección 00:04:38
de el objeto casa este 00:04:41
casteado. 00:04:43
Pasaremos este. 00:04:45
Sí, has entendido. 00:04:49
Compare tú es un método de string. 00:04:51
Eso. 00:04:57
Compare tú es un método de string. 00:05:01
Con lo cual yo lo puedo aplicar 00:05:04
a dis dirección. ¿Y qué necesita? 00:05:05
Otro string. 00:05:07
¿Y qué me hace compare tú? 00:05:08
si uno se va a la documentación 00:05:10
pues ve que compare tú, le devuelve 00:05:12
menos uno 00:05:14
si dirección está alfabéticamente 00:05:16
antes que el argumento 00:05:18
o justo 00:05:20
o más uno si está después 00:05:21
o cero si es el mismo 00:05:23
o cero si es el mismo 00:05:25
pues hombre 00:05:28
es que es justo lo que me está pidiendo 00:05:29
pues devuelvo ya esto 00:05:31
como si hubiera hecho aposta 00:05:32
que casualidad 00:05:35
pues justo 00:05:36
justo, devuelvo 00:05:37
el propio, hago el mismo, el propio 00:05:40
return y ya está. 00:05:42
Entonces, esto ya sé que me va a devolver 00:05:46
menos 1 si esto alfabéticamente 00:05:48
está antes. 00:05:50
Y sé que me va a devolver más 1 si está después. 00:05:51
Y de hecho, me va a devolver 00:05:54
0 si son iguales. Con lo cual, 00:05:56
estas líneas de arriba, es que las puedo quitar. 00:05:58
Estas ya me sobran. 00:06:01
Estas las puedo eliminar. 00:06:02
Estamos llevando una especie 00:06:09
de hilo de pensamiento 00:06:11
en el cual vamos... 00:06:13
Eso. 00:06:16
Anda, pues ya tengo el método. 00:06:17
Compare tú. 00:06:20
Si yo comparara 00:06:23
en virtud a números... 00:06:23
Si yo comparara 00:06:25
en lugar de una cadena, 00:06:30
imaginaos que yo aquí tengo un ID. 00:06:32
En casa, además, le vamos a poner 00:06:34
un ID. 00:06:35
Claro. 00:06:38
Vale, si yo tuviera aquí un id y quisiera comparar por orden 00:06:39
de id, pues, aquí directamente en este compare tú podría 00:06:46
poner, pues, dis.id, si dis.id menor que object.id, 00:06:50
pues, de retun menos 1. 00:06:56
Si no, retun 0, lo que sea. 00:06:58
Vale, o devolver directamente retun dis.id menos que el 00:07:00
otro. 00:07:05
Bueno, queda la idea clara, ¿no? 00:07:05
vale, voy a quitar este ID 00:07:07
para no liar 00:07:09
vale, pues ya tengo 00:07:11
lo que yo quería 00:07:13
es ver un ejemplo 00:07:16
de que todo está diseñado de esta manera 00:07:17
y nosotros ya no tanto 00:07:20
nuestro problema es 00:07:22
hacer un diseño de clases, decidir que es una interfaz 00:07:23
que no, todo eso se hace en la parte de análisis 00:07:26
y diseño, pero quizás es la que menos 00:07:28
os vais a ocupar vosotros en principio 00:07:29
sobre todo para nosotros ahora 00:07:31
nuestra tarea es entender 00:07:33
que es una interfaz, que es una clase abstracta 00:07:35
y ver que todo está diseñado 00:07:38
con ese tipo de 00:07:40
clases. Y cuando 00:07:42
nosotros usamos métodos de otros 00:07:44
seguramente nos van 00:07:46
a obligar a implementar interfaces que ya están 00:07:48
o heredar de clases abstractas. Cuando hagamos 00:07:50
interfaces gráficas, lo que tenemos que hacer 00:07:51
todo el rato es implementar y heredar 00:07:54
cosas que están esas en la librería 00:07:56
de las clases, de las interfaces 00:07:58
que yo quiero ser una ventana azul 00:08:00
pues no hago una ventana azul de cero 00:08:02
heredo de la clase ventana 00:08:04
y ya me pongo yo azulita 00:08:06
que además quiero poder ser cerrable 00:08:07
pues además tendré que implementar de cerrable 00:08:10
¿vale? entonces todas las herramientas que yo uso 00:08:12
tienen una arquitectura de clases 00:08:14
ya hechas con sus interfaces, sus cosas 00:08:16
y yo quiero 00:08:18
claro, eso no hay tu tía 00:08:19
así no hay que conocer 00:08:22
y tú te metes en ellas 00:08:24
y ya implementas, heredas de lo que te dé la gana 00:08:26
¿vale? entonces nosotros 00:08:29
ahora ya 00:08:31
Hemos implementado comparable 00:08:31
Y ahora este sort de casas 00:08:34
Se supone que ahora ya sí que funcionará 00:08:37
Ala, mirad que ordenaditas han quedado 00:08:39
Ahora ya sí han quedado ordenaditas 00:08:45
¿Cómo he puesto el qué? 00:08:47
He hecho el método 00:08:55
El método compare tú tiene una línea 00:08:56
Tiene esta línea, ya está 00:08:58
Retune, dis dirección, punto, compare tú 00:08:59
y ya con eso 00:09:03
ya solo con esa línea 00:09:06
el sort 00:09:08
cuando hará el casting 00:09:09
a comparable, hará sus cosas 00:09:13
ya llamará compare tú para ordenar 00:09:14
y hará todos sus pifostios 00:09:16
y ordena 00:09:17
todo está hecho 00:09:18
con interfaces, clases, etc 00:09:22
pues habrás hecho mal el método 00:09:23
porque a mí 00:09:30
alfabéticamente 00:09:31
alfabéticamente por dirección 00:09:33
o me lo ha ordenado a mí. 00:09:36
¿Cómo lo he hecho? Pues llamando 00:09:43
al método, mostrador de nada. 00:09:45
Ah, pues con este rollo de antes. 00:09:50
Yo lo tengo así. 00:09:55
Yo resuelvo. 00:09:57
Porque si eran números. 00:09:58
Espera, espera. 00:10:00
Un momentito 00:10:00
No toques nada 00:10:03
Te meto una leche 00:10:06
¿Tú y cuántos? 00:10:07
300 00:10:11
Se quedan cortos 00:10:11
A sus órdenes 00:10:13
¿Así es suficiente? 00:10:19
¿Más? 00:10:21
Pero ahí estamos 00:10:23
Y entonces 00:10:24
Bueno, lo miráis 00:10:25
Tranquilamente 00:10:38
Porque ya vamos a cambiar de tercio 00:10:38
Pues a ver 00:10:42
Parte de 00:10:52
Mi responsabilidad es contigo 00:10:54
y bueno, con vosotros, es deciros 00:10:56
arréglalo tú solo 00:10:58
¿vale? 00:11:00
porque tenéis que aprender a 00:11:02
encontrar y estudiar los errores 00:11:04
y pues os faltará un paréntesis 00:11:05
os faltará, encuéntralo 00:11:08
encuéntralo 00:11:09
rápidamente 00:11:11
hacemos 00:11:15
vale 00:11:26
Hacemos un nuevo proyecto. 00:11:27
Venga. 00:11:28
Sí, aquí que nadie se pierda y empiece a decirme, 00:11:30
sube, baja, derecha, izquierda. 00:11:32
No, lo vais haciendo a la vez que yo. 00:11:34
En vez de ir mirando las cosas. 00:11:36
Entonces es que pusiste extra. 00:11:43
Ejercicio, alumnos, títulos. 00:11:50
Para distinguirlo de los enénimos 00:11:52
ejercer infinitos 00:11:53
ejércitos alumnos. 00:11:56
Venga, tenemos nuestro proyecto. 00:12:05
Vamos a hacer un paquete. 00:12:08
Llámalo como te dé la gana. 00:12:09
Vamos a hacer un paquete para las entidades. 00:12:11
Venga. 00:12:14
Un modelo de 00:12:15
mundo. El modelo del mundo 00:12:16
del instituto. 00:12:19
Pues el modelo del mundo del instituto 00:12:20
no, porque 00:12:23
yo de aquí a mañana 00:12:27
a ver, esa será otra 00:12:29
a ver si tengo el tiempo 00:12:31
quiero traer el esqueleto hecho para que 00:12:31
mañana nos vayamos a las funcionalidades 00:12:35
directamente, porque es que 00:12:37
es que necesitamos muchas más 00:12:38
es el problema 00:12:40
pues necesitamos 20 00:12:42
Bueno, pero seguro que yo 00:12:48
te cuento cosas más interesantes que tu familia 00:12:59
Tenía tres hijos 00:13:01
Tenía tres 00:13:09
Y ya la ha cumplido 00:13:10
Pero esa era otra hermana 00:13:12
Es que igual has perdido la cuenta de los hermanos que tienes 00:13:14
a ver si tus padres 00:13:16
han gestado en estos últimos tiempos 00:13:19
mi madre no, mi padre 00:13:21
yo lo único a lo mejor 00:13:23
pero esos hermanos no los vas a conocer nunca 00:13:25
sí, ten cuidado, tú mejor no dones 00:13:28
esperma en los bancos de fertilidad porque 00:13:35
igual te lo coge alguna 00:13:37
hermana tuya por ahí 00:13:39
hacen estudios en serio 00:13:40
Para asegurarse de que no es... 00:13:45
Oye, pues no está mal pensado porque ahora hay mucha cosa... 00:13:48
Venga, alumno. 00:13:53
¿Qué tiene alumno? 00:13:59
Todos los alumnos tienen nombre, nacimiento y asignaturas en las que están todos. 00:14:00
Pues venga, todos los alumnos tienen nombre, nacimiento... 00:14:05
Pero, ¿por qué? 00:14:22
Por eso las pongo, para que les quitéis la manía. 00:14:26
Y el conjunto de asignaturas de las que están matriculados. 00:14:29
Vale, pues a ver. 00:14:34
Entonces, la clase de asignatura, 00:14:36
el alumno está matriculado de asignaturas. 00:14:42
¿De cuántas? 00:14:44
No sabemos, pero que inicie teniendo cero. 00:14:49
Vale, ¿qué pasa? 00:14:58
Bueno, vamos a hacer 00:14:59
Yo hago para ser más cortos 00:15:00
Constructor sin parámetros 00:15:03
Luego se los fijo con set si hacen falta 00:15:05
Y get y set, y así vamos a toda leche 00:15:07
Venga, constructor sin parámetros 00:15:09
Y get y set 00:15:11
Y listo, pelota 00:15:16
Y esto a toda leche 00:15:17
¿Importa el qué? 00:15:18
Que sí, hombre, que sí, que no importa 00:15:21
Relax 00:15:23
Dejaba útil, no dejaba SQL 00:15:24
para que el constructor 00:15:28
pues eso, dejaba útil 00:15:29
vale, y ahora qué pasa, que la clase asignatura 00:15:32
está sin hacer, venga, vamos a hacer la clase 00:15:34
asignatura 00:15:36
create class asignatura 00:15:37
asignatura también es una 00:15:40
superclase, porque luego habrá subclases 00:15:46
asignar módulo 00:15:48
y asignatura eso, o algo así 00:15:49
pero en la superclase algo habrá común 00:15:52
entonces 00:15:54
las dos 00:15:59
se van a caracterizar por nombre 00:16:01
lo dice aquí 00:16:03
pero sin embargo nota 00:16:05
la de secundaria 00:16:07
es literal y la de FP es numérica 00:16:09
y número de horas 00:16:11
con lo cual lo único que tienen en común es el nombre 00:16:13
de la asignatura, luego 00:16:15
nombre, string nombre 00:16:17
y listo 00:16:19
que ganas 00:16:21
estás deseando ver a Estefan 00:16:28
ya lo sé 00:16:30
pero tiene que querer el veros a vosotros 00:16:32
venga 00:16:35
pues muchísimas 00:16:39
Juanjo lo sabe 00:16:42
venga 00:16:43
pero por el italiano 00:16:44
eso fue por el que no entiendes italiano 00:16:46
get set y constructor sin parámetros 00:16:48
ala pues ya tenemos 00:16:54
las dos super clases con sus get set 00:16:57
constructores y las propiedades comunes 00:16:59
Pero con esto no hacemos nada porque los alumnos cuando se matriculen o bien son de la ESO o bien son de FP. 00:17:01
Con lo cual, con esto no hacemos nada. 00:17:06
Entonces, vamos a hacer un alumno de la ESO. 00:17:08
Eso, una clase, alumno ESO. 00:17:16
Y alumno ESO hereda del alumno, es un alumno normal, aunque no lo parezca. 00:17:20
Y hereda de alumno. 00:17:27
Vale. Heredad de alumno y aparte que añade el alumno de la ESO. Pues el alumno de la ESO me dice que aparte de su nombre, asignaturas y fecha en la que se matriculó, el alumno de la ESO tiene que añadir el curso en el que está, nombre y teléfono del tutor. 00:17:28
Bueno, pues nada. Añadimos el curso en el que está y el nombre y el teléfono del tutor. 00:17:47
Teléfono en un string también y así ganamos tiempo. 00:18:03
Constructor sin parámetros y getter y setter. 00:18:08
¿Puede protegerse en algún nombre? 00:18:16
Sí, sería interesante 00:18:17
Vale, entonces efectivamente 00:18:21
Como ya tenemos una clase 00:18:30
Que debe de alumno, como alumno eso 00:18:31
Pues vamos a irnos alumno 00:18:33
Nos volvemos alumno y decimos 00:18:35
Venga, vamos a cambiar estos privates de aquí 00:18:37
Los vamos a cambiar a protected 00:18:39
Para en las subclases facilitarles un poco la tarea 00:18:41
Y no tener que estar peleando del gueto todo el rato 00:18:45
Les facilitamos la tarea 00:18:47
Protected, vale 00:18:50
Y alumno de FP, pues lo mismo. 00:18:54
Hacemos un alumno que herede de alumno. 00:18:57
Hay de todo. 00:19:16
Y ahora, alumno de FP, el ciclo. 00:19:18
Es lo único que añade. 00:19:20
¿De qué ciclo estás? 00:19:21
Pues vamos a ponértelo en un stream. 00:19:23
estás en un ciclo 00:19:25
raro. 00:19:28
Venga. 00:19:31
Constructor 00:19:33
sin parámetros y Getty Set. 00:19:34
¿Hay alguna forma de 00:19:37
hacer clic derecho o crear subclase? 00:19:41
Puede ser. 00:19:45
Puede ser. No sé. No lo he buscado nunca. 00:19:46
Vale. Pues los alumnos los tenemos. 00:19:48
Los alumnos están matriculados 00:20:00
de asignaturas. Lo que pasa es que asignaturas 00:20:01
hay de dos tipos 00:20:03
asignaturas hay 00:20:04
de secundaria y de FP 00:20:07
entonces vamos a hacer esas dos 00:20:08
y a partir de ahí, métodos con funcionalidades 00:20:11
que hacen cosas 00:20:13
ah bueno, falta la interfaz titulable 00:20:14
entonces 00:20:15
nos hacemos la asignatura de FP 00:20:17
asignatura de la ESO 00:20:21
que la asignatura de la ESO 00:20:31
añade la nota literal solamente 00:20:32
y el nombre 00:20:35
ah no, el nombre ya estaba 00:20:36
la nota literal 00:20:38
vale 00:20:40
que la asignatura de la ESO 00:20:42
lo único que añade es la nota 00:20:44
para liarlo todo 00:20:50
y que en una aplicación con métodos 00:20:53
no os liéis aunque haya diferentes clases 00:20:55
diferentes estructuras de herencia, etc 00:20:57
aunque esté muy forzada 00:20:59
y pilla por los pelos, pero es la idea 00:21:01
nota 00:21:02
vale, pues el constructor 00:21:04
sin parámetros 00:21:09
eso, porque los de la ESO 00:21:13
son así 00:21:17
y el Getty Set que me falta 00:21:18
al hacer constructores sin parámetros 00:21:24
todo el rato, ahorro todo el tiempo 00:21:26
de hacérmelo con el super tirando arriba 00:21:28
como ya sabemos lo que va ahí 00:21:30
no queremos perder tiempo ahora 00:21:32
vale, y ahora asignatura de FP 00:21:35
asignatura 00:21:37
asignatura 00:21:43
vale 00:21:48
es que si no 00:21:49
se pone ya implícitamente hay un super 00:21:54
sin parámetros arriba 00:21:56
si tú no pones nada 00:21:58
si la clase hereda de alguien 00:22:00
que todas heredan, sea de objeto 00:22:02
de la que sea 00:22:04
vale, y en asignatura de FP 00:22:04
añadía la nota numérica 00:22:08
las horas que tiene ese módulo 00:22:10
y la convocatoria 00:22:12
por añadir algo 00:22:13
acabáramos 00:22:14
aquí no lo he puesto 00:22:19
y en asignatura FP 00:22:25
tampoco lo he puesto 00:22:27
esta tenía 00:22:30
la nota que era numérica 00:22:37
y no sé qué más tenía 00:22:39
el número de horas y la convocatoria 00:22:44
bueno, todos enteros 00:22:47
así que lo vamos a poner en el mismo 00:22:49
y la convocatoria en la que estamos 00:22:50
porque si estamos en la cuarta 00:22:58
pues hay que avisarle y mandarle una cartita 00:23:00
etcétera 00:23:03
constructor sin 00:23:06
pues imagínate que no te los hicieran a mano 00:23:09
que no te los hicieran automáticamente 00:23:19
quiero decir 00:23:25
Vale, ¿tenemos todas las clases de la situación? 00:23:26
Pues casi, pero no. 00:23:31
Porque aquí me dice que hay una interfaz titulable. 00:23:33
Con el método generar título. 00:23:38
Entonces, todos los que quieran ser titulables tienen que implementar ese método. 00:23:40
Pues vamos a hacer la interfaz. 00:23:45
Vale. 00:23:47
Vamos a hacer una interfaz. 00:23:48
New titulable. 00:23:52
vale, la interfaz titulable 00:23:59
lo único que tiene es un método 00:24:03
que se llama 00:24:04
generar título 00:24:06
es lo único que tiene 00:24:08
lo va a generar por consola 00:24:09
los datos del título y todo eso 00:24:12
entonces un void y ya está 00:24:13
este método, si estuviéramos ya en segundo 00:24:15
y supiéramos hacer informes en pdf 00:24:23
pues este método, la idea es que me devolviera 00:24:25
un file que fuera el pdf 00:24:27
pero como no sabemos 00:24:29
pues lo muestra por consola 00:24:32
y nos aguantamos 00:24:34
y yo para que pongo esto 00:24:35
ya está 00:24:36
ni public ni nada 00:24:38
no hace falta 00:24:40
y ahora que pasa 00:24:40
que todos los alumnos 00:24:43
tienen que implementar titulable 00:24:45
entonces 00:24:47
yo puedo 00:24:48
poner aquí 00:24:51
titulable 00:24:53
titular 00:24:54
generar título 00:24:55
generar título 00:24:59
Si yo lo pongo en alumno, luego tengo que ponerlo en alumno, eso, alumno. 00:25:01
Vamos a ver. 00:25:05
Todos los alumnos tienen que ser titulables. 00:25:07
Entonces, yo implemento titulable. 00:25:09
Vale. 00:25:12
Entonces, si alumno implementa titulable, ya sabemos que tiene que tener ese método generar título. 00:25:13
Vale. 00:25:20
¿Qué es un método creado? 00:25:22
Vale. 00:25:24
Pero generar título, ¿eh? 00:25:24
¿Qué es un método creado? 00:25:26
O sea, te obliga a darlo. 00:25:29
Te obliga, los tienes que... 00:25:31
O sea, los métodos se heredan todos y si están vacíos, porque son abstractos, como no los puedes heredar abstractos, a menos que te conviertas en abstracto, te obliga a implementarlos. 00:25:32
Entonces, los alumnos tienen que ser titulables porque todos tienen que poder generar un título. Pues esa es la forma de reflejarlo, es que implementen titulables. 00:25:45
Todos los que vean de alumno que implementa titulable ya tienen implementado titulable también. 00:25:54
Eso, vamos a verlo ahora, ver lo que nos va pidiendo. 00:25:59
Vamos a verlo ahora. 00:26:05
Implementa titulable, con lo cual tiene que implementar generar título. 00:26:06
¿Vale? 00:26:11
Entonces, asignatura, perdón, alumno ESO y alumno de FP ya están heredando todo lo de titulable. 00:26:12
Con lo cual, ellas están implementando titulable y sobrescribiéndolo con esta versión que yo he puesto aquí, con esta versión. 00:26:26
Lo que pasa es que si queremos dejar esto con un poco más de sentido, generar título en alumno, generar título en alumno está por definir porque el título del alumno de la ESO tendrá un texto con nota media sobresaliente. 00:26:36
Sin embargo, el título de alumno de FP será distinto en el ciclo de patatín. 00:26:49
Luego, generar títulos será distinto en ambos. 00:26:54
Luego, en alumno está por definir. 00:26:55
Entonces, aquí lo que tendría sentido es que yo dejara esto así, vacío, y pusiera aquí un astrat. 00:26:57
¿Vale? 00:27:06
Lo pusiera en astrat porque yo no sé en alumno cómo se va a generar el título. 00:27:08
Entonces, yo lo dejo aquí, vacío. 00:27:13
¿Y eso qué hace? 00:27:15
Me obliga a que mi clase de alumnos sea abstracta. 00:27:19
No pasa nada. 00:27:22
Yo la pongo aquí como abstracta. 00:27:24
Vale. 00:27:26
Claro. 00:27:29
Entonces, ya, alumnos sueltos, alumnos sin más, ya no puede haber. 00:27:30
¿Eso es un problema en mi aplicación? 00:27:33
No es un problema. 00:27:35
Pues, entonces, yo la dejo como abstracta. 00:27:37
Vale. 00:27:39
Y el método abstracto. 00:27:40
Entonces, al haberlo dejado como abstracto, 00:27:42
ahora ya sí que obligo tanto alumno de la ESO como alumno de FP 00:27:44
a sobreescribir el método. 00:27:47
Bueno, pues en alumno de la ESO 00:27:51
tendré que 00:27:53
sobreescribir el método. 00:27:55
Tendremos que ver cómo 00:27:59
el texto que queramos mostrar 00:28:00
lo elegiremos. 00:28:02
Aquí ya 00:28:03
escribiremos el título que nos dé la gana. 00:28:04
Y en alumno de FP también. 00:28:08
En alumno de FP 00:28:17
pues también 00:28:18
haremos 00:28:19
pondremos el listado que queramos 00:28:23
ya el próximo día 00:28:27
vale 00:28:29
y entonces ahora ya 00:28:31
en nuestro main 00:28:34
vamos a ver ya mañana 00:28:34
va a ser posible, solo la primera hora 00:28:37
en nuestro main vamos a ver 00:28:40
pues como instanciar 00:28:42
diferentes 00:28:43
asignaturas, alumnos 00:28:45
y que implicaciones tiene, que implementen 00:28:48
titulables, etc, etc, que no lo implementen 00:28:50
bla bla bla 00:28:52
Claro, si es que esto no tiene nada, claro. 00:28:52
Por eso digo que en una hora mañana hacemos algunas de las gestas y... 00:28:57
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:
12
Fecha:
29 de enero de 2025 - 12:58
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
29′ 04″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
141.50 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid