Вы находитесь на странице: 1из 14

Tecnologa de objetos

Construccin de software utilizando componentes reutilizables con interfaces bien definidas

Conceptos de POO Las aplicaciones no se construyen desde cero


Ingeniera del Software 2 Facultad de Informtica
!

Se pueden considerar varias capas:


La capa inferior son objetos (software chips) La capa intermedia son colecciones de objetos relacionados (patrones de diseo OO) La capa superior son aplicaciones que resuelven problemas especficos (armazones o frameworks)

Juan Pavn Mestras Dep. Sistemas Informticos y Programacin Universidad Complutense Madrid

Promueve el diseo basado en interfaces y arquitecturas estndares, con una organizacin y un proceso

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

Tecnologa de objetos
!

Tecnologa de objetos
!

Los objetos permiten representar los conceptos esenciales de una entidad ignorando sus propiedades accidentales

Motivos que han conducido al xito la tecnologa de objetos


!

Avances en arquitectura de computadores Avances en lenguajes de programacin (C++, Smalltalk, Ada, Java, ...). Ingeniera del software (modularidad, encapsulado de la informacin, proceso de desarrollo incremental) Los lmites de la capacidad de gestionar la complejidad de los sistemas simplemente con tcnicas de descomposicin algortmica

Lo principal es la visin externa


!

Durante el desarrollo del sistema lo importante es qu es y qu hace un objeto antes de decidir cmo se implementar
!

Comportamiento: operaciones que los clientes realizarn en el objeto, y operaciones que realizar sobre otros objetos
Un cliente es un objeto que usa los recursos/servicios de otros objetos (servidores)

Ms centrado en el diseo y aplicacin de tcnicas de ingeniera de software

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

Tecnologa de objetos
!

Qu es la Programacin Orientada a Objetos


!

Ventajas de la tecnologa de objetos


! !

Mejoras significativas de la productividad y calidad del cdigo Estabilidad de los modelos respecto a entidades del mundo real Construccin iterativa Promueve la reutilizacin de software y de diseos (componentes, frameworks) Los sistemas OO son generalmente ms pequeos que su equivalente no OO: menos cdigo y ms reutilizacin Permite desarrollar sistemas ms preparados para el cambio Vle para aplicaciones de pequeo y gran tamao

Organizacin de los programas de manera que representan la interaccin de las cosas en el mundo real
! ! !

! !

! ! ! !

! !

Un programa consta de un conjunto de objetos Los objetos son abstracciones de cosas del mundo real Nos interesa qu se puede hacer con los objetos ms que cmo se hace Cada objeto es responsable de unas tareas Los objetos interactan entre s por medio de mensajes Cada objeto es un ejemplar de una clase Las clases se pueden organizar en una jerarqua de herencia

Ms centrado en el diseo y aplicacin de tcnicas de ingeniera de software


Juan Pavn Mestras Facultad de Informtica UCM, 2004-05 Conceptos de Orientacin a Objetos

La programacin OO es una simulacin de un modelo del universo

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

Conceptos generales
! ! ! ! ! ! ! ! ! ! !

Objetos
! ! !

Objetos y clases Atributos Mensajes y mtodos Encapsulado y ocultacin Interfaces Herencia de clases Polimorfismo Vinculacin dinmica Composicin de objetos Modelado con objetos Bibliotecas

Los objetos son cosas Los objetos pueden ser simples o complejos Los objetos pueden ser reales o imaginarios

Hola Mundo
Juan Pavn Mestras Facultad de Informtica UCM, 2004-05 Conceptos de Orientacin a Objetos

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

Atributos
! !

Mensajes
! !

Valores o caractersticas de los objetos Permiten definir el estado del objeto u otras cualidades

" Velocidad " Aceleracin " Capacidad de combustible

" " " " "

Marca Color Potencia Velocidad mxima Carburante

Los objetos se comunican e interaccionen entre s por medio de mensajes Si un objeto desea que otro objeto ejecute un mtodo le enva un mensaje que puede tener informacin adicional en forma de parmetros Componentes de un mensaje
! !

Objeto destinatario del mensaje (miCoche) Mtodo que se debe ejecutar como respuesta (cambiar marcha) Parmetros necesarios del mtodo (segunda)

constantes

variables
Juan Pavn Mestras Facultad de Informtica UCM, 2004-05 Conceptos de Orientacin a Objetos

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

10

Mtodos (u operaciones)
!

Clases
! !

Un objeto puede realizar una serie de acciones

Los objetos con estados similares y mismo comportamiento se agrupan en clases La definicin de la clase especifica el comportamiento y los atributos de los ejemplares (objetos) de la clase

" " " " " " "

Arrancar motor Parar motor Acelerar Frenar Girar a la derecha (grados) Girar a la izquierda (grados) Cambiar marcha (nueva marcha)

mtodo
Juan Pavn Mestras Facultad de Informtica UCM, 2004-05 Conceptos de Orientacin a Objetos

argumentos
11
Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Objetos de la clase Coche


Conceptos de Orientacin a Objetos

12

Definicin de clases en C++


enum Carburante { diesel, super, sinplomo }; class Coche { char* marca; double vel_max; int potencia; Carburante tipo_carburante; double velocidad; double aceleracion; public: void arrancar() { // instrucciones para arrancar el coche };
Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Definicin de clases en Java


class Coche { // atributos: String marca; double vel_max; int potencia; String tipo_carburante; double velocidad; double aceleracion; // mtodos: void arrancar() { // instrucciones para arrancar el coche } void frenar() { // instrucciones para frenar el coche } void acelerar() { // instrucciones para acelerar el coche } void girar_derecha(short grados) { // instrucciones para girar a la derecha }

void frenar() { // instrucciones para frenar el coche }; void acelerar() { // instrucciones para acelerar el coche }; void girar_derecha(short grados) { // instrucciones para girar a la derecha };

// etc. }; // fin de definicin de la clase Coche

// etc. } // fin de definicin de la clase Coche

Conceptos de Orientacin a Objetos

13

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

14

Un programa en POO
!

Un programa en C++

Un programa consta de un conjunto de instancias o ejemplares de objetos (object instances) y un flujo de control principal (main) Durante la ejecucin del programa:
!

Los objetos se crean y se destruyen


Gestin dinmica de la memoria

Se les solicita a los objetos que ejecuten mtodos (operaciones)

main() { Coche *c=new Coche(); // crea un objeto Coche c-> arrancar // utiliza el objeto // ... dispose(c); // elimina el objeto }

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

15

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

16

Un programa en Java

Un programa en POO

class Programa { public static void main(String args[]) { Coche c=new Coche(); // crea un objeto Coche c.arrancar(); // utiliza el objeto // ... } // se elimina el objeto cuando nadie lo puede utilizar // automticamente ! }

Ejercicio: Cul es la representacin en memoria de un POO?

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

17

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

18

Tcnicas de la POO
!

Clasificacin
!

Proporciona los siguientes mecanismos


! !

Clasificacin Encapsulado y ocultacin


Abstraccin

Clasificacin es un mecanismo para ordenar el conocimiento


! !

Herencia de clases
Polimorfismo

Es fundamentalmente un problema de bsqueda de similitudes Al clasificar buscamos grupos de cosas que tienen la misma estructura o muestran un comportamiento similar Mediante la clasificacin, los objetos con la misma estructura de datos y comportamiento se agrupan para formar una clase La clasificacin permite identificar clases y objetos en el desarrollo
Esta es una de las tareas ms difciles del A&D OO

! !

Composicin de objetos Asociaciones

Clasificacin y desarrollo orientado a objetos


! !

Y adicionalmente
! ! ! !

Concurrencia Persistencia Genericidad Excepciones

Despus de clasificar podemos


! ! !

Establecer asociaciones Agrupar Definir jerarquas

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

19

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

20

Encapsulado y ocultacin
!

Encapsulacin
!

Los objetos encapsulan (agrupan) sus operaciones y su estado:


! !

el comportamiento del objeto est definido por los mtodos el estado est definido por los datos o atributos del objeto

Consiste en separar los aspectos externos del objeto (las partes a las que pueden acceder otros objetos) de los detalles de implementacin internos (ocultos a otros objetos)
!

Ocultacin de informacin
!

Los objetos agrupan su estado (los atributos o datos) y su comportamiento (los mtodos)
Relacin clara entre el cdigo y los datos

Las partes necesarias para utilizar un objeto son visibles (interfaz pblica): mtodos Las dems partes son ocultas (privadas)
El volante, el cuentakilmetros, los pedales y la palanca de cambios representan una interfaz pblica hacia los mecanismos de funcionamiento del automvil Para conducir no es necesario conocer la mecnica del automvil (su implementacin)

Modularidad
!

El cdigo de un objeto puede desarrollarse y mantenerse independientemente del cdigo de los otros objetos Slo son visibles las partes necesarias para utilizar un objeto (interfaz pblica): mtodos y atributos Las dems partes son ocultas (privadas). No es necesario saber como esta hecho para utilizarlo
Conceptos de Orientacin a Objetos

Ocultacin de informacin
!

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

21

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

22

Encapsulacin
!

Abstraccin
!

Toda clase debe tener dos secciones:


! !

Interfaz: parte visible Implementacin: representacin de la abstraccin

Capacidad de especificar las caractersticas comunes a un conjunto de clases


! !

Definicin parcial del estado y del comportamiento Declaracin del comportamiento (interfaz)

Ejemplo
El volante, el cuentakilmetros, los pedales y la palanca de cambios representan una interfaz pblica hacia los mecanismos de funcionamiento del automvil Para conducir no es necesario conocer la mecnica del automvil (su implementacin)
!

Clases abstractas
!

Especificacin de datos y comportamiento comn a un conjunto de clases Forzar a que las subclases proporcionen un comportamiento especfico Declaracin de mtodos a incorporar en las clases que implementen la interfaz Definicin de constantes

Interfaces
!

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

23

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

24

Interfaces
! !

Herencia de clases
!

La interfaz define un conjunto de mtodos Una clase de objetos puede implementar una o varias interfaces
!

Permite definir una clase especializando otra ya existente


!

Se extiende un tipo de datos, heredando las caractersticas comunes y especificando las diferencias Permite la reutilizacin de cdigo

La interfaz Volante ofrece los mtodos:


Girar a la izquierda Girar a la derecha

!
!

Implementa la relacin es un o es una clase de


Define una jerarqua de clases:
Automovil

Superclase (o clase padre o base) Es una especializacin de

La interfaz PedalAcelerador ofrece los mtodos:


Pisar acelerador Levantar acelerador
Coche Camion

Subclase (o clase hija o derivada)

La clase Coche implementa las interfaces Volante y PedalAcelerador,


Particular Taxi Patrulla

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

25

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

26

Herencia de clases
!

Polimorfismo
!

Los mtodos y atributos de la superclase son heredados por las subclases, pero, en la especializacin:
!

Propiedad de una entidad de adquirir formas distintas


!

Polimorfismo inclusivo
Un objeto de un tipo dado (tipo esttico) puede ser sustituido por otro del mismo tipo, pero de distinta clase
Las interfaces definen tipos Las clases definen implementaciones

Se pueden aadir nuevos mtodos y atributos


La clase Taxi tiene taxmetro y las operaciones poner en marcha taxmetro y para taxmetro
!

Polimorfismo paramtrico
Un mtodo puede actuar sobre diversos tipos Ejemplo: el mtodo insertar() de una lista ordenada funciona sobre cualquier clase que tenga implementado el mtodo menor()

Se pueden redefinir los mtodos


La clase Taxi redefine el mtodo arrancar: si es recin subido un nuevo cliente, poner en marcha taxmetro

Se pueden ocultar mtodos


La subclase CocheAutomtico oculta el mtodo cambiar marcha

Sobrecarga de mtodo
un mismo nombre de mtodo y varias implementaciones del mismo (en la misma o distintas clases) Ejemplo: el mtodo insertar() implementado en una lista, en una lista ordenada, en un conjunto y en una tabla.

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

27

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

28

Vinculacin
!

Vinculacin dinmica
!

Asociacin de un atributo con su valor


! !

Concepto relacionado con el polimorfismo inclusivo


!

Variable con un valor Llamada a funcin con el cuerpo de la funcin

Puede ser
!

Cuando una variable de un tipo Coche posee una referencia a un objeto de clase Taxi (siendo Taxi descendiente de Coche) y se invoca a un mtodo por medio de la variable, cul se ejecuta si hay una implementacin en Coche y otra en Taxi (p.ej. Arranca)?

Esttico (early binding): en tiempo de compilacin


C++, Pascal, COBOL, FORTRAN

Dinmico (late binding): en tiempo de ejecucin


C++, Smalltalk, Objetive-C, Java
!

Los lenguajes con vinculacin dinmica tratan de asociar la ejecucin al tipo ms especfico, por tanto a Taxi El mecanismo general de bsqueda es empezar por el tipo dinmico de la variable receptora y remontarse por la jerarqua de herencia hasta encontrar una implementacin vlida

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

29

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

30

Clases abstractas
!

Implementacin de interfaces
! ! !

Descripcin incompleta de algo


! ! ! !

Describen partes de objetos Se usan en la jerarqua de herencia de clases Utilizadas en polimorfismo para definir operaciones comunes No pueden crearse objetos directamente de una clase abstracta
la clase Automvil permite definir qu se puede hacer con objetos de las subclases pero los objetos son ejemplares de clases concretas: Taxi, Camin, etc.

Las interfaces slo definen la signatura de un conjunto de mtodos Las clases implementan interfaces Facilitan la definicin de bibliotecas de componentes reutilizables y armazones software (frameworks)

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

31

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

32

Disear con interfaces


! !

Composicin de objetos
! !

Todas las clases que implementan una interfaz pueden responder a un mismo conjunto de peticiones Los clientes no tienen que preocuparse de las clases especficas de los objetos que utilizan
!

Agregar o componer varios objetos para obtener una mayor funcionalidad Un objeto se puede construir a partir de otros objetos

La implementacin del cliente est menos atada a la evolucin de dichas clases Es posible incluso cambiar unas clases por otras (siempre que implementen las operaciones de la interfaz)

Recomendacin: Programar con interfaces y no con implementaciones


! !

Declarar variables del tipo de interfaces, no de clases Utilizar patrones de creacin que abstraigan el proceso de creacin de objetos concretos

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

33

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

34

Herencia vs. Composicin


!

Herencia vs. Composicin


! !

Herencia: permite definir una clase a partir de otra


!

! !

Reutilizacin de caja blanca: los aspectos internos de la superclase son visibles a las subclases Soportada por el lenguaje de programacin Esttica: se define en tiempo de compilacin

La herencia no permite cambios en tiempo de ejecucin La herencia rompe la encapsulacin


!

! !

Composicin: nueva funcionalidad mediante composicin de objetos


!

! !

Reutilizacin de caja negra: no hay visibilidad de los aspectos internos de los objetos (objetos como cajas negras) Requiere interfaces bien definidas Dinmica: se define en tiempo de ejecucin

La herencia impone al menos una parte de la representacin fsica a las subclases Cambios en la superclase pueden afectar a las subclases Las implementaciones de superclase y subclases estn ligadas Si hacen falta cambios para reutilizar una clase en nuevos dominios de aplicacin habr que cambiarla Limita la flexibilidad y al final la reutilizacin

Por ello es ms prctico utilizar interfaces y clases abstractas


!

Ya que proporcionan menos o ninguna implementacin

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

35

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

36

Herencia vs. Composicin


!

Herencia vs. Composicin


!

La composicin es dinmica, en tiempo de ejecucin


! !

Por tanto, es preferible la composicin de objetos a la herencia de clases

Los objetos adquieren referencias de otros objetos Los objetos tienen que respetar las interfaces de los otros objetos
Exige un diseo cuidadoso de las interfaces

! !

Hay menos dependencias de implementacin Habr ms objetos en el sistema y por tanto el comportamiento del sistema depender de las interacciones entre objetos en vez de estar definido en una clase

Sin embargo,
!

El conjunto de componentes (objetos) no suele ser lo suficientemente rico en la prctica Mediante herencia se pueden crear nuevos componentes que componer con los existentes

La herencia y la composicin trabajan juntas

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

37

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

38

Herencia vs. Composicin


!

Herencia vs. Composicin


!

Delegacin de objetos como alternativa a la herencia


!

Ejemplo de delegacin de objetos como alternativa a la herencia

En la delegacin un objeto que recibe una peticin delega la ejecucin del mtodo a otro objeto (el delegado)
En el fondo esto es lo que hace una subclase respecto a la superclase (al objeto this)

Ejemplo: la clase Ventana, en vez de heredar de Rectangulo (aunque las ventanas son rectangulares) tiene una referencia a un objeto asociado de esa clase y delega algunas operaciones en ella
Si hiciera falta cambiar la forma de la ventana en tiempo de ejecucin, por ejemplo a Circulo, bastara con cambiar la referencia del objeto correspondiente

Rectangulo ancho alto area()

VentanaGUI area()

rectangulo

Rectangulo ancho alto area()

VentanaGUI area()

return rectangulo.area()

return ancho * alto

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

39

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

40

Agregacin vs. Asociacin


!

Cundo usar...?
!

Agregacin: un objeto es propietario o responsable de otro objeto


! !

Herencia, composicin, asociacin, agregacin, .... => Patrones de diseo

Relacin es parte de Implica que ambos objetos tienen el mismo tiempo de vida Un objeto puede solicitar una operacin en otro objeto pero no es responsable de l La relacin de asociacin es ms dbil que la de agregacin

Asociacin: un objeto conoce otro (tiene una referencia)


!

! !

La diferencia es ms de intencin que de implementacin Normalmente hay menos agregaciones que asociaciones pero son ms duraderas
!

Hay asociaciones que slo existen durante la ejecucin de un mtodo

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

41

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

42

Bibliotecas
!

Modelado con objetos


!

Un conjunto de clases e interfaces se pueden agrupar en bibliotecas


!

Dependiendo del sistema que pretendemos implementar realizaremos unas u otras abstracciones del mundo real
!

As pueden ser reutilizadas en programas distintos, mediante:


Herencia de clases Composicin de objetos

Bibliotecas estndar:
! !

El constructor de automviles definir como objetos las partes del motor, las ruedas, el chsis, la transmisin, etc. El conductor ver el volante, el panel de mandos, los pedales, etc. El guardia civil considerar la velocidad y la matrcula

Estn probadas, son robustas y eficientes Suelen adaptarse bien a mltiples dominios

La POO permite representar el problema en trminos especficos del dominio


! !

Recomendacin: Evitar reinventar la rueda


!

Antes de implementar nada, ver si ya existe

Fciles de comprender Verificables por el usuario que define los requisitos del sistema

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

43

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

44

Caractersticas adicionales de los lenguajes OO


! ! ! !

Concurrencia
!

Concurrencia Persistencia Genericidad Excepciones

Procesos vs. Threads En lenguajes de programacin


! ! ! !

Ada: package Smalltalk: clase Process C++: utilizacin de libreras que llaman al sistema Java: clase Thread e interfaz Runnable

Objetos activos vs. Objetos pasivos


!

Objeto activo: tiene su propio hilo de ejecucin y contorla su flujo de aplicacin Objeto pasivo (modelo clsico): slo est activo cuando recibe un mensaje de otro objeto (que le presta el flujo de ejecucin)

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

45

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

46

Persistencia
!

Genericidad
!

Un objeto es persistente cuando su existencia no est ligada a la de su creador


! ! !

Una clase genrica o parametrizada es una plantilla para otras clases


!

En algn proceso se crea el objeto Se guarda su estado en algn repositorio (fichero, BD) Otros procesos pueden recrearlo y volver a guardarlo
!

Ejemplo: con Lista<item> se puede crear Lista<int>, Lista<persona>, Lista<Lista<persona>> La plantilla se puede parametrizar por otras clases, tipos y operaciones

C++ y Ada ofrecen la posibilidad de definir tipos genricos

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

47

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

48

Excepciones
! !

Evolucin de lenguajes de programacin


FortranI Algol 58 Algol 60 Simula I Simula 67 Pascal Basic Algol 68 PL/1 FortranII Fortran IV Cpl BCPL B Scheme Eiffel C Fortran 77 Quick Basic Common LISP Fortran 90 Visual Basic Object - Cobol Flow-Matic Comtran Lisp

Situaciones anormales o excepcionales que tienen lugar durante la invocacin de un mtodo Existen en C++, Ada y Java

Cobol

Algol - w

Smalltalk 80
Ada Modula 2

C ++
Ansi C ++

Ada 90 Object Pascal

Ada 95

Delphi

Java
Juan Pavn Mestras Facultad de Informtica UCM, 2004-05 Conceptos de Orientacin a Objetos

C#
Conceptos de Orientacin a Objetos

49

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

50

Caractersticas de lenguajes de programacin


Basado en objetos Ada- 83 Actor Clipper 5.x + Clases Basado en clases CLOS + Herencia Orientado a objetos C ++ Eiffel
Peter Wegner, Dimensions of Object-Based Language Design, Proceedings OOPSLA '87, ACM SIGPLAN
Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Caractersticas de lenguajes de programacin


Ada 95
Paquetes Herencia Genericidad Control de tipos Vinculacin Concurrencia Recoleccin de basura Excepciones Persistencia Si Simple Si Fuerte Dinmica Si No Si No

C++
Si Multiple Si Fuerte Dinmica y esttica No No Si No

Java
Si Simple No Fuerte Dinmica Si Si Si No

Smalltalk
No Simple No Sin tipos Dinmica No Si No No

Delphi Visual Objects Ada-95 Java


51

Smalltalk

Conceptos de Orientacin a Objetos

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

52

Resumen de conceptos de POO


!

Bibliografa
!

! ! ! ! !

Un programa orientado a objetos es un conjunto de clases que describen el comportamiento de los objetos del sistema La computacin se realiza por objetos que se comunican entre s, solicitando que otros objetos realicen determinadas acciones Los objetos se comunican mediante mensajes Cada objeto tiene su propio estado, que consta de otros objetos Cada objeto es un ejemplar de una clase (agrupacin de objetos) Todos los objetos que son ejemplares de una misma clase pueden realizar las mismas acciones Las clases estn organizadas en una jerarqua de herencia
Conceptos de Orientacin a Objetos

T. Budd, An introduction to Object-Oriented Programming (Third Edition). Pearson Education, 2001 E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Paterns: Elements of Reusable Object-Oriented Software. AddisonWesley, 1994 B. Stroustrup, The C++ Programming Language (Third Edition). Addison-Wesley, 1997 Agustn Froufe. Java 2. Manual de usuario y tutorial. Ed. Ra-Ma J. Snchez, G. Huecas, B. Fernndez y P. Moreno, Iniciacin y referencia: Java 2. Osborne McGraw-Hill, 2001. B. Meyer, Object-Oriented Software Construction (Second Edition). Prentice Hall, 1997

! !

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

53

Juan Pavn Mestras Facultad de Informtica UCM, 2004-05

Conceptos de Orientacin a Objetos

54

Вам также может понравиться