Saltar navegación

Programación orientada a Objetos Java (Parte 2) - 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 10 de abril de 2026 por Gerardo R.

2 visualizaciones

Descargar la transcripción

En este segundo vídeo de programación orientada a objetos vamos a ver la parte de la implementación del ejemplo que habíamos estado viendo en el vídeo anterior. 00:00:06
Si recordáis lo que habíamos visto es que teníamos una clase figura de la cual van a extender o van a heredar las clases cubo, esfera y paralelepípedo y cada una de estas va a tener una implementación. 00:00:18
Para hacer este desarrollo en Java nosotros hemos planteado el desarrollo mediante cinco clases. 00:00:33
Una clase que va a ser la principal, después vamos a tener la clase figura que va a contener solamente la implementación de esta clase padre 00:00:41
y después las clases hija, cubo, esfera y parálide de epípedo que también va a tener una implementación cada una de ellas. 00:00:51
Empezamos con la clase figura y dentro de la clase figura, si os fijáis, tenemos el nombre y el color 00:00:59
que eran los atributos que va a compartir con el resto de las clases 00:01:15
y los métodos área y volumen que los tengo por aquí abajo 00:01:19
Cosas interesantes que tiene una clase, pues bueno, en primer lugar tiene un constructor 00:01:23
el constructor es digamos un elemento que tiene que tener el mismo nombre que la clase 00:01:29
veis que aquí se llama CLS figura y aquí aparece CLS figura 00:01:36
y tiene pues los datos de inicialización de esta clase 00:01:40
en este caso como la clase figura tiene un nombre y un color 00:01:46
pues como parámetros se le pasan ese nombre y ese color 00:01:51
para hacer referencia a los atributos de la clase se utiliza el operador dis 00:01:54
así que al hacer por ejemplo esta asignación dis.nombre 00:01:59
está haciendo referencia a este nombre de aquí 00:02:05
y este nombre de aquí está haciendo referencia al valor que le pasamos 00:02:07
lo mismo ocurre con dis.color 00:02:11
este dis.color hace referencia al atributo de la clase 00:02:14
y este color hace referencia al valor que le pase el usuario 00:02:17
que esté usando la aplicación a este valor de aquí, así que aquí lo que está haciendo este constructor 00:02:23
y lo que hacen en general todos los constructores es una inicialización de la clase que estamos instanciando 00:02:29
ese constructor es llamado desde el programa principal cuando se haga la operación new 00:02:37
que es para crear un nuevo objeto de una clase o una nueva instancia de una clase 00:02:44
adicionalmente tenemos estos dos tipos de métodos 00:02:49
esto es un método getter y esto es un método 00:02:53
bueno en este caso son los dos métodos getter 00:02:58
lo que hacen este es obtener el nombre y este obtener el color 00:03:02
cuando hacemos un método getter lo que estamos haciendo 00:03:06
es obtener el valor de alguno o de varios atributos de la clase 00:03:10
en este caso obtener nombre está haciendo un getter 00:03:16
de this.nombre, es decir, del valor que tenga nombre para ese objeto 00:03:18
y this.color para el valor que tenga el color para ese objeto 00:03:23
estos de aquí se llaman métodos getter porque lo que hacen es obtener el valor de una clase 00:03:28
si lo que hiciesen fuese establecer el valor de estos atributos 00:03:34
pues serían métodos setter 00:03:40
Bien, alguien se podrá preguntar para qué se utilizan métodos setter, si ya tenemos aquí un inicializador o un constructor. Pues bien, eso se hace porque el constructor permite inicializar los objetos en el momento de su creación, estos atributos en el momento en el que se crean. 00:03:44
Una vez que el objeto ya está creado, la única forma de poder modificar los valores de sus atributos es mediante métodos getter, ¿vale? 00:04:03
Lo veremos en los ejemplos que tenemos a continuación. 00:04:12
La segunda clase que vamos a implementar es la clase cubo. 00:04:16
Hay que tener en cuenta que en la clase anterior, si vamos a la clase anterior, la clase figura, fijaos que la sintaxis es public class CLS figura. 00:04:22
Sin embargo, en la clase cubo, la sintaxis es public class CLS cubo extend figura, que significa que hereda de la clase figura. 00:04:32
Al hacer esto en la sintaxis, automáticamente los métodos y los atributos de la clase padre son heredados. 00:04:44
De tal forma que si veis aquí ni siquiera se tienen que declarar ya el método nombre, las propiedades nombre y color 00:04:53
Porque ya al hacer el extend de figura se supone que están heredados 00:05:01
Y esto se demuestra en el siguiente constructor 00:05:08
Si veis el constructor de la clase cubo, lo que se le pasa es el lado, que es este de aquí, y el nombre y el color 00:05:10
Y alguien dirá, pero si el nombre y el color no lo tenemos aquí 00:05:18
efectivamente, pero como están heredados de la clase figura 00:05:21
nosotros se lo podemos pasar en la inicialización 00:05:25
para poder inicializar el nombre y el color de la clase de la que hereda 00:05:28
nosotros tenemos que hacer una llamada a super 00:05:33
con super lo que estamos haciendo es llamar al método constructor 00:05:36
de la clase padre, es decir, en esta instrucción de aquí 00:05:41
le pasamos a la clase figura el valor del nombre 00:05:45
y el valor de color que nos pase el usuario en la construcción del cubo, ¿vale? De modo que al hacer aquí este super nombre y color realmente estaremos ejecutando este constructor de la clase figura. 00:05:49
El lado pues funciona ya igual que en la clase figura, se hace dispuntolado, hace referencia a este atributo y lado al valor que proporciona aquí el usuario para la construcción del cubo. 00:06:04
a continuación aquí sí que tenemos métodos getter y setter 00:06:18
en este caso para la obtención o modificación del lado 00:06:22
en el caso de que hagamos un setter 00:06:26
lo que podemos hacer es cambiar el lado del cubo 00:06:28
porque si el lado del cubo cambia 00:06:31
puedo tener distintos parámetros a la hora del cálculo 00:06:33
así de esta forma al hacer el set lado 00:06:39
le paso el lado y modifico 00:06:43
igual que hace el constructor 00:06:45
modifico el valor del lado como atributo de la clase y en getLado veis que no se le pasan parámetros 00:06:47
porque lo que hace es obtener, es decir envía a la persona que se lo diga o al programa que se lo diga el valor de ese lado 00:06:56
y otras cosas muy importantes son la sobrescritura de los dos métodos área y volumen 00:07:04
Si recordáis, vamos a ir otra vez a la clase figura, estos dos métodos, el área y el volumen, pertenecen a la clase figura, pero como el cubo extiende de esta clase, pues estos métodos son heredados. 00:07:13
¿Qué pasa? Que estos métodos en sí mismos devolverían un valor cero, pero como aquí están sobrescritos, cuando nosotros hagamos referencia al área de la clase cubo, el método que se ejecutará es el cálculo del área del cubo y lo mismo ocurrirá con el cálculo del volumen. 00:07:29
Se ejecutará este método de aquí. La cláusula arroba overwrite es necesaria porque si no, este método no podría ser sobrescrito cuando son invocados desde la clase cubo. 00:07:49
La siguiente clase que vamos a ver es la clase esfera que ya sabiendo un poco la mecánica de la clase cubo pues es muy parecida o similar. En este caso la clase esfera extiende o hereda de la clase figura. 00:08:04
como atributo adicional se le pone el radio 00:08:20
aquí en el constructor de la clase esfera 00:08:25
pues se invoca al super 00:08:29
al padre para pasarle el nombre de la esfera 00:08:33
y el color de la esfera 00:08:38
y el radio que es propio de esta clase 00:08:39
aquí también tendremos métodos setter y getter 00:08:42
para poder establecer un nuevo valor de radio 00:08:45
para obtener el valor de radio que tenga actualmente 00:08:50
y la sobrescritura de los métodos del área y del volumen 00:08:52
para poder realizar esos cálculos 00:08:56
como veis también tienen que estar sobrescritos 00:09:00
para que cuando nosotros hagamos referencia a este método 00:09:03
al método área sea distinto 00:09:07
en el caso de que sea llamado desde un cubo 00:09:10
o desde una esfera 00:09:13
y bueno visto ya la clase esfera pues la clase paralel epípedo es exactamente igual 00:09:18
lo único es que tiene más atributos este también extiende de la clase figura 00:09:25
tiene sus atributos el constructor también llama super con el nombre y el color 00:09:29
y tiene sus métodos setter y getter para la obtención o establecimiento de los atributos o de sus valores 00:09:33
El cálculo del área y el cálculo del volumen es igual, pero estableciendo los parámetros necesarios para la sobrescritura de este método. 00:09:42
Si vamos al código en NetBeans, vamos a ver cómo está realizada esta implementación. 00:09:56
dentro de NetBeans si nos fijamos en las pestañas que tenemos aquí creadas o aquí en la parte izquierda 00:10:05
vemos que tenemos un programa principal, la clase figura, la clase cubo, esfera y para el epípedo 00:10:12
y básicamente están creadas tal y como las hemos explicado en el ejemplo 00:10:19
el programa principal lo vamos a dejar para el final y estas cuatro clases están implementadas tal cual 00:10:23
están en el ejemplo que hemos visto en las diapositivas 00:10:30
si os fijáis, la creación de la clase empieza aquí, public class figura hasta la clase padre con sus atributos 00:10:35
aquí ya tienen tipeados los valores de los atributos de tipo string 00:10:43
aquí tenemos el constructor que veis que se hace exactamente igual a como lo hemos visto en el ejemplo 00:10:49
y los métodos getter para el nombre y el color de la figura geométrica que estemos utilizando 00:10:55
El cálculo del área y del volumen estarán establecidos a cero porque desde aquí nunca van a ser llamados ya que solamente los necesitamos para que las clases hijas los hereden. 00:11:03
La clase cubo, por su parte, lo que hace es extender de la clase figura, declarando el lado y en el constructor vemos aquí la llamada super, que es importante para que el nombre y el color de la figura pasen a la clase padre. 00:11:15
Aquí se inicializa el lado y los métodos setter y getter para obtener o establecer el lado 00:11:36
Por su parte también tenemos la sobrescritura de los métodos área y volumen para poder hacer el cálculo del cubo 00:11:44
Tenemos otro fichero java, como veis cada clase la hemos implementado en un fichero con extensión java 00:11:52
también extiende la clase figura 00:12:01
y es un poco la misma implementación 00:12:05
que se ha hecho con la clase cubo 00:12:09
a excepción de que aquí tenemos el atributo radio 00:12:11
y los cálculos del área y del volumen 00:12:14
son propios de la esfera en lugar del cubo 00:12:17
para la clase paralel epípedo 00:12:21
es exactamente igual 00:12:23
lo único es que tenemos los tres lados necesarios 00:12:25
alto, ancho y largo 00:12:28
y con esos tres lados 00:12:31
y sus métodos getter y setter 00:12:35
que podemos en cualquier momento 00:12:37
con el método setter 00:12:38
veis que se puede cambiar el lado 00:12:41
y poner el que queramos 00:12:42
o con el método getter 00:12:44
para obtener esos datos 00:12:47
en modo de cadena 00:12:48
y también están sobre escritos 00:12:49
sus métodos área y volumen 00:12:53
si vemos ahora el programa principal 00:12:55
para que veáis cómo está construido, pues tiene una clase principal donde tenemos el método main 00:12:59
y este método main, fijaos cómo están construidas las tres primeras líneas, son importantes 00:13:05
porque es donde se ve cómo están creados los objetos. 00:13:11
Si os fijáis aquí hay una clase cubo, que es esta de aquí, que este es el objeto, ¿vale? 00:13:19
Este es el objeto, clase cubo, esta es la clase, este es el objeto, y hacemos un new de esta clase, de modo que al instanciar esta clase con el new estamos llamando al constructor. 00:13:26
¿Qué se le está pasando al constructor? Pues le estamos pasando un 5, un nombre y un color, ¿vale? 00:13:39
Si veis esta llamada en el cubo sería esta de aquí, ¿vale? 00:13:45
Veis que se le pasa el 5 estaría aquí, aquí el nombre del cubo y aquí el color del cubo que creo que hemos puesto color rojo, ¿vale? 00:13:53
Cuando se hace esta llamada a la clase padre se le pasa el color y el nombre y a la clase cubo se le pasa el valor del lado, ¿vale? 00:14:01
De modo que una vez que tengamos esta llamada hecha, ya tenemos construido nuestro primer objeto, que se llama cubo1, con estas características. 00:14:14
Lo mismo ocurre con esfera1. Fijaos que en esfera1 se hace una llamada, a ver si encuentro la clase, aquí al constructor, que es este de aquí, y se le pasa el radio, el nombre y el color. 00:14:23
Funciona exactamente igual que en la clase cubo 00:14:39
Y en la clase paralel epípedo 00:14:42
Como tenemos un constructor con más argumentos 00:14:45
Aquí tenemos el constructor que tiene 00:14:48
Uno, dos, tres, cuatro y cinco argumentos 00:14:51
El lado A, el B, el C, el nombre y el color 00:14:55
Pues obviamente aquí hay que pasarle esos cinco argumentos 00:14:58
Este sería el lado A, lado B, lado C, nombre y color 00:15:00
Y una vez que tenemos los objetos creados con el new 00:15:04
pues ya lo podemos utilizar, ¿vale? Aquí tenemos un ejemplo de, pues aquí nos va a mostrar los datos del cubo 1, ¿vale? Se va a mostrar su nombre, su color, fijaos que aquí en cubo 1, otra cosa curiosa, se está haciendo una llamada a un método que no está en cubo 1, ¿vale? 00:15:09
Fijaos que cubo1 hace una llamada a obtener nombre, si nos vamos a cubo1, aquí no está el método obtener nombre, pero sí que estará en la clase figura, obtener nombre, eso significa que realmente desde la clase hija puede hacer llamadas a métodos públicos de la clase padre. 00:15:31
¿Y qué va a obtener con este, qué va a hacer este método getter? Pues va a obtener el nombre del cubo que nosotros le hemos puesto en la creación del cubo, ¿vale? Entonces, fijaos, el objeto hijo llama a un método del objeto de la clase padre. 00:15:54
Lo mismo ocurre con color y estos ya son métodos de la clase hija, ¿vale? 00:16:10
Lo mismo ocurre con la esfera, ¿vale? 00:16:19
Con distintos métodos, obviamente, excepto el nombre y el color 00:16:22
Y lo mismo ocurre con el paralelepípedo, ¿vale? 00:16:25
Vamos a hacer una ejecución de la aplicación 00:16:29
Y aquí abajo, no sé si lo llegáis a ver bien, pues está esta ejecución 00:16:32
Aquí están los datos del cubo, ¿vale? Cubo 1 de color rojo con el lado 5, ¿vale? Que habíamos puesto y aquí están los cálculos, pues el área y el volumen. Aquí estaría también lo de la esfera, perdón, los datos de la esfera que están por aquí, ¿vale? 00:16:39
a la esfera la habíamos puesto 00:17:00
que se iba a llamar esfera 1 00:17:02
iba a ser de color azul 00:17:04
bueno aquí el azul lo representamos no con un color 00:17:05
sino con un nombre 00:17:08
y el parámetro que le hemos pasado también es un 5 00:17:09
y los cálculos del área y el volumen con esos datos 00:17:12
y del paralel epípedo 00:17:15
que lo tenemos por aquí 00:17:17
pues le hemos pasado 00:17:18
los parámetros que eran 00:17:19
5, 5, 10 00:17:22
para el epípedo 1 00:17:23
bueno aquí le hemos puesto incluso una doble o al 1 00:17:25
y de color verde 00:17:27
Y es lo que aparece aquí. También si os fijáis aparece el área y el volumen y como veis el área y el volumen es distinta en cada una de las figuras geométricas porque realmente si recordáis lo que hacíamos aquí era que esos métodos se van sobre escribiendo con el override en función de que sea una esfera, de que sea un paralelepípedo o en el caso de que sea un cubo. 00:17:29
Bueno, y esto es todo por aquí de la programación orientada a objetos. 00:17:57
Idioma/s:
es
Materias:
Sistemas Microinformáticos y Redes
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado básico
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado medio
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado superior
      • Primer Curso
      • Segundo Curso
Autor/es:
Gerardo Ruiz Criado
Subido por:
Gerardo R.
Licencia:
Reconocimiento - No comercial
Visualizaciones:
2
Fecha:
10 de abril de 2026 - 13:07
Visibilidad:
Clave
Centro:
IES LA ARBOLEDA
Duración:
18′ 09″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
364.92 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid