Want to create interactive content? It’s easy in Genially!
Unidad didáctica: POO - Clases (Programación en TSDAM y TSDAW)
Clara Peñalva
Created on November 28, 2022
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Essential Learning Unit
View
Akihabara Learning Unit
View
Genial learning unit
View
History Learning Unit
View
Primary Unit Plan
View
Vibrant Learning Unit
View
Art learning unit
Transcript
Programación Orientada a Objetos - Clases
Utilización avanzada de clases
Programación Y Bases De Datos - Actividad 1 Bloque temático 1: Programación Estructurada y Programación Orientada a Objetos Materia de FP: Programación (Código: 0485) Titulación de FP: Técnico Superior en Desarrollo de Aplicaciones Multiplataforma y Técnico Superior en Desarrollo de Aplicaciones Web Realizado por: Clara Peñalva Carbonell (cpenalva12@alumno.uned.es)
Empezar >
Índice de contenidos
Polimorfismo
Programación orientada a objetos
Clases y objetos
Clases abstractas
Interfaces
Herencia
Juego 2
Juego 1
1. Programación Orientada a Objetos (POO)
La POO es un paradigma o metodología de programación en la que se pone énfasis en: - La estructura de datos. - Las relaciones entre sus elementos y el acceso a través de éstos a las estructuras procedimentales.
1. Programación Orientada a Objetos (POO)
Programación Procedural
Programación Orientada a Objetos
Interés en la organización basada en los datos.
Interés en la descomposición del problema en funciones.
Más inestable en problemas complejos: depende de los cambios en los requisitos funcionales.
Más estable y robusta frente a cambios en los requisitos funcionales.
Quien programa, se ocupa de organizar el acceso a los datos desde los diferentes procedimientos.
Introduce el concepto de clase para gestionar los datos y su funcionamiento.
2. Clases y Objetos
Una clase o tipo abstracto de datos es una categoría de objetos con características comunes.
Un objeto es una instancia de un clase.
Para utilizar un objeto se define la clase a la que pertenece con: - Atributos: son los datos o variables de la clase. También se definen las condiciones en que se puede acceder a ellos. - Constructores: método especial que define la inicialización de la instancia de la clase. - Métodos: funciones o procedimientos que efectúan operaciones sobre la clase.
2. Clases y Objetos
Un ejemplo sencillo para diferenciar una clase de un objeto:
Clase Vehículo: concepto abstracto - Atributos:> Marca> Capacidad> Velocidad> ...- Métodos:> Arrancar> Frenar> Acelerar> ...
Objetos de la clase Vehículo:
En java
En java
2.1. Atributos de Clases
Vehículo:- marca- capacidad- velocidad
Coche 1:- marca: Audi- capacidad: 4- velocidad: 70
Cada clase encapsula datos que serán de utilidad para realizar procedimientos. Estos datos son los atributos.
Coche 2:- marca: Seat- capacidad: 5- velocidad: 80
Cada instancia de una clase, es decir, un objeto, tendrá sus propios atributos únicos e independientes.
En java
2.2. Constructor, un método especial
Además...- Puede tener argumentos.- Los distintos constructores de la clase se deben diferenciar en el número de argumentos.
¿Cómo establecer el estado inicial de los objetos de una clase? El constructor sirve para establecer el estado inicial los objetos.
Se considera especial porque:- Debe tener el mismo nombre que la clase.- No tiene tipo de retorno. Devuelve una referencia del objeto.- Se invoca automáticamente después de la reserva de memoria para almacenar el objeto
En java
2.3. Métodos
Existen unos métodos especiales, además del constructor que ya hemos estudiado, llamados setters y getters. Se definen para acceder y modificar los valores de los atributos de la clase.
Los métodos proporcionan funcionalidad a las clases. En ellos se definen los procedimientos que serán de utilidad para manejar un objeto de la clase.
En java
3. Herencia
Clase base
Clase derivada
Podemos crear clases a partir de otras que ya hemos definido y añadir particulariadades.Esta idea se materializa en la herencia de clases
La clase derivada puede:- Redefinir comportamientos de la clase base. - Añadir nuevos métodos y atributos.
El conocimiento sobre una clase general (clase base) es aplicable (se hereda) a una clase particular (clase derivada).
3. Herencia - ejemplo
Volvamos al ejemplo anterior donde teníamos una clase Vehículo y instanciábamos distintos objetos: coche, bicicleta... Si quisieramos añadir atributos o funciones específicas para cada tipo de vehículo o incluso clasificarlos según si tienen motor, podríamos considerar que necesitamos nuevas clases dentro de la jerarquía donde la base es el Vehículo.
Vehiculo
VehiculoConMotor
VehiculoSinMotor
Coche
Moto
Bicicleta
Skate
En java
3. Herencia - visibilidad
Los elementos (atributos o métodos) privados de una clase sólo son accesibles para los métodos de esa clase.
Para que la clase derivada pueda acceder e utilizar como propios ,se deben definir como: protected
4. Polimorfismo
Es la capacidad que tiene una jerarquía de clases, relacionadas por la herencia, para responder ante un mismo mensaje de forma diferente
coche.acelerar()
moto.acelerar()
Estos dos objetos son instancias de la clase Coche y Moto. Estas heredan de Vehiculo y Vehiculo contiene el método acelerar(). Por lo que un único método puede tener distintas implementaciones.
5. Clases abstractas
Se puede indicar explícitamente que una clase es abstracta y no se pueden crear objetos de ella
Son clases de las que no tiene sentido crear Objetos, pero que agrupan características de clases que derivan de ellas. Por ejemplo: Vehiculo. Ya que instanciaremos objetos de: Coche, Moto, Bici...
En java
No se pueden crear objetos de una clase abstracta
5. Clases abstractas: métodos abstractos
Las clases abstractas pueden (y suelen) incluir métodos sin implementación, son los llamados métodos abstractos.
No tienen implementación y obligan a ser implementados en las clases derivadas.
Si la clase derivada no implementa los métodos abstracto: se convierte en clase abstracta
6. Interfaces
- Define los requisitos mínimos que debe cumplir un objeto de la clase que la implemente. - Asegura que un objeto tiene como mínimo el conjunto de métodos que declara la interfaz. - Cuando una clase implementa una interfaz se compromete a definir todos los métodos impuestos por la interfaz. - No se pueden definir objetos de la interfaz.
Las Interfaces contienen métodos que son todos abstractos. Otras clases que implementan estos interfaces.
6. Interfaces
¿Y si ahora vemos el ejemplo de los vehículos desde la perspectiva de la interfaz? Por simplificar vamos a dejarlo solo en un nivel (Sin VehiculoConMotor y VehiculoSinMotor).
Vehiculo
acelerar()pitar()
Coche
Bici
acelerar()pitar()
acelerar()pitar()
cambiarCesta()
calcularEmisiones()
En java
7. Juego 1: responde las preguntas
8. Juego 2: relaciona conceptos con el código
9. Referencias
Deitel, P. y Deitel H. (2017) Java. How to Program, Early Objects. Pearson Education, Inc. https://learning.oreilly.com/library/view/java-how-to/9780134751962/ Genially (2023) Plantilla: Secuencia Didáctica Secundaria. https://genial.ly/es/plantilla/secuencia-didactica-secundaria/ Lee, G. (2019) Modern Programming: Object Oriented Programming and Best Practices. Packt Publishing. https://learning.oreilly.com/library/view/modern-programming-object/9781838986186/ Oracle (s.f.) The Java™ Tutorials. Trail: Learning the Java Language. Object-Oriented Programming Concepts. https://docs.oracle.com/javase/tutorial/java/concepts/index.html