Documente Academic
Documente Profesional
Documente Cultură
23.02.11
Paradigmas de programacin
Prog. orientada a objetos
Abstraccin de datos
Programacin estructurada
Programacin imperativa
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Valores de entrada
Procedimiento
Bloque principal
Valores de entrada
Funcin
Valor(es) de salida
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Facilita el mantenimiento
Claridad del cdigo Independencia I d d i d de l los mdulos d l
Favorece la reutilizacin
double modulo (double u1, double u2) { double m; m = sqrt (u1*u1 + u2*u2); return m; } void main () { printf (%lf, modulo (4, -2)); }
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Abstraccin de datos
c z a b x y
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Abstraccin de operaciones
Entrada Entrada
arg1
arg1
arg2
arg3
Salida
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
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
11
12
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
13
) )
Soporte sintctico explcito para la abstraccin de datos Cambia el punto de vista: los programas son apndices de los datos Aparece un nuevo concepto: objeto Objeto = tipo abstracto de datos con estado (atributos) y comportamiento (operaciones) propios Aparece el concepto de jerarqua de tipos, y con l:
Herencia de estructura y funcionalidad Polivalencia de los tipos Polimorfismo
Funciones Objeto
Definicin de clases Funciones explcitamente asociadas a clases Creacin de objetos Acceso a atributos, invocacin de mtodos
Variables
14
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
15
16
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
17
18
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
19
20
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Acceso al estado del objeto Clculos sobre el estado Empleado Modificacin del estado Constructores: inicializacin
Implementacin
Lenguajes con elementos especficos para relaciones Atributos que contienen referencias (punteros) a objetos
22
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Objetos: encapsulamiento
Porcin visible: interfaz (protocolo)
Contrato pblico de comportamiento Descripcin de operaciones: informacin de entrada y de salida
Interfaz Mtodos
23
Manipulacin
Acceso a atributos: Invocacin de mtodos: x . nombre 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
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
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 Persona
Empleado
Cliente
categora
Directivo
26
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Herencia de funcionalidad
mostrar datos personales
especializacin
Persona
especializacin
Empleado
Cliente
Directivo
27
Facilidad de extensin
Reutilizacin
Persona e so
Modularidad
Empleado
Cliente
Administrativo
Directivo
28
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Herencia mltiple
curso asignaturas matricularse (asignatura) Estudiante Li Licenciado i d ao promocin especialidad nota media
Alumno doctorado promocin ao p especialidad nota media curso asignaturas matricularse (asignatura)
29
y t
y z
D x y z t
30
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Polimorfismo
Sobrecarga
Recta r1 = crear Recta Recta r2 = crear Recta Vector v = crear Vector r1.paralela (r2) r1.paralela (v)
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 rea ( )
Rectngulo rea ( )
Elipse rea ( )
32
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
33
34
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
?
B f (A x)
b . f (b)
35
?
C c = crear C D d = crear D
d . f (c)
36
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Diagramas UML
Estructurales
Clases Objetos Componentes Instalacin
De comportamiento
Casos de uso Secuencia Colaboracin Estados Actividad
38
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Diagramas UML
Estructurales
Clases Objetos Componentes Instalacin
De comportamiento
Casos de uso Secuencia Colaboracin Estados Actividad
39
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Diagrama de clases
Usuario1 : Persona
Diagrama de objetos
41
Formado por
Formado por
Canvas
Grupo
42
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Casos de uso
Cancel appointment Scheduler Make appointment Patient
Request medication
D Doctor
Casos de uso
Comunicacin Caso de uso Comunicacin
Cancel appointment
Caso de uso Actor
Actor
Scheduler
Actor
Make appointment
Caso de uso
Patient
Request medication
Caso de uso
D Doctor
Actor
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Secuencia
caller lift receiver dial tone dial digit ... exchange receiver
ringing tone
stop tone
stop ringing
45
Secuencia
caller lift receiver dial tone dial digit ... exchange
Objetos
receiver
Mensajes
ringing tone
stop tone
stop ringing
Focos de control
46
Pablo Castells
Programacin Orientada a Objetos (3er curso, grupo 31) 1. Introduccin: conceptos de Programacin Orientada a Objetos
23.02.11
Estados
digit(n)
47
Estados
I i i Inicio Estados Fin
digit(n)
Transiciones
48
Pablo Castells