Want to create interactive content? It’s easy in Genially!

Get started free

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:

Essential Learning Unit

Akihabara Learning Unit

Genial learning unit

History Learning Unit

Primary Unit Plan

Vibrant Learning Unit

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