Beruflich Dokumente
Kultur Dokumente
Tema 7
Objetivos
Repaso 7.2
Contenido
Introduccin
Justificacin
Problemas
Polimorfismo
Persistencia
Objetos
Estado
Comportamiento
Identidad
Clases
Relaciones
Encapsulamiento
Asociaciones
Agregaciones
Generalizacin
Repaso 7.3
Bibliografa
Bsica
La correspondiente de las asignaturas donde se incluye la
programacin orientada a objetos.
Complementaria
Repaso 7.4
Introduccin
Evolucin de la OO
Origen: finales de los aos 60
Primeras investigaciones y prototipos no industriales
Repaso 7.5
Introduccin
reas de Aplicacin:
Lenguajes de programacin
Bases de datos
Reingeniera de procesos
CASE
Inteligencia artificial
Sistemas operativos
Interfaces de usuario
Beneficios Potenciales:
Repaso 7.6
Introduccin - Justificacin
Por qu la Orientacin a Objetos?
Proximidad de los conceptos de modelado respecto de
las entidades del mundo real
Mejora captura y validacin de requisitos
Acerca el espacio del problema y el espacio de la
solucin
Modelado integrado de propiedades estticas y
dinmicas del mbito del problema
Facilita construccin, mantenimiento y reutilizacin
Repaso 7.7
Introduccin - Justificacin
Repaso 7.8
Introduccin - Problemas
Repaso 7.9
Introduccin - Problemas
Un objeto contiene datos y operaciones que operan sobre
los datos, pero ...
Podemos distinguir dos tipos de objetos degenerados:
Repaso 7.10
Objetos
Repaso 7.11
Objetos
Repaso 7.12
Objetos
Comportamiento
visible
OBJETO
Estado interno
Repaso 7.13
Objetos
En UML, un objeto se representa por un rectngulo con
un nombre subrayado
Cuenta C orriente 101
Juan
Banco de Valencia
Felipe
Cuenta Corriente 114
Repaso 7.14
Objetos - Estado
Automvil
Verde
120 CV
1000 Kg.
Repaso 7.15
Objetos - Estado
Automvil
50 litros
Recorrido de
150 Km.
Generalmente el estado de
un objeto es variable.
Automvil
30 litros
Repaso 7.16
Objetos - Comportamiento
M e n s a je
P rim e r O b je to
M to d o 1
Segundo
O b je to
M to d o 2
.......
M to d o n
Repaso 7.17
Objetos - Comportamiento
Un sistema OO puede verse como un conjunto de
objetos autnomos y concurrentes que trabajan de
manera coordinada en la consecucin de un fin
especfico.
El comportamiento global se basa pues en la
comunicacin entre los objetos que lo
componen.
Repaso 7.18
Objetos - Comportamiento
Activos Pasivos
Repaso 7.19
Objetos - Comportamiento
Servidor 1
2:
Un agente
1:
Un cliente
3:
Servidor 2
Repaso 7.20
10
Objetos - Comportamiento
La unidad de comunicacin entre objetos se llama
mensaje
Objeto 1
1: Mensaje A
Objeto 2
2: Mensaje C
4: Mensaje E
Objeto 4
Objeto 3
3: Mensaje D
Repaso 7.21
Objetos - Comportamiento
Repaso 7.22
11
Objetos - Identidad
Repaso 7.23
Clases
El mundo real puede ser visto desde abstracciones
diferentes (subjetividad)
Mecanismos de abstraccin:
Clasificacin / Instanciacin
Composicin / Descomposicin
Agrupacin / Individualizacin
Especializacin / Generalizacin
La clasificacin es uno de los mecanismos de abstraccin ms
utilizados
Francisco Ruiz - IS1
Repaso 7.24
12
Clases
La clase define el mbito de definicin de un
conjunto de objetos
Cada objeto pertenece a una clase
Los objetos se crean por instanciacin de las clases
Repaso 7.25
Clases
Otras definiciones
Plantilla a partir de la que se crean objetos. Contiene una
definicin del estado y los mtodos del objeto.
Repaso 7.26
13
Clases
La clase Persona
Atributos
Nombre: string
Fecha de nacimiento: fecha
Color del pelo: (negro, blanco, pelirrojo, rubio)
Mtodos
Nacer
Crecer
Morir
Persona
Ana
23
rubio
Paco
19
negro
Andrs
40
blanco
Repaso 7.27
Clases
Representacin
En UML cada clase se representa en un rectngulo
con tres compartimentos:
nombre de la clase
atributos de la clase
operaciones de la clase
Motocicleta
color
cilindrad a
velocidad m xima
arranca r()
acelerar()
fre nar()
Repaso 7.28
14
Clases
Lista
Motocicleta
Color
Cilindrada
V. Mxima
Arrancar ( )
Acelerar ( )
Frenar ( )
Primero ( )
Ultimo ( )
Aadir ( )
Quitar ( )
Televisor
Encender ( )
Apagar ( )
Cambiar
programa()
Regular volumen
()
Arbol binario
Subrbol izdo( )
Subrbol dcho( )
Recorrer en
profundidad ( )
Repaso 7.29
Clases - Encapsulamiento
Repaso 7.30
15
Clases - Encapsulamiento
Mundo
Pblicos
Atributos
Privados
Privados
Mtodos
Pblicos
Francisco Ruiz - IS1
Repaso 7.31
Clases - Encapsulamiento
Repaso 7.32
16
Clases - Encapsulamiento
En UML los niveles de encapsulamiento son:
Repaso 7.33
Relaciones
Repaso 7.34
17
Relaciones - Asociaciones
Diagrama de objetos
Asociacin:
e2
D.E. de Sistemas
Es una abstraccin de
los enlaces que existen
entre los objetos
instancias de esas
clases.
Se representan como
los enlaces y se
diferencian por el
contexto del diagrama.
Pepe: Estudiante
e1
Antonio: Estudiante
e3
Sara: Estudiante
enlaces
e1
Ing. Programacin
e2
Pepe: Estudiante
Isabel: Estudiante
Diagrama de clases
Estudiante
Asignatura
asociacin
Francisco Ruiz - IS1
Repaso 7.35
Relaciones - Asociaciones
Asociacin:
[direccin y multiplicidad]
Trabaja en >
Persona
< Emplea a
Persona
Persona
Compaa
Trabaja en >
1..*
Alumnos
1..*
Francisco Ruiz - IS1
Compaa
Compaa
Asignaturas
1..*
Repaso 7.36
18
Relaciones - Asociaciones
Ejemplo de Asociaciones:
marido
casado-con
mujer
jefe
Administra
0..1
0..1
Persona
nombre
s.s.
emplea-a
Compaa
trabaja-para nombre
direccin
*
0.. 1
empleado
Repaso 7.37
Relaciones - Asociaciones
Multiplicidad de Asociaciones
Mnima .. Mxima
1
Uno y slo uno
0..1
Cero o uno
M..N
Desde M hasta N (enteros naturales)
*
Cualquiera (cero o varios)
0..*
Cualquiera (entre cero y varios)
1..*
Uno o muchos (al menos uno)
Slo suponen restricciones los casos:
Repaso 7.38
19
Relaciones - Agregaciones
Puede
tener
nombre
Agregacin:
Forma particular de
asociacin con acoplamiento
1
Agregado
componentes
*
fuerte y asimtrico
Permite representar
asociaciones amo/esclavo,
todo/partes, compuestos /
componentes.
1
coche
motor
1
*
Flotas
Equipo
Barcos
Persona
La existencia de ambos es
independiente
Agregacin
compartida
Repaso 7.39
Relaciones - Agregaciones
Agregacin:
Coche
marca:String
Rueda
modelo:String
cilindrada:entero
r1, r2, r3, r4:
anchura:entero
dimetro:entero
inflar()
desinflar()
Repaso 7.40
20
Relaciones - Agregaciones
T e x to
C u a d ro d e
te x to
C o n tie n e
V e n ta n a
*
B o t n
*
M enu
La clase del todo debe controlar el ciclo de vida de sus clases parte
Repaso 7.41
Relaciones - Generalizacin
Especializacin:
Permite capturar particularidades de un conjunto de objetos no
discriminados por las clases ya identificadas. Las nuevas
caractersticas se representan por una nueva clase, subclase de
una de las clases existentes.
Repaso 7.42
21
Relaciones - Generalizacin
Nomenclatura:
clase padre - clase hija
superclase subclase
clase base - clase derivada
Repaso 7.43
Relaciones - Generalizacin
Generalizacin:
Abstracciones ms
generales
Vehculo
Vehculo terrestre
Coche
Camin
Vehculo areo
Avin
Repaso 7.44
22
Relaciones - Generalizacin
Especializacin:
Transmisin
Continua
Cambio
Discreta
Caja de Cambios
Embrague
Repaso 7.45
Relaciones - Generalizacin
Varias especializaciones pueden compartir una
misma clase padre, usando discriminadores:
Comercial
Militar
uso
Vehculo Areo
estructura
Avin
Helicptero
Repaso 7.46
23
Relaciones - Generalizacin
Mecanismo de Herencia
Superclase
a1, a2, a3
m1, m2, m3
Subclase 2
a1, a2, a3, a4, a5
m1, m2, m3, m3, m4
Repaso 7.47
Relaciones - Generalizacin
Herencia Simple:
Persona
nombre
edad
FechaDeNacimiento
nacer()
crecer()
morir()
Profesor
salario
FechaDeContrato
subirSueldo(x:short)
contratar()
despedir()
Alumno
FormaDeAcceso
FechaDeMatrcula
aprobar()
suspender()
Repaso 7.48
24
Relaciones - Generalizacin
conflicto de nombre,
conflicto de precedencia.
Repaso 7.49
Relaciones - Generalizacin
Herencia Mltiple:
Profesor
salario
FechaDeContrato
subirSueldo(x:short)
contratar()
despedir()
Alumno
FormaDeAcceso
FechaDeMatrcula
aprobar()
suspender()
ProfesorQueEstudia
porcentajeDeDescuento
Repaso 7.50
25
Relaciones - Generalizacin
Bpedo
Cuadrpedo
nro patas
nro patas
Herbvoro
Con Pelos
comida
cubertura
Con Plumas
Animal
cobertura
comida
cobertura
Carnvoro
Con Escamas
Conejo
Repaso 7.51
Relaciones - Generalizacin
Al utilizar Herencia entre clases debe tenerse
siempre en cuenta el Principio de Sustitucin de
Liskow, que afirma que:
Repaso 7.52
26
Polimorfismo
El trmino polimorfismo se refiere a algo que puede
adoptar varias formas diferentes.
En OO, el polimorfismo es la posibilidad de
desencadenar operaciones distintas en
respuesta a un mismo mensaje.
Cada subclase hereda las operaciones de su superclase
pero tiene la posibilidad de modificar localmente el
comportamiento de estas operaciones (redefinicin).
La operacin por tanto es polimorfa.
En tiempo de ejecucin, se elige la implementacin
apropiada de la operacin en funcin de la clase del
objeto concreto sobre el que se enve el mensaje (enlace
dinmico).
Francisco Ruiz - IS1
Repaso 7.53
Polimorfismo
Ejemplo:
Todo animal duerme, pero cada especie lo hace de forma
distinta.
Animal
Zoo
1
Len
Dormir()
{Sobre el
vientre}
Dormir()
Tigre
Dormir()
{Sobre la
espalda}
Oso
Dormir()
{En un rbol}
Repaso 7.54
27