Documentos de Académico
Documentos de Profesional
Documentos de Cultura
11
1. Introducción: conceptos de Programación Orientada a Objetos
Conceptos de Programación
Orientada a Objetos
Paradigmas de programación
Abstracción de datos
Programación estructurada
Programación imperativa
Bloque
principal Valores de entrada
Función
Valor(es) de salida
Facilita el desarrollo
– Se evita la repetición del trabajo
– Trabajo de programación compartimentado en módulos independientes
– Diseño top-down: descomposición en subproblemas
Facilita el mantenimiento
– Claridad del código
– Independencia
I d d i dde llos módulos
ód l
Favorece la reutilización
void main ()
{
double u1, u2, m;
u1 = 4;
double modulo (double u1, double u2)
u2 = -2;
{
m = sqrt (u1*u1 + u2*u2);
double m;
printf (”%lf”, m);
m = sqrt (u1*u1 + u2*u2);
}
return m;
}
void main ()
{
printf (”%lf”, modulo (4, -2));
}
Abstracción de datos
c
z
a
x
b y
Abstracción de operaciones
Entrada Entrada
Salida Salida
Ejemplo de TAD en C
struct vector {
double x;
double y;
y
};
10
...
void main ()
{
vector u, v;
construir
t i ( (&u, 4
4, -2);
2)
construir (&v, 1, 5);
printf (”%lf”, producto (u, v));
}
11
12
13
14
15
class MainClass {
public static void main (
p (String
g args
g []) {
Vector u = new Vector (4, -2);
System.out.println (u.modulo ());
}
}
16
void main ()
{
Vector u (4, -2);
cout << u.modulo ();
}
17
18
Simula (1967)
Smalltalk (1980)
C++ (1983, 1990)
Object Pascal (1988)
Lisp CLOS (1989)
Java (1995, 1997, 1998...)
19
Elementos de la programación
orientada a objetos
Objetos: atributos + métodos
Métodos: operaciones sobre los objetos
Clases: categorías de objetos con propiedades y operaciones comunes
Jerarquías de clases
En algunos lenguajes las clases son objetos
– Caso particular: paradigma prototipo-instancia
20
21
Tipos de relaciones
– Especialización: sólo entre clases
– Agregación: objetos compuestos formados por partes
– Asociación: relaciones arbitrarias (p.e. jefe de empleado)
Implementación
– Lenguajes con elementos específicos para relaciones
– Atributos que contienen referencias (punteros) a objetos
22
Objetos: encapsulamiento
Porción visible: interfaz (protocolo)
– Contrato público de comportamiento
– Código
Códi que se ejecuta
j t para realizar
li llas operaciones
i
Interfaz
Métodos
23
24
Jerarquías de objetos
Persona
Jerarquía de tipos
Persona x
Empleado y = crear Empleado
Empleado Cliente Directivo z = crear Directivo
x=y
x=z
Directivo
25
Herencia de estructura
nombre
Persona
edad
categoría Directivo
26
Herencia de funcionalidad
mostrar
datos
personales
especialización especialización
Persona
herencia
calcular mostrar
salario datos Directivo
neto personales
27
Facilidad de extensión
Reutilización
Persona
e so
Modularidad calcular
salario Empleado Cliente
neto
mostrar
datos Administrativo Directivo
personales
28
Herencia múltiple
curso año promoción
asignaturas Estudiante Li
Licenciado
i d especialidad
matricularse (asignatura) nota media
Alumno
doctorado
año ppromoción
especialidad
nota media
curso
asignaturas
matricularse (asignatura)
29
Herencia múltiple
Resolución de la ambigüedad
x
y y
B C z D obj = crear D
t
obj . x
obj . y
D
x
y
z
t
30
Polimorfismo
Sobrecarga Ligadura dinámica
Recta r1 = crear Recta Persona x
Recta r2 = crear Recta Empleado y = crear Empleado
Vector v = crear Vector x=y
r1.paralela (r2) x.mostrar_datos ( )
r1.paralela (v) y.mostrar_datos ( )
Sobreescritura (especialización)
Persona x = crear persona
Empleado y = crear Empleado
x.mostrar_datos ( )
y.mostrar_datos ( )
31
área ( )
Figura
32
33
f (A x, B y)
A C
f (B x, A y)
B
B b1 = crear B
?
B b2 = crear B
C c = crear C
c . f (b1, b2)
34
A f (B x)
B b = crear B
? b . f (b)
B f (A x)
35
f (A x)
A B D f (B x)
C
?
C c = crear C
D d = crear D
d . f (c)
36
Diagramas UML
Estructurales De comportamiento
– Clases – Casos de uso
– Objetos – Secuencia
– Componentes – Colaboración
– Instalación – Estados
– Actividad
38
Diagramas UML
Estructurales De comportamiento
– Clases – Casos de uso
– Objetos – Secuencia
– Componentes – Colaboración
– Instalación – Estados
– Actividad
39
At ib t
Atributos At ib t
Atributos I
Interfaz
f
Operaciones Operaciones
Dependencia
G
Generalización
l ó
Asociación
Agregación
Composición
40
41
Figura
{abstract}
Formado por * posición : Punto * Formado por
Canvas
draw ( ) {abstract}
area ( ) : Integer {abstract}
42
Casos de uso
Cancel appointment
Scheduler
Make appointment
Patient
Request medication
D
Doctor
Pay bill
Clerk
43
Casos de uso
Comunicación
Comunicación
Caso de uso
Cancel appointment Actor
Caso de uso
Scheduler
Actor Make appointment
Actor
Caso de uso
Patient
Request medication
D
Doctor
Caso de uso Actor
Pay bill
Clerk
44
Secuencia
lift receiver
dial tone
dial digit
...
answer phone
45
Secuencia Objetos
lift receiver
dial tone
Mensajes
dial digit
...
answer phone
Focos de control
46
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