Documente Academic
Documente Profesional
Documente Cultură
INTRODUCCIN AL PARADIGMA
ORIENTADO A OBJETOS
Pedro J. Ponce de Len
Versin 0.8
Indice
El progreso de la abstraccin
Definicin de la abstraccin
Lenguajes de programacin y niveles de abstraccin
Principales paradigmas de programacin
Mecanismos de abstraccin en los lenguajes de programacin
El progreso de la abstraccin
Definicin
Abstraccin
El progreso de la abstraccin
Lenguajes de programacin y niveles de abstraccin
Ensamblador
Procedimientos
Mdulos
Perspectiva funcional
Paquetes
Tipos abstractos de datos (TAD)
Perspectiva de datos
Objetos
TAD
+ paso de mensajes
+ herencia
+ polimorfismo
Perspectiva de servicios
El progreso de la abstraccin
Espacio de la solucin
Lenguajes Orientados a
Objetos (LOO)
LOO
Puros
Lenguajes Ensamblador
Lenguajes Imperativos (C,
Fortran, BASIC)
Smalltalk,
Eiffel
El progreso de la abstraccin
Principales paradigmas
PARADIGMA:
Forma de entender y representar la realidad.
Conjunto de teoras, estndares y mtodos que, juntos, representan
un modo de organizar el pensamiento.
Paradigma Lgico
Prolog
C, Pascal
El progreso de la abstraccin
Mecanismos de abstraccin en los lenguajes de programacin
OCULTACIN DE INFORMACIN:
Omisin intencionada de detalles de implementacin tras una interfaz
simple.
Favorece la intercambiabilidad.
Favorece la comunicacin entre miembros del equipo de desarrollo y la
interconexin de los artefactos resultantes del trabajo de cada miembro.
El progreso de la abstraccin
Mecanismos de abstraccin en los lenguajes de programacin
INTERFAZ
[Qu]
visible
IMPLEMENTACIN
[Cmo]
oculto
Usuario del
objeto
Objeto
9
Indice
El progreso de la abstraccin
Definicin de la abstraccin
Lenguajes de programacin y niveles de abstraccin
Principales paradigmas de programacin
Mecanismos de abstraccin en los lenguajes de programacin
11
Cambia
12
Motivos
14
Ejemplo: Supongamos que Luis quiere enviar flores a Alba, que vive en otra ciudad.
15
Agentes y comunidades
Mensajes y mtodos
Responsabilidades
Objetos y clases
Jerarquas de clases
Enlace de mtodos
16
Agentes y comunidades
17
Mensajes y mtodos
Sintxis de un mensaje:
receptor.selector(argumentos)
unJuego.mostrarCarta(laCarta,42,47)
18
Mensajes y mtodos
19
Responsabilidades
20
Objetos y clases
21
Jerarquas de clases
Mamifero
Humano
Dependiente
Florista
22
Enlace de mtodos
Instante en el cual una llamada a un mtodo es asociada al cdigo que se
debe ejecutar
23
Indice
El progreso de la abstraccin
Definicin de la abstraccin
Principales paradigmas de programacin
Lenguajes de programacin y niveles de abstraccin
Mecanismos de abstraccin en los lenguajes de programacin
24
25
Polimorfismo
Genericidad
Gestin de Errores
Aserciones
Precondiciones:propiedades que deben ser satisfechas cada vez que se invoca una
servicio
Postcondiciones:propiedades que deben ser satisfechas al finalizar la ejecucin de un
determinado servicio
Invariantes: aserciones que expresan restricciones para la consistencia global de sus
instancias.
26
POO
Tipado esttico
27
POO
Persistencia
Reflexin
28
POO
29
Indice
El progreso de la abstraccin
Definicin de la abstraccin
Principales paradigmas de programacin
Lenguajes de programacin y niveles de abstraccin
Mecanismos de abstraccin en los lenguajes de programacin
30
Lenguaje
Creadores
Observaciones
1967
Simula
Norwegian
Computer
Center
1970s
Smalltalk
Alan Kay
1985
C++
Bjarne
Stroustrup
1986
1 Conf.
OOPSLA
90s
Java
00->
C#,
Python,
Ruby,
comercial (1986->)
Objective C, Object Pascal, C++, CLOS,
Extensiones de lenguajes no OO (C, Pascal, LISP,)
Sun
31
37
Indice
El progreso de la abstraccin
Definicin de la abstraccin
Principales paradigmas de programacin
Lenguajes de programacin y niveles de abstraccin
Mecanismos de abstraccin en los lenguajes de programacin
38
Metas de la P.O.O.
PARMETROS EXTRNSECOS
PARMETROS INTRNSECOS
39
Metas de la P.O.O.
40
Metas de la P.O.O.
41
Bibliografa
Captulo 1
Timothy Budd
Bertrand Meyer
Captulos 1 y 2
Bruce Eckel
48