Académique Documents
Professionnel Documents
Culture Documents
10
1. Introducción: conceptos de Programación Orientada a Objetos
Paradigmas de programación
Orientada a Objetos
Programación estructurada
Programación imperativa
3 4
Facilita el desarrollo
void main ()
– Se evita la repetición del trabajo {
– Trabajo de programación compartimentado en módulos independientes double u1, u2, m;
u1 = 4;
double modulo (double u1, double u2)
– Diseño top-down:
p descomposición
p en subproblemas
p u2 = -2;
{
m = sqrt (u1*u1 + u2*u2);
double m;
Facilita el mantenimiento printf (”%lf”, m);
m = sqrt (u1*u1 + u2*u2);
}
– Claridad del código return m;
}
– Independencia de los módulos
void main ()
Favorece la reutilización {
printf (”%lf”, modulo (4, -2));
}
5 6
7 8
struct vector {
Entrada Entrada double x;
double y;
};
Salida Salida }
9 10
double producto (vector u, vector v) Encapsulamiento: ocultación de la complejidad interna y detalles de los
{
return u.x * v.x + u.y * v.y; datos y las operaciones
}
Especificación vs. implementación: utilización del tipo de datos
void main ()
{ independiente de su programación interna
vector u, v;
construir (&u, 4, -2); Mayor modularidad: también los datos
construir (&v, 1, 5);
printf (”%lf”, producto (u, v)); Mayor facilidad de mantenimiento, reutilización
}
11 12
13 14
class MainClass {
public static void main (String args []) {
Vector u = new Vector (4, -2);
System.out.println (u.modulo ());
}
}
15 16
17 18
19 20
21 22
23 24
Persona x
Empleado y = crear Empleado
división p
nombre empresa
Empleado
l d Cliente
li Directivo z = crear Directivo Empleado
l d Cliente
li
sueldo bruto teléfono de contacto
x=y
x=z
Directivo categoría Directivo
25 26
Modularidad calcular
salario
l i Empleado
l d Cliente
li
calcular mostrar mostrar neto
salario datos Empleado Cliente datos
neto personales personales
herencia mostrar
datos Administrativo Directivo
calcular mostrar personales
salario datos Directivo
neto personales
27 28
Herencia múltiple
Herencia múltiple Resolución de la ambigüedad
x
curso año promoción
asignaturas Estudiante Licenciado especialidad A
matricularse (asignatura) nota media
y y
B C D obj = crear D
t z
Alumno
doctorado obj . x
obj . y
año promoción
especialidad D
nota media
curso x
asignaturas y
matricularse (asignatura) z
t
29 30
31 32
33 34
f (B x) f (A x)
A A B D
f (B x)
B b = crear B
? b . f (b) C
?
B f (A x)
C c = crear C
D d = crear D
d . f (c)
35 36
Agregación
Composición
39 40
Persona Ordenador
Diagrama
de clases
Figura
nombre : String 1..* Utiliza 0..* nombre : String {abstract}
edad : Integer memoria : Integer Formado por Formado por
* posición : Punto * Canvas
draw ( ) {abstract}
area ( ) : Integer {abstract}
Usuario1 : Persona Servidor7 : Ordenador
nombre = "Juan"
Juan nombre = "Andromeda"
Andromeda
Diagrama de objetos
s
41 42
Caso de uso
Scheduler Scheduler
Make appointment Actor Make appointment
Actor
Caso de uso
Patient Patient
Request medication Request medication
Doctor Doctor
Caso de uso Actor
Pay bill Pay bill
Clerk Clerk
43 44
Focos de control
45 46
Estados Estados
Estados
Inicio Fin
digit(n) digit(n)
start Partial dial start Partial dial
digit(n) digit(n)
Transiciones
47 48