Está en la página 1de 21

FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

TALLER DE PROGRAMACIÓN ORIENTADA A OBJETOS


(CLASES ABSTRACTAS E INTERFACES).

Nos han solicitado la elaboración de un programa informático para la gestión de


sus talleres. En estos talleres se arreglan vehículos. Estos vehículos pueden ser
coches o motos.

• De cada taller se quiere almacenar su nombre, dirección, propietario y un


listado de clientes.
• De los propietarios queremos almacenar su cédula, nombre, primer apellido y
dirección.
• De cada cliente queremos almacenar su cédula, nombre, primer apellido,
teléfono y un listado de sus vehículos.
• De los vehículos queremos almacenar su placa, marca y modelo. De los coches
queremos almacenar su anchura y altura (en centímetros) y de las motos si
lleva limitador de velocidad o no.
• Los propietarios, clientes y vehículos deberán implementar una funcionalidad
que los haga identificarse.

• Identificación de las clases.

Para los primeros programas en los que se vaya a trabajar con programación
orientada a objetos es que revisar el enunciado del problema y resaltar con un
color diferente los elementos que se definen como un objeto y subrayar aquellos
elementos que pueden ser atributos del mismo.

Nos han solicitado la elaboración de un programa informático para la gestión de


sus talleres. En estos talleres se arreglan vehículos. Estos vehículos pueden ser
coches o motos.

• De cada taller se quiere almacenar su nombre, dirección, propietario y un


listado de clientes.
• De los propietarios queremos almacenar su cédula, nombre, primer apellido y
dirección.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• De cada cliente queremos almacenar su cédula, nombre, primer apellido,


teléfono y un listado de sus vehículos.
• De los vehículos queremos almacenar su placa, marca y modelo. De los coches
queremos almacenar su anchura y altura (en centímetros) y de las motos si
lleva limitador de velocidad o no.
• Los propietarios, clientes y vehículos deberán implementar una funcionalidad
que los haga identificarse.

Se identificaron las clases Taller, Vehículo, Coche, Moto, Propietario y Cliente y


una serie de atributos para clase. He subrayado del mismo color los atributos que
corresponden a cada clase, la cual he resaltado en ese mismo color.

Pendiente Diagrama de Clases.

• Jerarquía de clases

Si analizamos el diagrama de clases que hemos realizado en el apartado anterior


observamos que los clientes y los propietarios comparten parte de sus atributos
por lo que podríamos crear una abstracción que llamásemos Persona que tuviese
estos campos y que posteriormente Propietario y Cliente heredasen de ella.

• Clases Abstractas.

En ocasiones definimos clases de las que no pretendemos crear objetos

• Su objetivo es que sirvan de superclases a las clases “reales”

Ejemplos:

o Nunca crearemos objetos de la clase Persona


▪ Lo haremos de sus subclases Propietario, Cliente, etc.
o Nunca crearemos un Vehículo
▪ Crearemos un Coche, un Barco, una Moto, ...
o La razón es que no existen “personas” o “vehículos” genéricos

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

o Ambos conceptos son abstracciones de los objetos reales, tales como


Propietario, Cliente, Coches o Motos.
A ese tipo de clases las denominaremos clases abstractas.
Las clases abstractas en Java se identifican mediante la palabra reservada
abstract.

La compatibilidad de tipos que proporciona la herencia resulta útil: código


reutilizable, variables y estructuras polimórficas, etc.
• Los tipos que representa una clase son:
• El tipo que define la clase.
• El tipo de cada uno de sus ascendientes.
• La herencia simple limita el número de tipos que pueden representar los
objetos de una clase.

Solución: interfaces

• Interfaces

• Construcción proporcionada por Java para la definición de tipos (sin


implementación).
• Se dice que una clase implementa una interfaz.
• El número de interfaces que puede implementar una clase no está limitado
(implementación múltiple de interfaces).
• Los tipos que representan los objetos de una clase pueden ser ampliados con
la implementación de interfaces.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• Creación de Interfaces

• Creación de Clase Validación.

Creamos una clase que nos permita validar los tamaños de la cédula y de la
placa, creamos un package llamado uts.edu.fpoo.util, la clase la llamamos
Validacion.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• Clase Abstracta Persona.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• Clase Propietario.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• Clase Cliente.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• Clase Vehiculo.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• Clase Moto.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• Clase Coche.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• Clase Taller.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• Clase Main AppTaller.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• Método escribeMenu.

• La psvm de AppTaller.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• El Método crearTaller.

• El Método listarTalleres.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• El Método bucarYSeleccionarTaller.

• El Método crearCliente.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• El Método listarClientes.

• El Método crearCoche.

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

Profesor: Carlos Adolfo Beltrán Castro


FUNDAMENTOS DE PROGRAMACION

CICLO II – Clases Abstractas e Interfaces

• El Método listarVehiculos.

Profesor: Carlos Adolfo Beltrán Castro

También podría gustarte