Professional Documents
Culture Documents
11
Conceptos de Programacin
Orientada a Objetos
Paradigmas de programacin
Prog. orientada a objetos
Abstraccin de datos
Programacin estructurada
Programacin imperativa
Pablo Castells
23.02.11
Valores de entrada
Bloque
principal
Procedimiento
Valores de entrada
Funcin
Valor(es) de salida
Implementacin
Datos de entrada
Datos locales
Datos de salida
Descripcin funcionalidad
Secuencia de instrucciones
Pablo Castells
23.02.11
Facilita el mantenimiento
Claridad del cdigo
Independencia
I d
d
i d
de llos mdulos
d l
Favorece la reutilizacin
Pablo Castells
23.02.11
Abstraccin de datos
c
z
a
b
Pablo Castells
23.02.11
Abstraccin de operaciones
Entrada
arg1
Salida
Entrada
arg1
arg2
arg3
Salida
Ejemplo de TAD en C
struct vector {
double x;
double y;
y
};
void construir (vector *u, double u1, double u2)
{
u->x = u1;
u->y = u2;
}
void main ()
{
double modulo (vector u)
vector u;
{
construir (&u, 4, -2);
double m;
printf (%lf, modulo (u));
m = sqrt (u.x*u.x + u.y*u.y);
}
return m;
}
10
Pablo Castells
23.02.11
11
12
Pablo Castells
23.02.11
13
)
)
Funciones
Objeto
Definicin de clases
Funciones explcitamente asociadas a clases
Creacin de objetos
Acceso a atributos, invocacin de mtodos
Variables
14
Pablo Castells
23.02.11
15
16
Pablo Castells
23.02.11
17
18
Pablo Castells
23.02.11
19
Elementos de la programacin
orientada a objetos
Objetos: atributos + mtodos
Mtodos: operaciones sobre los objetos
Clases: categoras de objetos con propiedades y operaciones comunes
Jerarquas de clases
En algunos lenguajes las clases son objetos
Caso particular: paradigma prototipo-instancia
20
Pablo Castells
23.02.11
nombre
edad
Directivo
divisin
sueldo bruto
Empleado
Empleado
Mtodos: cdigo
nombre
edad
divisin
sueldo bruto
categora
Directivo
Empleado
mostrar
datos
personales
calcular
salario
neto
21
Implementacin
Lenguajes con elementos especficos para relaciones
Atributos que contienen referencias (punteros) a objetos
22
Pablo Castells
23.02.11
Objetos: encapsulamiento
Porcin visible: interfaz (protocolo)
Contrato pblico de comportamiento
Descripcin de operaciones: informacin de entrada y de salida
Datos
Cdigo
Cdi que se ejecuta
j
t para realizar
li
llas operaciones
i
Interfaz
Mtodos
23
Manipulacin
Acceso a atributos:
x . nombre
Invocacin de mtodos:
x . salario_neto ( )
Destruccin
D t
i
Liberar la memoria
Destruir partes internas, si las hay
Eliminar referencias al objeto destruido (p.e. jefe)
24
Pablo Castells
23.02.11
Jerarquas de objetos
Persona
Jerarqua de tipos
Persona x
Empleado y = crear Empleado
Empleado
Cliente
Directivo
25
Herencia de estructura
nombre
edad
divisin
sueldo bruto
Empleado
categora
Directivo
Persona
Cliente
nombre empresa
telfono de contacto
26
Pablo Castells
23.02.11
Herencia de funcionalidad
mostrar
datos
personales
especializacin
calcular
salario
neto
especializacin
Persona
mostrar
datos
personales
Empleado
mostrar
datos
personales
Directivo
Cliente
mostrar
datos
personales
herencia
calcular
salario
neto
27
Facilidad de extensin
Reutilizacin
Modularidad
mostrar
datos
personales
Persona
e so
calcular
salario
neto
Administrativo
Empleado
Cliente
Directivo
28
Pablo Castells
23.02.11
Herencia mltiple
curso
asignaturas
matricularse (asignatura)
Estudiante
Li
Licenciado
i d
ao promocin
especialidad
nota media
Alumno
doctorado
ao ppromocin
especialidad
nota media
curso
asignaturas
matricularse (asignatura)
29
Herencia mltiple
Resolucin de la ambigedad
x
A
y
t
y
z
D obj = crear D
obj . x
obj . y
D
x
y
z
t
30
Pablo Castells
23.02.11
Polimorfismo
Sobrecarga
Ligadura dinmica
Persona x
Empleado y = crear Empleado
x=y
x.mostrar_datos ( )
y.mostrar_datos ( )
Sobreescritura (especializacin)
Persona x = crear persona
Empleado y = crear Empleado
x.mostrar_datos ( )
y.mostrar_datos ( )
31
Tringulo
Rectngulo
Elipse
rea ( )
rea ( )
rea ( )
32
Pablo Castells
23.02.11
33
f (A x, B y)
f (B x, A y)
B b1 = crear B
B b2 = crear B
C c = crear C
c . f (b1, b2)
34
Pablo Castells
23.02.11
B b = crear B
?
B
b . f (b)
f (A x)
35
f (A x)
f (B x)
?
C c = crear C
D d = crear D
d . f (c)
36
Pablo Castells
23.02.11
Diagramas UML
Estructurales
De comportamiento
Clases
Casos de uso
Objetos
Secuencia
Componentes
Colaboracin
Instalacin
Estados
Actividad
38
Pablo Castells
23.02.11
Diagramas UML
Estructurales
De comportamiento
Clases
Casos de uso
Objetos
Secuencia
Componentes
Colaboracin
Instalacin
Estados
Actividad
39
Objeto
At ib t
Atributos
At ib t
Atributos
Operaciones
Operaciones
I
Interfaz
f
Dependencia
G
Generalizacin
l
Asociacin
Agregacin
Composicin
40
Pablo Castells
23.02.11
Diagrama de objetos
Diagrama
de clases
Persona
Ordenador
nombre : String
edad : Integer
1..*
Utiliza
Usuario1 : Persona
Servidor7 : Ordenador
nombre = "Juan"
fecha nac. = 21/07/76
nombre = "Andromeda"
memoria = 256
Usuario2 : Persona
PC12 : Ordenador
nombre = "Luis
fecha nac. = 21/07/85
nombre = "Anubis"
memoria = 128
41
Formado por
Figura
{abstract}
* posicin : Punto
Formado por
Canvas
draw ( ) {abstract}
area ( ) : Integer {abstract}
Grupo
Crculo
Polgono
centro : Punto
radio : Integer
draw ( )
area ( ) : Integer
draw ( )
area ( ) : Integer
Punto
Formado
por
draw ( )
area ( ) : Integer
x : Integer
y : Integer
*
42
Pablo Castells
23.02.11
Casos de uso
Cancel appointment
Scheduler
Make appointment
Patient
Request medication
D
Doctor
Pay bill
Clerk
43
Casos de uso
Comunicacin
Comunicacin
Caso de uso
Cancel appointment
Caso de uso
Actor
Patient
Actor
Scheduler
Make appointment
Caso de uso
Request medication
Caso de uso
Actor
D
Doctor
Actor
Pay bill
Clerk
44
Pablo Castells
23.02.11
Secuencia
caller
exchange
receiver
lift receiver
dial tone
dial digit
...
ringing tone
phone rings
answer phone
stop tone
stop ringing
45
Secuencia
caller
Objetos
exchange
receiver
lift receiver
dial tone
dial digit
...
ringing tone
Mensajes
phone rings
answer phone
stop tone
stop ringing
Focos de control
46
Pablo Castells
23.02.11
Estados
digit(n)
start
Partial dial
digit(n)
47
Estados
Estados
I i i
Inicio
Fin
digit(n)
start
Partial dial
digit(n)
Transiciones
48
Pablo Castells