Saltar navegación

Repaso herencia y Ejemplo Clase Abstracta - 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 7 de febrero de 2024 por Stefano C.

11 visualizaciones

Descargar la transcripción

Vale, voy a grabar este ejercicio, ¿vale? 00:00:00
Mientras lo hacemos, porque por petición vuestra, ¿vale? 00:00:03
Hasta si es un ejercicio, lo grabamos, ¿vale? 00:00:06
Luego si queréis lo miráis, si no, no. 00:00:08
Vale, entonces, vosotros ayer o para hoy 00:00:12
deberíais haber intentado razonar un poco sobre empleado. 00:00:14
Era muy sencillo, no tenía nada especial, ¿vale? 00:00:18
En vez de corregir esto, vamos a hacer uno nuevo, ¿vale? 00:00:22
Y luego así pillamos esto como base para entender también otras cosas, ¿vale? 00:00:25
Entonces, creamos una clase que se llama figura geométrica, ¿vale? 00:00:33
Esto representa una figura geométrica general, ¿sí? 00:00:38
Una cosa bastante general, bastante genérica, ¿vale? 00:00:42
Los atributos de esta figura son un nombre y cuántos lados tiene, ¿sí? 00:00:47
Utilizar constructores para iniciar. 00:00:54
Utilizar estos atributos, ¿sí? 00:00:55
Entonces, empezamos por ahí. 00:00:58
Me creo una nueva clase que sea figura geométrica. 00:01:02
¿Sí? ¿Ven ahí? Sí. 00:01:18
Figura geométrica tiene string nombre. 00:01:21
Tiene int número lados. 00:01:25
Tiene un constructor. 00:01:32
Que pillará un nombre y un número lados. 00:01:40
Y no dice punto nombre. 00:01:47
Es igual al nombre. 00:01:55
Y es punto número lados. 00:02:02
Es igual al número lados. 00:02:06
Y esta es la base. 00:02:12
No tiene mucho más. 00:02:14
¿Sí? 00:02:16
Entonces, crear una clase triángulo que herede de la clase figura geométrica. 00:02:19
¿Vale? 00:02:25
Y añada los atributos lado uno, lado dos, lado tres. 00:02:27
Utilizar constructores para inicializar los atributos heredados y el nuevo atributo. 00:02:31
¿Vale? 00:02:38
Entonces, crea una nueva clase. 00:02:38
Esta clase es la clase triángulo. 00:02:44
¿Vale? 00:02:48
Y ahora hago que este triángulo extenda figura. 00:02:49
Figura. 00:02:53
Geométrica. 00:02:55
Entonces, los nuevos atributos que tiene son int lado uno, int lado dos, int lado tres. 00:03:04
Fijaos que me da un error. 00:03:18
¿Qué error será esto? 00:03:21
Constructor. 00:03:24
¿Vale? 00:03:25
Porque este constructor por defecto utiliza el constructor por defecto. 00:03:25
El constructor por defecto usa super por defecto como primera línea. 00:03:30
Y como me voy a figura geométrica y aquí no hay un constructor sin parámetros, se enfada. 00:03:38
¿Vale? 00:03:45
O sea, esto se cambiará en el momento en que hago public triángulo. 00:03:46
Triángulo. 00:03:51
String nombre. 00:03:52
Int número lados. 00:03:57
Int lado uno. 00:04:03
Int lado dos. 00:04:05
Int lado tres. 00:04:12
Y aquí le digo super. 00:04:14
De nombre. 00:04:22
Número lados. 00:04:24
O sea, uso el constructor de mi superclase para crearme un objeto de tipo figura geométrica usando el constructor apropiado. 00:04:27
Esto me crea la parte de este objeto que es extendida, que es heredada desde figura geométrica. 00:04:37
Y a partir de allí voy construyendo, voy implementando, voy inicializando los... 00:04:44
...los atributos que son propios de esta clase. 00:04:51
Entonces, dis.lado1 es igual a L1. 00:04:56
Dis.lado2 es igual a L2. 00:05:03
Dis.lado3 es igual a L3. 00:05:07
¿Cómo? 00:05:10
¿Cómo? 00:05:15
Dis.lado2 es igual a L4. 00:05:21
Dis.lado2 es igual a L5. 00:05:23
¿Cómo? 00:05:24
¿Cómo? 00:05:25
Dis.lado3 es igual a L6. 00:05:25
Dis.lado4 es igual a L9. 00:05:26
Dis.lado5 es igual a L10. 00:05:27
Dis.lado8 es igual a L10. 00:05:28
Dis.lado9 es igual a L11. 00:05:28
Dis.lado9 es igual a L12. 00:05:30
Sí. 00:05:30
Así, casi mejor, porque sí he habido de hacer un triángulo del ciclo de lados. 00:05:30
¿Sí? 00:05:37
Como el triángulo tendrá siempre tres lados, pues entonces lo que voy a hacer es efectivamente no pedir como parte del constructor cuántos lados tienes. 00:05:37
Ya lo sé. 00:05:50
¿Vale? Ese es un atributo que tengo que rellenar 00:05:50
Porque alguien lo tiene, pero sé siempre que dentro de un triángulo 00:05:55
Este será el valor de 3, ¿correcto? 00:05:58
¿Sí? 00:06:01
Por ahora me pedía esto, ¿vale? 00:06:09
Antes de seguir adelante 00:06:13
Ah, no, lo hace por aquí 00:06:15
Ya que estamos 00:06:17
Pongamos un main para probar estas cosas, ¿vale? 00:06:21
Para hacer public static void main 00:06:25
Eso no será el main de mi aplicación, ¿vale? 00:06:30
Es solo un main rápido para ver qué puedo hacer con estas dos cosas 00:06:40
¿Qué puedo hacer con estas dos cosas? 00:06:44
Puedo crear una función 00:06:46
Una figura geométrica 00:06:47
Ok, es igual a new figura geométrica 00:06:48
De, no sé 00:06:59
Pentágono 00:07:04
Coma 5 00:07:07
¿Vale? 00:07:10
Puedo crear un triángulo 00:07:14
Triángulo 00:07:17
Que es igual a new 00:07:18
Triángulo 00:07:26
Triuno 00:07:31
Coma 00:07:33
3, 4, 5 00:07:36
¿Sí? 00:07:39
Y puedo crear una figura geométrica 00:07:43
Que sea un triángulo 00:07:47
¿Sí? 00:07:53
¿Sí? 00:08:10
Esta es una de las propiedades de la herencia, ¿vale? 00:08:13
Un triángulo es una figura geométrica 00:08:16
Una figura geométrica 00:08:17
Entonces yo puedo 00:08:18
Ahora 00:08:19
Esta cosa de aquí 00:08:21
No es exactamente igual a crear un triángulo 00:08:25
¿Vale? 00:08:30
Hagamos dos ejemplos 00:08:32
Por ejemplo, si en figura geométrica pongo 00:08:35
Public 00:08:38
Void 00:08:39
Describir 00:08:42
¿Vale? 00:08:45
Y aquí pongo si eso 00:08:47
Soy una figura 00:08:50
Número lados 00:08:54
Lados 00:08:59
Dos puntos 00:09:04
Más nombre 00:09:07
¿Vale? 00:09:09
Y pongamos otra cosa que sea 00:09:12
Public 00:09:17
Void 00:09:20
Como me llamo 00:09:22
Bueno, no me hace falta 00:09:25
No me hace falta 00:09:27
Bueno, a ver 00:09:27
Public 00:09:31
Void 00:09:33
Como me llamo 00:09:34
Mi nombre 00:09:37
¿Vale? 00:09:43
Que lo que hace es 00:09:46
Si yo soy 00:09:47
Más nombre 00:09:50
¿Vale? 00:09:53
Dos métodos 00:09:54
Uno es describir 00:09:55
Y uno es mi nombre 00:09:56
¿Sí? 00:09:57
En el triángulo 00:10:00
Pongo 00:10:02
Public 00:10:04
Void 00:10:07
Describir 00:10:07
Que dice algo como 00:10:09
Super 00:10:14
Super 00:10:15
Super 00:10:16
Super punto de escribir 00:10:17
Y luego dice 00:10:20
Fiso 00:10:26
Mis 00:10:28
Lados son 00:10:36
Más L1 00:10:38
Más L1 00:10:42
Más L1 00:10:42
Más L1 00:10:42
Más L1 00:10:42
Más L1 00:10:42
Más L1 00:10:42
Más L1 00:10:43
Más L2 00:10:46
Más lado 00:10:49
Más 00:10:50
Lado 3 00:10:56
¿Vale? 00:11:00
Son métodos sencillos 00:11:01
Y aquí pongo 00:11:03
Public 00:11:06
Void 00:11:07
Public 00:11:10
Void 00:11:12
Public 00:11:14
Void 00:11:16
Esto era el primer para esta hoja 00:11:22
¿Vale? 00:11:29
Lolay 00:11:33
Poca 00:11:37
Perfect 00:11:40
Itu 00:11:45
He creado cuatro métodos. Si os fijáis hay una diferencia, ¿vale? Describir es un método que es sobrescrito en triángulo. O sea, el mismo método con la misma firma tanto en figura geométrica como triángulo. 00:11:46
Eso quiere decir que el método se ha sobrescrito. Mientras que luego hay un método que está solo en figura geométrica y un método que está solo en triángulo. ¿Vale? ¿Para qué me sirve esto? 00:12:06
Yo he creado aquí tres cosas. Primero es una figura geométrica. Si yo pregunto fg. aquí me aparece lo que puedo hacer con figura geométrica. 00:12:20
Y si os fijáis yo puedo... 00:12:33
Describir y puedo llamar mi nombre. Porque soy un figura geométrica. 00:12:36
¿Sí? 00:12:41
fg.mi nombre. 00:12:47
Piso. 00:12:55
Figura geométrica. 00:12:59
¿Sí? 00:13:03
¿Vale? ¿Qué puedo hacer con un triángulo? 00:13:06
Triángulo. 00:13:11
Vamos a verlo. Si yo ahora hago t. 00:13:14
Me dice que puedo hacer. 00:13:17
Si os fijáis puedo llamar nombre. 00:13:20
Perdón, puedo llamar describir. 00:13:22
Puedo llamar el método triángulo. 00:13:25
Y también puedo llamar mi nombre. 00:13:28
¿Vale? 00:13:30
¿Se aclaró eso? 00:13:33
O sea, misa. 00:13:35
Tengo que escribir. 00:13:36
T.mi nombre. 00:13:40
T.metodo.triángulo. 00:13:43
Porque al ser triángulo tengo los míos. 00:13:49
Que son describir y metriángulo. 00:13:52
Y tengo también lo que he heredado de mi padre. 00:13:56
¿Sí? 00:13:59
Duda. 00:14:01
¿De quién es este describir? 00:14:03
De la clase. 00:14:06
Triángulo. 00:14:11
Y este describir aquí. 00:14:14
Figura geométrica. 00:14:18
Y hasta aquí. 00:14:23
Más o menos. 00:14:25
La tercera cosa que tenemos que ver es. 00:14:26
Triángulo. 00:14:34
Triángulo en variable figura geométrica. 00:14:35
Es decir, esta cosa de aquí. 00:14:45
He creado un triángulo. 00:14:48
Pero lo he metido dentro de una referencia figura geométrica. 00:14:50
¿Vale? 00:14:54
¿Qué me espero aquí? 00:14:55
Está en la descripción. 00:14:57
Se llama esto. 00:15:01
Fg2. 00:15:03
Fg2.descripción está así. 00:15:04
Describir. 00:15:08
Vale. 00:15:09
Sí. 00:15:10
Puedo hacer mi nombre. 00:15:11
Sí. 00:15:16
Puedo hacer metriángulo. 00:15:17
Triángulo. 00:15:20
Triángulo. 00:15:20
Ahí. 00:15:26
Oye, este es un triángulo. 00:15:34
Entonces no entiendo. 00:15:42
¿Cómo es posible que si esta es una instancia de triángulo no pueda llamar métodos de triángulo? 00:15:44
Porque al haberlo puesto dentro de una variable de tipo figura geométrica. 00:15:49
Pues los métodos y los atributos que puedo llamar y que puedo utilizar. 00:15:58
Son los definidos. 00:16:03
Son los atributos de figura geométrica. 00:16:03
Entonces aquí. 00:16:05
No puedo. 00:16:09
Perdón que este es Fg2. 00:16:11
No puedo. 00:16:14
Usar Fg2.metriángulo. 00:16:17
¿Sí? 00:16:24
Porque Fg2 en realidad es una figura geométrica. 00:16:26
Y razonando de esta forma. 00:16:30
Entonces. 00:16:33
Cuando yo estoy llamando. 00:16:33
Este describir. 00:16:35
¿Qué estoy llamando? 00:16:36
Hola. 00:16:41
No. 00:16:47
Atriángulo. 00:16:48
¿Sí? 00:16:51
Porque la lógica. 00:16:52
Por lo que hemos dicho. 00:16:54
Si no lo estás pillando. 00:16:55
Si estás tratando como una figura geométrica. 00:16:57
Pues deberías utilizar la figura geométrica. 00:16:58
Pero aquí. 00:17:01
y entra y subentra como funciona la herencia dentro de Java, ¿vale? 00:17:02
Y a la hora de llamar el método sobrescrito, porque este es un método sobrescrito, 00:17:08
pues él se dará cuenta que lo está llamando no sobre una instancia, 00:17:14
sobre un objeto de tipo figura geométrica, sino el objeto que está dentro es en realidad de tipo triángulo. 00:17:19
Entonces, de forma automática, él va a utilizar el método más específico para esta instancia. 00:17:25
Entonces, en este caso, estaría utilizando el triángulo. 00:17:35
Yo no veo los métodos propios de triángulo porque mi referencia no me lo permite, 00:17:39
pero aquellos métodos que existen en el padre y que han sido sobrescritos en el hijo, 00:17:47
o veracruzados, 00:17:55
o que se rinden, pues esos métodos uso el del triángulo en vez que el de la figura geométrica. 00:17:55
La grabación con el taladro vendrá fenomenal. 00:18:06
Ahora entonces, figura geométrica usa la de figura geométrica y dice su nombre. 00:18:11
El triángulo usa su método. 00:18:20
Estas dos líneas son la llamada a su padre y luego el extra que hemos añadido nosotros para el triángulo. 00:18:25
Y esto en vez es siempre mi nombre llamado desde arriba. 00:18:37
Y este de aquí es el método propio de triángulo. 00:18:42
Este que es el triángulo en la variable figura geométrica, 00:18:46
veis que cuando llamo el de escribir, 00:18:50
pues me está usando el de triángulo, no el de figura geométrica. 00:18:54
¿Dudas? 00:19:01
Pregunta. 00:19:05
¿Y podría yo a través de esta variable utilizar el met-triángulo? 00:19:09
¿Y podría yo a través de esta variable utilizar el met-triángulo? 00:19:21
¿Y podría yo a través de esta variable utilizar el met-triángulo? 00:19:23
¿Como? 00:19:23
Haciendo lo que se llama un downcasting. 00:19:27
Haciendo lo que se llama un downcasting. 00:19:30
Haciendo un downcasting. 00:19:37
Klausé. 00:19:50
¿Veis? 00:19:52
¿Qué ahora está? ¿Qué le estoy diciendo? Le estoy diciendo, oye, variable FG2, tú no eres ya, o sea, trátame FG2 no como si fuera una figura geométrica, sino como un triángulo. 00:19:53
Vale, fenomenal. A este punto podré acceder a los métodos del triángulo, como por ejemplo, método triángulo. 00:20:10
Vale, ¿cuál es el problema? Que esto conlleva un riesgo, porque esto me funciona perfectamente, y si hago, a ver, triángulo de FG punto método triángulo, 00:20:17
¿no? No es una cosa. Y él, a tiempo de compilación, me dice, muy bien, ¿vale? 00:20:35
¿Vale? 00:20:46
¿Vale? 00:20:46
¿Vale? 00:20:46
¿Vale? 00:20:46
¿Vale? 00:20:46
¿Vale? 00:20:46
¿Vale? 00:20:46
¿Vale? 00:20:46
¿Vale? 00:20:46
¿Vale? 00:20:46
¿Vale? 00:20:47
¿Vale? 00:20:47
¿Vale? 00:20:47
¿Vale? 00:20:47
¿Vale? 00:20:47
¿Vale? 00:20:47
¿Vale? 00:20:50
¿Vale? 00:20:50
¿Vale? 00:20:50
¿Vale? 00:20:50
¿Vale? 00:20:50
¿Vale? 00:20:50
¿Vale? 00:20:50
Explota. 00:20:51
Porque aquí ha funcionado, porque cuando yo he hecho un casting explícito de esta referencia a triángulo, ella contenía un triángulo, y entonces ha podido hacer este método de aquí. 00:20:52
Sin embargo, cuando he hecho un casting explícito de esto a triángulo, en realidad esto no contiene un triángulo, contiene una figura. 00:21:09
geométrica, y por lo tanto 00:21:17
cuando llamo este método aquí 00:21:18
pues no lo podría hacer, de hecho 00:21:20
explota ya aquí, porque 00:21:22
con lo que sale 00:21:24
es una class cast exception 00:21:26
un error, una excepción 00:21:29
de casting de la clase 00:21:31
me dice que 00:21:33
la clase figura geométrica 00:21:35
no puede ser 00:21:37
cambiada 00:21:39
puedes hacer un cast a la figura geométrica 00:21:41
en triangle 00:21:43
como evito 00:21:47
esto 00:21:49
como puedo evitar 00:21:50
esto 00:21:57
preguntándome antes 00:21:57
si lo que yo quiero 00:22:00
castear, es casteable o no 00:22:02
en el sentido de 00:22:05
fg2 00:22:08
instanche 00:22:10
off 00:22:13
triángulo 00:22:13
entonces 00:22:15
instanche off 00:22:24
triángulo 00:22:26
entonces 00:22:28
else 00:22:33
el primero no me lo va a hacer 00:22:34
siso 00:22:39
puede 00:22:43
hacerlo 00:22:43
esto no se ejecuta 00:22:48
no ves 00:23:02
es un problema 00:23:04
y lo lanzamos 00:23:06
y cuando se hace un problema 00:23:12
y cuando se hace un problema 00:23:13
Cuando lo hago sobre fg2, pues me lo puede hacer tranquilamente, lo hace y llama el método, porque este if ha devuelto true, fg2 que es una variable de tipo figura geométrica, 00:23:13
pero contiene una instancia de triángulo, entonces este es true, y entonces luego lo llama y ningún problema, sin embargo fg no contiene una instancia de triángulo, 00:23:36
entonces cuando pregunto esto, esto me da false, entonces no ejecuto este de aquí, entonces me ahorro la excepción y me voy a escribir esto. 00:23:48
¿Qué no puedo hacer? 00:23:58
¿Dudas? 00:24:03
¿Preguntas? 00:24:05
¿Queda claro esto? 00:24:07
Vale. 00:24:12
Vamos a ver, ¿qué estamos haciendo aquí? 00:24:25
¿Ejercicio o aprendiendo Java? 00:24:29
¿Estamos haciendo ejercicios o estamos aprendiendo Java? 00:24:31
Ejercicios son para que vosotros entendáis cómo funciona Java y que luego lo podáis utilizar. 00:24:36
El ejercicio ahora a lo mejor no te lo pide, pero a lo mejor está escondido en algunas cosas que te está pidiendo, y de todas formas tú lo que tienes que aprender es qué puedes hacer para que luego en un futuro sepas qué quiere decir, 00:24:42
si estás sobreescribiendo el método, si no lo estás sobreescribiendo, si tienes un array de figuras geométricas, cómo acceder a ellas, y si sabes que una figura geométrica es un triángulo, 00:24:57
¿Cómo podría tratarlo como triángulo no obstante tenga una referencia como figura geométrica?... 00:25:06
Pues todas estas son cosas que luego se usan en Java, los ejercicios. 00:25:12
Pues habrá ejercicios más avanzados en donde te pide hacer esto. 00:25:17
Pero, ¡estamos empezando! 00:25:20
La idea es que vosotros repaséis, no sé si aquí manejador figuras creas un objeto de figuras geométricas. 00:25:22
Entonces, eso luego lo vamos a hacer, solo que como os he dicho ya, vas a tener que aprender cómo hacer ejercicios para que lo sea. 00:25:31
Pues, entonces, vamos a leer el valor de losthy.com.ar. 00:25:34
Vamos a leer el valor de losthy.com.ar. 00:25:35
Vamos a leer el valor de losthy.com.ar. 00:25:35
Vamos a leer el valor de losthy.com.ar. 00:25:35
Vamos a leer el valor de losthy.com.ar. 00:25:35
Como os he dicho, lo que vamos a hacer es repasar mientras estamos haciendo este ejercicio. 00:25:35
Y ya que estamos, pues estamos razonando sobre ello. 00:25:40
¿Vale? 00:25:44
Este main es extra, lo he puesto yo, para ver qué se puede hacer hasta ahora con estas tres cosas. 00:25:45
Tenemos figura geométrica y tenemos triángulo. 00:25:53
Pues, ¿qué se puede hacer con ello? 00:25:56
¿Vale? 00:25:58
Vale. 00:26:01
Siguiendo con el ejercicio. 00:26:01
Nueva clase, ¿vale? 00:26:06
La clase cuadrado. 00:26:07
Que hereda de la clase de figura geométrica, ¿vale? 00:26:08
Añade atributo lado y subconstructo. 00:26:13
Venga. 00:26:16
Vamos a hacer cuadrado. 00:26:21
Derecho. 00:26:29
Nueva clase. 00:26:31
Cuadrado. 00:26:31
Extends. 00:26:35
La figura geométrica. 00:26:40
Y ponemos intelado. 00:26:46
Public cuadrado. 00:26:50
String nombre. 00:26:56
Intelado. 00:26:59
Super. 00:27:01
Super. 00:27:05
Nombre cuatro. 00:27:08
Dies punto lado. 00:27:12
Es igual a la. 00:27:15
Sí. 00:27:23
Sí. 00:27:28
Esta sería cuadrado 00:27:28
Lo que se puede hacer con triángulo 00:27:32
O sea, una cosa parecida a esta 00:27:35
Se podría hacer con cuadrado 00:27:36
Pero no lo voy a hacer por ahora 00:27:37
Porque ya hemos visto más o menos 00:27:39
Lo que se puede hacer 00:27:41
Vamos a ver 00:27:42
La clase círculo 00:27:49
Misma cosa, ¿vale? 00:27:50
Hereda de la clase figura geométrica 00:27:52
Y añade un atributo radio 00:27:54
Fizar constructores 00:27:55
¿Vale? Muy parecida 00:27:57
Vamos a hacer esta también 00:27:58
Y yo cuadrado 00:28:00
Control C, Control V 00:28:06
Lo llamo círculo 00:28:08
Y ahora tengo círculo 00:28:09
Donde en vez que lado se llama radio 00:28:14
En vez que lado se llama radio 00:28:17
En vez que lado se llama radio 00:28:19
Pregunta 00:28:22
¿Cuánto? 00:28:27
¿Cuántos lados le damos al círculo? 00:28:27
No sé 00:28:38
Únicamente creo que serían infinitos 00:28:39
Pero como infinitos no lo podemos poner 00:28:41
Ponemos un número 00:28:43
Que no es válido 00:28:45
Que se yo 00:28:48
¿Vale? 00:28:49
Número negativo 00:28:51
Asumimos que un número negativo 00:28:52
Quiere decir infinito 00:28:54
Podemos poner cero 00:28:55
¿Vale? 00:28:57
Pero un punto técnicamente 00:28:57
Quiere decir cero lados 00:28:59
Entonces 00:29:00
No sé si queremos utilizar puntos 00:29:03
Como figuras geométricas 00:29:07
Aquí 00:29:09
Complejo 00:29:10
¿Vale? 00:29:12
Entonces 00:29:14
Ahora vamos a hacer manejador figuras 00:29:15
¿Vale? 00:29:17
Que contiene un objeto de figura 00:29:17
O una red de objetos 00:29:18
Figuras geométricas 00:29:20
Y tengo un modo para calcular 00:29:21
El perímetro total 00:29:22
De todas las figuras 00:29:23
De la red 00:29:24
Vale 00:29:27
Vamos a figuras geométricas 00:29:29
O sea 00:29:31
Manejador figuras 00:29:32
Manejador figuras 00:29:33
Manejador figuras 00:29:42
Tiene un array de figuras geométricas 00:29:49
Figuras 00:29:51
Figuras geométricas 00:29:53
Intentaré 00:29:57
Array 00:30:01
Figuras 00:30:02
Cuando creo un 00:30:04
Manejador 00:30:11
Public 00:30:15
Manejador figuras 00:30:16
Le pasaré un 00:30:19
Figura geométrica 00:30:22
Array 00:30:26
Figuras 00:30:27
Figuras 00:30:29
Y diré que 00:30:29
Dis.figuras 00:30:34
Es igual a figuras 00:30:36
Vale 00:30:41
Entonces de alguna forma 00:30:47
Me han dado todas las figuras 00:30:49
¿Vale? 00:30:50
A lo mejor luego haremos 00:30:51
Otro constructor 00:30:52
Que no me da nada 00:30:54
Y que en automático 00:30:56
Me crea unas cuantas figuras 00:30:56
Allí dentro 00:30:58
¿Vale? 00:30:59
Y ahora 00:31:00
Lo que tengo que hacer 00:31:01
Es calcularme 00:31:03
El perímetro de todas las figuras geométricas 00:31:05
¿Vale? 00:31:07
Lo que va a ser complejo 00:31:09
¿Cómo lo hago? 00:31:13
¿Cómo lo hago? 00:31:15
¿Cómo lo hago? 00:31:17
¿Cómo lo hago? 00:31:19
¿Cómo lo hago? 00:31:21
¿Cómo lo hago? 00:31:23
¿Cómo lo hago? 00:31:25
¿Cómo? 00:31:26
¿Cómo? 00:31:28
No lo sé 00:31:29
Decime vosotros 00:31:32
¿Cómo hago esto? 00:31:34
Tengo que calcular 00:31:37
El perímetro 00:31:39
Total de todas las figuras 00:31:41
Puedo hacerlo utilizando las figuras 00:31:43
Figuras geométricas 00:31:46
O sea, figuras geométricas 00:31:48
¿Tiene algo que me permitiría 00:31:50
Calcular su perímetro? 00:31:52
00:31:54
¿Cómo? 00:31:55
El número de lados 00:31:57
¿Eh? 00:31:58
El número de lados 00:31:59
Vale 00:32:00
Te digo que tiene cuatro lados 00:32:01
¿Cuál es su perímetro? 00:32:02
Por su lado 00:32:03
Por su lado cuatro 00:32:04
¿Dónde está el lado? 00:32:05
Pero no lo tienes ahí 00:32:06
El número de lados 00:32:07
Ah, vale 00:32:09
Vale, vale 00:32:10
Lo he entendido de otra forma 00:32:11
Vale 00:32:12
¿Sí? 00:32:13
Vale, vale 00:32:14
O sea, que aquí yo tengo cuántos lados tiene 00:32:15
Pero no tengo el valor de cada lado 00:32:16
Entonces difícilmente puedo calcular su perímetro 00:32:18
¿Sí? 00:32:21
Entonces tengo que 00:32:23
Buscar algo 00:32:25
¿Cómo lo hago? 00:32:27
Vamos a hacerlo de dos formas 00:32:34
¿Sí? 00:32:36
Forma C 00:32:38
public int 00:32:42
Asumamos que sean todos enteros, ¿eh? 00:32:45
Calcula perímetro 00:32:48
Int res es igual a cero 00:32:53
Return res 00:32:55
Vale 00:32:56
Ahora tengo que hacer por cada una de las figuras que está aquí 00:32:57
Calcularme 00:32:59
Su perímetro 00:33:01
¿Cómo lo hago? 00:33:02
Pues for 00:33:03
For 00:33:05
Ehm 00:33:06
Int 00:33:07
i es igual a cero 00:33:08
Menor que figuras punto lenguito 00:33:26
Menor que figuras punto lenguito 00:33:29
Menor que figuras punto leng completo 00:33:31
Y más más 00:33:32
Que hago 00:33:34
Ehm 00:33:35
Ehm 00:33:36
Ehm 00:33:37
Que hago 00:33:40
Figura geométrica X es igual a figuras de Y. 00:33:51
Pillo la primera figura. 00:34:03
Si X es la instancia de un triángulo, 00:34:04
si el primero, si esta figura que ha pillado es un triángulo, 00:34:26
entonces, res es igual, no, más igual, le sumo, 00:34:34
¿cómo hago a sumarle los tres lados? 00:34:43
¿Cómo hago a sumarle los tres lados? 00:34:45
Da un casting a triángulo de X punto lado 1. 00:34:52
Más, da un casting de triángulo, lado 2. 00:35:04
Más, da un casting de triángulo, lado 3. 00:35:14
Estoy preguntando, si esta de aquí es un triángulo, 00:35:20
pues entonces ningún problema, trátalo como un triángulo, 00:35:24
puedes ceder a sus lados y los vas sumando y te estás calculando el perímetro. 00:35:27
¿Sí? 00:35:33
Acción 2. 00:35:34
Si es un cuadrado, 00:35:40
pues entonces, 00:35:49
trátalo como un cuadrado, 00:35:51
saca el lado y multiplícalo por 4. 00:35:55
Es decir, que si X es una instancia de cuadrado, 00:36:04
pues entonces podrás tratarlo como un cuadrado 00:36:12
y hacer lado por 4, que los añades al resultado. 00:36:14
Es un cuadrado, me calculo el perímetro de un cuadrado. 00:36:20
¿Sí? 00:36:27
Si X es instancia de círculo, 00:36:27
supongo que el perímetro de un círculo sea su circunferencia. 00:36:34
La vez más igual círculo de X punto radio. 00:36:41
Circunferencia, ¿cómo se calcula circunferencia? 00:36:55
Circunferencia, ¿cómo se calcula circunferencia? 00:37:03
Circunferencia, ¿cómo se calcula circunferencia? 00:37:03
Circunferencia, ¿cómo se calcula circunferencia? 00:37:03
Dos piedras. 00:37:06
Por 2, por... 00:37:09
Efectivamente, más punto pi. 00:37:11
Ahora cuidado, nosotros hemos hecho que todo esto es un entero. 00:37:20
Esto no será un entero. 00:37:25
Entonces, a lo mejor toca... 00:37:27
Tengo que hacer así 00:37:33
Esto debería funcionar 00:37:45
Vale, entonces 00:37:49
Ahora con esto 00:37:52
En principio me debería calcular 00:37:54
El perímetro 00:37:56
Vamos a hacer una prueba 00:37:57
Public 00:38:00
Manejador 00:38:02
Figuras 00:38:03
De nada 00:38:05
Y me va a crear un array de 3 figuras 00:38:07
Por ejemplo 00:38:12
Figuras es igual 00:38:13
A new 00:38:16
Figura 00:38:17
Geométrica 00:38:21
De 3 00:38:24
Figuras 00:38:25
De u de 0 00:38:30
Es igual 00:38:32
A new 00:38:33
Triángulo 00:38:35
3,2 00:38:36
3,4,5 00:38:40
Figuras 00:38:43
De 1 00:38:48
Es igual a new 00:38:49
Cuadrado 00:38:51
Cuad 00:38:53
Coma 00:38:56
Y figuras 00:39:00
De 2 00:39:04
Es igual a new 00:39:05
Círculo 00:39:08
Cir 00:39:10
Coma 00:39:12
Nota 00:39:15
Perímetro total 00:39:19
Cuanto debería ser 00:39:22
23,14 00:39:30
Y otras cositas 00:39:41
Me espero que si funciona 00:39:49
Esto es lo que me debería dar 00:39:53
Justo 00:39:54
Vamos a probar 00:39:56
Vamos a probar 00:39:59
Vamos a probar 00:39:59
Vamos a probar 00:39:59
Vamos a probar 00:39:59
Vamos a probar 00:39:59
Vamos a probar 00:39:59
Vamos a probar 00:39:59
Vamos a probar 00:39:59
Vamos a probar 00:40:00
Vamos a probar 00:40:00
Vamos a probar 00:40:00
Vamos a probar 00:40:00
Entonces ahora me hago aquí 00:40:01
Un método 00:40:02
Un main 00:40:04
Para probar esto 00:40:04
Public 00:40:05
Static 00:40:07
Void 00:40:08
Main 00:40:09
Ring 00:40:09
Args 00:40:11
Donde digo 00:40:12
Ehm 00:40:18
Manejador 00:40:20
Figura 00:40:21
Es igual a 00:40:26
New 00:40:27
Manejador 00:40:27
Figura 00:40:29
Figuras 00:40:29
Sin darle nada 00:40:32
Esto me debería haber creado en figuras 00:40:34
Estas figuras de aquí 00:40:36
Y ahora pongo 00:40:38
Doble 00:40:40
Resultado 00:40:41
O perímetro 00:40:44
Perímetro total 00:40:45
Es igual a 00:40:48
Calcula perímetro 00:40:51
O sea, mf.calcula perímetro 00:40:54
Si, eso 00:41:00
Perímetro total 00:41:04
Dos puntos 00:41:08
He creado un objeto 00:41:17
Manejador figura 00:41:18
Con esto me he creado estas figuras de aquí 00:41:19
Luego 00:41:22
Llamo el método 00:41:23
Calcula perímetro 00:41:24
Sobre este manejador 00:41:26
Fuerza de figuras 00:41:27
Me debería hacer 00:41:28
Esta cosa de aquí 00:41:29
Si todo ha ido bien 00:41:30
Al final 00:41:31
Me debería dar 00:41:32
Este número más o menos 00:41:33
Espero 00:41:35
No lo sé 00:41:35
Lanzo 00:41:36
Veintiséis 00:41:39
Me he equivocado 00:41:41
Veintiséis 00:41:42
Nueve 00:41:45
Diez, once, doce 00:41:49
Dos por cuatro, ocho 00:41:50
Veintiséis 00:41:52
Veinte 00:41:53
Y esto debería ser tres coma catorce 00:41:53
Ah, no, porque 00:41:56
Perdón, perdón 00:41:59
Es el doble 00:42:01
Seis coma 00:42:01
Veintiocho 00:42:03
00:42:04
Y entonces sí 00:42:05
Bueno, le hacemos 00:42:07
Así 00:42:08
Ahora sí 00:42:10
Este es un entero 00:42:12
No lo puedo poner 00:42:14
Vale, bien 00:42:15
Entonces sí, veintiséis es correcto, ¿vale? 00:42:17
Me he equivocado yo 00:42:20
Veintiséis coma 00:42:21
Veintiocho 00:42:23
Eso sí 00:42:24
Y de hecho 00:42:26
Veintiséis coma veintiocho 00:42:28
¿Sí? 00:42:30
O sea que esto funciona 00:42:32
Bonito 00:42:33
Os gusta 00:42:35
Es elegante 00:42:37
¿Qué problema le veis? 00:42:38
O sí 00:42:44
¿Por qué? 00:42:45
El problema que tiene este señor 00:42:50
Es que no es nada 00:42:53
Flexible 00:42:54
En el sentido 00:42:56
Esto trabaja con 00:42:57
Triángulo, cuadrado y círculo 00:42:58
Si ahora he añadido 00:43:00
Otra cosa 00:43:01
Otro 00:43:03
Objeto 00:43:04
Que no herede de ninguno de estos 00:43:06
Triángulo, cuadrado y círculo 00:43:08
Porque si no a lo mejor me funcionaría 00:43:10
Si hago triángulo, isócele 00:43:11
Pues será siempre un triángulo 00:43:13
Y me valdrá 00:43:15
Pero 00:43:15
Entonces 00:43:17
Sería un problema 00:43:19
Si yo añado 00:43:20
Pentágono 00:43:21
¿Veis? 00:43:22
Aquí 00:43:23
O rectángulo 00:43:23
Pues debería volver a este método 00:43:24
Y añadir aquí 00:43:27
El rectángulo 00:43:28
Si ahora hago pentágono 00:43:29
Pues añado pentágono 00:43:30
Y esto no es elegante 00:43:32
De cara a que 00:43:34
Me limita 00:43:35
En las posibilidades 00:43:36
De rellenar las figuras geométricas 00:43:37
Si ahora de repente 00:43:40
He hecho hasta doce lados 00:43:41
Un dodecaedro 00:43:43
¿Cómo se llama? 00:43:44
No es un dodecaedro 00:43:46
Un dodecagono 00:43:47
Y de repente 00:43:48
Quiero hacer trece lados 00:43:49
Pues no lo puedo hacer 00:43:51
Porque en mi programa 00:43:52
Solo me calculo el perímetro 00:43:52
Hasta figuras de doce lados 00:43:54
Entonces 00:43:55
¿Cómo podría hacer 00:43:57
Para resolver este problema? 00:43:59
¿Arrey? 00:44:08
¿Oberrey? 00:44:10
Vale 00:44:10
Porque 00:44:11
Opción número uno 00:44:12
¿Vale? 00:44:15
Paso número uno 00:44:15
Yo digo 00:44:16
Vale 00:44:17
Cada triángulo 00:44:17
Cuadrado 00:44:18
Círculo 00:44:21
Lejano 00:44:21
Y aquí pongo un metodito 00:44:22
Para calcular su propio perímetro 00:44:24
¿Vale? 00:44:26
Entonces aquí pongo 00:44:27
Public 00:44:28
Calcula perímetro 00:44:29
Ah perdón 00:44:31
Double 00:44:32
Y lo que hago es 00:44:33
Return 00:44:34
Lado uno 00:44:35
Más 00:44:36
Lado dos 00:44:37
Más 00:44:38
Lado tres 00:44:39
¿Si? 00:44:40
¿Si? 00:44:41
¿Si? 00:44:42
¿Si? 00:44:43
¿Si? 00:44:44
¿Si? 00:44:45
¿Si? 00:44:46
¿Si? 00:44:47
¿Si? 00:44:48
¿Si? 00:44:49
¿Si? 00:44:50
¿Si? 00:44:51
En el cuadrado 00:44:52
Le pongo 00:44:55
Calcula perímetro 00:44:57
Que lo que hace es 00:44:59
Lado 00:45:01
Por cuatro 00:45:01
En círculo 00:45:03
Le pongo 00:45:07
Calcula perímetro 00:45:09
Que es 00:45:10
Radio 00:45:12
Por dos 00:45:12
Por 00:45:14
Más punto pi 00:45:16
Encanto 00:45:22
¿Si? 00:45:23
¿Si? 00:45:24
Entonces 00:45:25
Si hago sólo esto 00:45:27
Calcula perímetro 00:45:30
Se transformó un poquito 00:45:32
¿Vale? 00:45:36
Ahora ya no lo tengo 00:45:39
Que calcular aquí 00:45:41
¿Vale? 00:45:41
Sería una cosa 00:45:43
Como esta de aquí 00:45:44
Si es un triángulo 00:45:46
Lo voy a calcular 00:45:49
Y lo voy a calcular 00:45:50
¿Vale? 00:45:51
Y lo voy a calcular 00:45:51
Y lo voy a calcular 00:45:51
Bien 00:45:51
Muy bien 00:45:51
Añádele 00:45:52
Cálcula perímetro 00:45:55
Si es un cuadrado 00:45:56
Haz cálcula perímetro 00:46:00
Si es este otro 00:46:04
Cálcula perímetro 00:46:07
Esto es una pizca mejor 00:46:11
Con respecto al anterior 00:46:16
Porque aquí no es que tengo 00:46:17
Que cada vez que añado una 00:46:20
Una nueva figura 00:46:21
Irme a calcular como se hace 00:46:23
Pues la figura ya sabe calcularse 00:46:25
Lo que estoy haciendo es llamar cálcula perímetro 00:46:27
Sobre cada una de las figuras 00:46:30
Pero aún no me ha solucionado el problema de antes 00:46:32
¿Vale? 00:46:34
Tengo igualmente que cada figura 00:46:35
Saber si es un triángulo hace esto 00:46:37
Si es un cuadrado hace esto 00:46:39
Si es un círculo hace esto 00:46:40
¿Vale? 00:46:41
Y no lo quiero hacer 00:46:42
Entonces aquí 00:46:44
Utilizo lo que hemos visto como 00:46:45
Figura geométrica 00:46:51
¿Vale? 00:46:52
Perfecto 00:46:53
Entonces 00:46:54
Lo que voy a hacer es decir 00:46:54
Vale 00:46:56
Me creo el método cálcula perímetro 00:46:57
Aquí 00:47:00
Y la pregunta es 00:47:04
¿Qué devuelve? 00:47:09
Pasamos un momento esto 00:47:21
¿Vale? 00:47:23
Yo tengo figura geométrica 00:47:24
Que tiene su cálcula perímetro 00:47:26
Que devuelve cero 00:47:27
No se puede hacer 00:47:29
O menos uno 00:47:30
Para estar seguro 00:47:31
Que bueno, cero 00:47:32
Porque así no me molesta la suma 00:47:33
Asumamos que esto me guste 00:47:35
Que no me gusta 00:47:38
Pero asumamos que esto me guste 00:47:39
¿Vale? 00:47:41
¿Cómo se cambia este de aquí? 00:47:41
Es decir 00:47:43
¿Cómo sale 00:47:44
Cálcula perímetro 3? 00:47:45
¿Qué hago aquí? 00:47:51
3 más igual 00:48:04
Figura de ahí 00:48:06
Punto 00:48:08
Cálcula perímetro 00:48:09
¿Vale? 00:48:10
Mira que bonito 00:48:18
¿Vale? 00:48:20
Esto ya es más elegante 00:48:21
Que ahora yo lo llamo directamente 00:48:22
Sobre el figura geométrica 00:48:26
Y nosotros sabemos 00:48:29
Que él me usará 00:48:30
El método sobrescrito 00:48:33
Más concreto de la instancia que tengo 00:48:35
Entonces si este de aquí 00:48:38
En realidad es un triángulo 00:48:41
Me llamará cálcula perímetro del triángulo 00:48:42
Si esto aquí en realidad es cuadrado 00:48:44
Me llamará el de cuadrado 00:48:47
Si este de aquí en realidad es cuadrado 00:48:49
Es un círculo 00:48:51
Me llamará el de círculo 00:48:51
Y cada uno está especificado para su 00:48:52
Su propio 00:48:54
Perímetro 00:48:56
Entonces si yo ahora hago 00:48:57
Lo mismo que antes 00:49:00
O sea 00:49:04
Si hizo 00:49:05
Punto 00:49:12
Cálcula perímetro 3 00:49:13
El resultado 00:49:15
Es el mismo 00:49:18
Pero ahora 00:49:21
La cosa interesante 00:49:24
Que ya no dependo del tipo de 00:49:26
Instancias que tengo allí dentro 00:49:28
Ahora puedo crearme un 00:49:31
Pentágono 00:49:32
Que hereda desde 00:49:35
El figura geométrica 00:49:38
Y insertarlo en este array de aquí 00:49:39
Y no tengo problemas 00:49:41
¿Lo veis? 00:49:43
Es una cosa interesante 00:49:46
Es muy bonito esto 00:49:47
¿Si? 00:49:48
Puedo hacerme un array 00:49:51
De objetos 00:49:53
Muy abstractos 00:49:55
Y luego tratarlos 00:49:57
Como cada uno de ellos 00:49:59
Como tiene que ser tratado 00:50:01
Me queda 00:50:02
Esta cosa aquí 00:50:05
Este es feo 00:50:07
Este es feo porque no es verdad 00:50:09
Que una figura 00:50:14
Geométrica de cuatro lados 00:50:15
Tiene perímetro cero siempre 00:50:18
En vez de que 00:50:19
Eso es lo que me está diciendo 00:50:21
Y aquí 00:50:22
Una cosa que no hemos visto todavía 00:50:25
Pero veremos 00:50:27
Hoy o el viernes 00:50:28
Que es 00:50:30
En realidad 00:50:31
Figura geométrica 00:50:32
Es algo de verdad 00:50:33
Tiene sentido crear una figura geométrica 00:50:36
La figura geométrica es un concepto 00:50:39
Pero es muy abstracto 00:50:46
Es muy genérico 00:50:47
Es un concepto 00:50:49
Es un concepto 00:50:50
Es un concepto 00:50:50
De oye mira si 00:50:51
Tú eres una figura geométrica 00:50:52
Pero luego hasta que tú no me digas 00:50:54
Si eres un cuadrado, un rectángulo o un triángulo 00:50:56
Yo puedo hacer muy poco contigo 00:50:59
Sé que eres una figura geométrica 00:51:01
Sin duda 00:51:02
Pero no puedo hacer mucho contigo 00:51:02
¿Vale? 00:51:07
Entonces existe un concepto en Java 00:51:08
Que son las clases abstractas 00:51:10
Una clase abstracta es una clase 00:51:13
Que no está completamente 00:51:16
Definida 00:51:19
Que tiene algunas cosas definidas 00:51:20
Y algunas no 00:51:23
Algunas se quedan abstractas 00:51:24
Con esto yo estoy diciendo 00:51:27
Que esta clase no es una clase real 00:51:34
No se pueden crear 00:51:37
Instancias de figura geométrica 00:51:38
No puede hacer 00:51:41
Ni una figura geométrica 00:51:43
¿Si? 00:51:44
Esto se queda 00:51:49
A la hora de crear una figura geométrica 00:51:50
Lo que quiere decir que 00:51:50
Aquí casi todo está hecho 00:51:53
¿Vale? 00:51:55
Pero habrá algunos métodos 00:51:56
Algunas cosas aquí dentro 00:51:58
Que yo te digo que existen 00:52:00
Pero no te la implemento 00:52:03
En particular 00:52:07
Calcula perímetro 00:52:08
Esto me está diciendo 00:52:13
Calcula perímetro 00:52:19
Y aquí está el método de la clase geométrica 00:52:20
Es un método 00:52:20
Existe 00:52:22
Cualquier clase 00:52:23
Que herede de mí 00:52:27
Y no sea abstracta 00:52:29
Necesariamente 00:52:30
Tiene que implementar este método 00:52:32
Es como si estoy delegando 00:52:34
La implementación de este método 00:52:37
No a mí 00:52:38
Sino a una de mis subclases 00:52:39
Cuando tú haces una subclase concreta 00:52:41
Una subclase que no es abstracta 00:52:44
Pues esa subclase tendrá que implementar 00:52:46
Su calcula perímetro 00:52:48
Pero yo como yo 00:52:49
Pero yo como figura geométrica lo tengo. 00:52:50
Está aquí. 00:52:52
Entonces, lo que hemos visto del... 00:52:54
De esto, del... 00:52:56
Del overriding... 00:53:00
Me sigue funcionando. 00:53:02
¿Sí? 00:53:05
Sin embargo... 00:53:07
No me... 00:53:09
No me fuerza a mí a rellenar esto con datos que no son reales. 00:53:09
Porque aquí, ¿cómo calculo el pedimento de una figura que no sé qué figura es? 00:53:15
¿Me explico? 00:53:20
¿Entendéis dónde va... 00:53:22
Dónde van los tiros? 00:53:23
Vale. 00:53:26
Y entonces... 00:53:27
Ahora me sale un problema aquí. 00:53:29
¿Dónde me sale un problema? 00:53:31
¿Os acordáis que aquí yo creaba una figura geométrica como new figura geométrica? 00:53:32
Esto ya no lo puedo hacer. 00:53:38
Esto ya no es posible. 00:53:40
No se puede instanciar una clase abstracta. 00:53:41
El problema que sale aquí es... 00:53:46
Que no se instancie... 00:53:48
El tipo figura geométrica, que es un tipo abstracto, no se puede implementar. 00:53:50
Por lo tanto, esto no lo puedo hacer. 00:53:58
¿Y qué implica que esto no? 00:54:03
Esto no. 00:54:05
Y... 00:54:07
Esto. 00:54:08
¿Vale? 00:54:18
Pero ahora, manejador de figuras, lo lanzo y sigue funcionándome perfectamente. 00:54:20
¿Vale? 00:54:28
Esta es la solución más elegante a un problema como este de aquí. 00:54:29
¿Vale? 00:54:34
Fijaos que una clase abstracta junta dos cosas. 00:54:35
Junta... 00:54:42
Algunos métodos constructores y cosas por el estilo que son concretos. 00:54:42
Este método de aquí existe y está implementado. 00:54:47
Y no es... 00:54:49
Es abstracto. 00:54:50
Con otros métodos que te dicen existen, pero todavía no lo ha implementado. 00:54:52
Lo implementarán mis hijos, mis subclases, que no sean abstractas. 00:54:58
Cuidado, yo puedo tener una clase abstracta y una clase que herede de esa clase abstracta y sea abstracta también. 00:55:03
¿Sí? 00:55:12
Pero, en general, entonces, esta clase abstracta podría añadir nuevos métodos abstractos. 00:55:15
Y no implementar los métodos abstractos de mi superclase. 00:55:20
Pero en cuanto llegue a una clase que sea concreta, que no sea abstracta, 00:55:25
pues esta tendrá que implementar todos los métodos abstractos que lleva arrastrándose desde todas las clases abstractas en su jerarquía de herencia. 00:55:30
¿Se entiende? 00:55:40
¿Dudas? 00:55:42
Entonces... 00:55:45
Entonces... 00:55:46
Después... 00:55:47
Esta sería clase de manejador de cuadrados que tiene una forma para calcular el área total de todos los cuadrados. 00:55:50
¿Vale? 00:55:59
Y una clase de manejador de círculos que es el área total de todos los círculos. 00:56:00
¿Sí? 00:56:07
Fijaos que los triángulos no, porque los tengo base por altura. 00:56:08
No sé si con tres lados... 00:56:10
¿Con solo los tres lados puedo calcular la área de un triángulo? 00:56:13
No lo sé. 00:56:17
¿Hay una fórmula? 00:56:20
No lo sé. 00:56:22
¿Vale? 00:56:23
En vez de crear clases, pues a lo mejor lo podemos hacer dentro de manejador figuras. 00:56:24
¿Vale? 00:56:29
Entonces quiero un método que lo que me haga es calcularme el área total de los cuadrados. 00:56:30
¿Sí? 00:56:40
¿Cómo lo hago? 00:56:43
¿Cómo lo hago? 00:56:44
Public, doble, calcula, área, cuadrados. 00:56:50
¿Cómo lo hago? 00:57:02
¿Cómo? 00:57:10
¿Nueva clase? 00:57:10
Nueva clase, sí. 00:57:14
Pero he dicho, da igual, tanto es una nueva clase que tiene solo esto. 00:57:15
Porque si va a ser una nueva clase, va a ser una nueva clase. 00:57:19
Porque si hago una nueva clase, tengo que volver a rehacer esto. 00:57:20
Entonces, en paso. 00:57:23
Además, si hago una nueva clase solo para cuadrados, es más fácil, porque me hago una red de cuadrados. 00:57:29
Entonces, en vez de... 00:57:34
Yo quiero utilizar una red de figuras. 00:57:35
¿Cómo lo hago? 00:57:39
¿Cómo lo hago? 00:57:39
Por. 00:57:50
Figura geométrica X, dos puntos, figuras. 00:58:00
Sí. 00:58:10
X instanche of cuadrados. 00:58:13
Por. 00:58:17
Y yo quiero sumar solo los cuadrados. 00:58:17
Entonces, ahora sí que tengo que comprobar que sean cuadrados. 00:58:22
Entonces, rest es igual a X punto calcula área. 00:58:24
¿Qué es esto? 00:58:36
¿Qué es esto? 00:58:37
No. 00:58:41
Este de aquí devuelve lado por lado. 00:58:49
Fijaos. 00:58:58
Esto no me funciona, ¿por qué no funciona? 00:59:00
Falta el down casting. 00:59:05
Falta el down casting. 00:59:10
Vale. 00:59:12
Cuadrado. 00:59:12
Cuadrado. 00:59:15
Cuadrado. 00:59:16
Cuadrado. 00:59:16
Cuadrado. 00:59:16
Cuadrado. 00:59:16
Cuadrado. 00:59:16
Cuadrado. 00:59:17
Cuadrado. 00:59:17
Cuadrado. 00:59:17
Cuadrado. 00:59:17
Y esto ya me funciona 00:59:17
El del círculo sería exactamente igual 00:59:25
Solo que aquí pone círculo, aquí pone círculo 00:59:28
Pregunta, ¿puedo hacer lo mismo que he hecho aquí para calcular el área de todas las figuras? 00:59:32
En principio sí 00:59:41
El problema es que por como lo he planteado 00:59:45
Si pongo aquí otro abstracto que sea calcula área 00:59:48
Cuadrado me funciona 00:59:56
Círculo 01:00:04
Pincleto de cuadro 01:00:11
Más punto pi por radio 01:00:13
Por radio 01:00:20
Este es el área 01:00:21
No acuerdo nunca 01:00:24
Pero el problema es el triángulo 01:00:26
¿Cómo se calcula el área del triángulo dado sus lados? 01:00:32
Mira 01:00:41
Calcular área triángulo 01:00:42
¿Eh? 01:00:50
Pero no tengo ni la base ni la altura 01:00:55
Dados sus lados 01:00:58
¿Qué es? 01:01:04
Creo que necesito tener 01:01:08
Los ángulos 01:01:11
Si no tengo los ángulos 01:01:14
Mira a mí que hago poco o nada 01:01:20
Por favor estoy cuidando 01:01:42
Fórmula de Rohn 01:01:48
¿Es la fórmula de Rohn? 01:01:49
Creo 01:01:55
Fórmula 01:01:55
Formula de Rohn 01:01:59
¿avi? 01:02:02
Fórmula de Rohn 01:02:02
¿El ángel de la Galandría permite calcular el área desde un triángulo a partir de la longitud de un ángulo previsto para que se fin Gates? 01:02:05
¿Se puede calcular el ángulo? 01:02:09
De la longitud de los tres lados A, B y C. 01:02:10
Esta cosa de aquí. 01:02:25
Sin problemas. 01:02:29
Vale, la implementáis vosotros. 01:02:32
¿Sí? 01:02:35
Se puede, ¿vale? 01:02:40
Entonces lo hacéis vosotros. 01:02:47
Que la matemática sé que os gusta. 01:02:50
Uno. 01:02:53
¿Sí? 01:02:55
Si yo consigo implementar aquí la fórmula de Rohn, ¿vale? 01:02:55
Pues entonces ya este de aquí no necesita preguntarme si es un cuadrado o no. 01:03:03
Puedo calcular la radiación. 01:03:09
De todos. 01:03:10
Poniendo aquí esa. 01:03:11
Ahora, acordaos que el enunciado dice cálculame el área de todos los cuadrados. 01:03:12
Entonces esto sigo haciéndolo. 01:03:16
Lo que me soluciona es esto. 01:03:18
O sea, perdón. 01:03:22
Si es un cuadrado, hace X calcular. 01:03:25
Que en realidad lo está haciendo sobre figura geométrica. 01:03:28
Pero como es un cuadrado lo está utilizando el sobrescrito. 01:03:31
¿Sí? 01:03:36
No tengo que hacer downcasting explícito. 01:03:37
¿Dudas? 01:03:40
Y ya está. 01:03:44
Subido por:
Stefano C.
Licencia:
Reconocimiento - No comercial - Compartir igual
Visualizaciones:
11
Fecha:
7 de febrero de 2024 - 11:15
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
1h′ 03′ 50″
Relación de aspecto:
4:3 Hasta 2009 fue el estándar utilizado en la televisión PAL; muchas pantallas de ordenador y televisores usan este estándar, erróneamente llamado cuadrado, cuando en la realidad es rectangular o wide.
Resolución:
960x720 píxeles
Tamaño:
313.82 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid