20250127 InterfacesComparable_2YEjercicioAlumnos - 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:
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
si
00:00:36
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
tú
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
No
00:10:21
¿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
si
00:16:51
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
si
00:20:47
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
FP
00:21:42
asignatura
00:21:43
FP
00:21:46
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