1 Programación Orientada a Objetos
Introducción
Los problemas suelen tener varias soluciones posibles.
En programación existen diversas metodologías que nos
ayudan a enfrentar un problema.
Cada metodología tiene diversos lenguajes que las
soportan.
–
Algunos lenguajes soportan varias metodologías.
Metodología
Estructurada
Lenguaje
Fortran, C, Pascal, Basic
Orientada a objetos
(OOP)C++, Java, Smalltalk
Orientada a eventos
VisualBasic
Programación Orientada a Objetos
Definición:
La Programación Orientada a Objetos (OOP) es un
método de programación en el cual los programas se
organizan en colecciones cooperativas de objetos,
cada uno de los cuales representa una instancia de
alguna clase, y cuyas clases son, todas ellas,
miembros de una jerarquía de clases unidas medianterelaciones de herencia.
Comentarios:
Usamos objetos en lugar de algoritmos como bloque fundamental
Cada objeto es una instancia de una clase
Las clases están relacionadas entre sí por relaciones tan
complejas como la herencia
Ventajas de la POO
Proximidad
de los conceptos modelados
respecto a objetos del mundo real
Facilita la reutilización de código
–
Y por tanto el mantenimientodel mismo
Se
pueden usar conceptos comunes durante
las fases de análisis, diseño e implementación
Disipa las barreras entre el qué y el cómo
Desventajas de la POO
Mayor
complejidad a la hora de entender el
flujo de datos
–
Pérdida de linealidad
Requiere
de un lenguaje de modelización de
problemas más elaborado:
–
–
Unified Modelling Language (UML)
Representaciones gráficas máscomplicadas
Conceptos de la OOP
Conceptos básicos
Objeto
Clase
Características de la OOP
Abstracción:
Encapsulamiento:
Modularidad:
Jerarquía
Otros conceptos OOP
Tipos
Persistencia
Tipos de relaciones
Asociación
Herencia
Agregación
Instanciación
Representaciones gráficas
Diagramas estáticos (de
clases, de objetos...)
Diagramas dinámicos (de
interacción...)
Objeto yClase
Un objeto es algo de lo
que hablamos y que
podemos manipular
Existen en el mundo real (o
en nuestro entendimiento del
mismo)
Una clase describe los
objetos del mismo tipo
Todos los objetos son
instancias de una clase
Describe las propiedades y el
comportamiento de un tipo de
objetos
Objeto:Clase
Clase
Atributo1=valor
Atributo2=valor
...
Atributos
Operaciones
Conceptos OOP:Abstracción
Nos permite trabajar con la complejidad del mundo real
–
–
Resaltando los aspectos relevantes de los objetos de una clase
Ocultando los detalles particulares de cada objeto
Separaremos el comportamiento de la implementación
Es más importante saber qué se hace en lugar de cómo se
hace:
Un sensor de temperatura
– Se define porque...
mide la temperatura
nos muestra su valor
sepuede calibrar...
–
No sabemos... (no nos importa)
cómo mide la temperatura
de qué está hecho
cómo se calibra
Conceptos OOP: Abstracción
La
abstracción no es única:
Un coche puede ser...
– Una cosa con ruedas, motor, volante
y pedales (conductor)
– Algo capaz de transportar personas
(taxista)
– Una caja que se mueve (simulador
de tráfico)
– Conjunto de piezas (fabricante)
ConceptosOOP: Encapsulamiento
Ninguna
parte de un sistema complejo debe
depender de los detalles internos de otra.
Complementa a la abstracción
Se consigue:
–
–
–
–
Separando la interfaz de su implementación
Ocultando la información interna de un objeto
Escondiendo la estructura e implementación de los
métodos (algoritmos).
Exponiendo solo la forma de interactuar con el
objeto
Conceptos OOP:Encapsulamiento
Ejemplo: Un paralelogramo
Vemos que se puede...
Construir con:
– 4 puntos (y restricciones)
– 1 punto y 2 vectores
– 1 punto, 1 vector, 1 ángulo
y 1 lado
Transformaciones:
– Escalado
– Rotación
– Desplazamiento
Dibujar
No vemos...
Como está representado
internamente
– 4 puntos?
– 1 punto y 2 vectores?
– ...
Como se modifica su escala
– Guardando el factor?
– Escalando en...
Regístrate para leer el documento completo.