Programación Orientada a Objetos

      Departamento de Lenguajes y
       Ciencias de la Computación

         E.T.S.I. T...
Contenido

• Introducción histórica
• Conceptos básicos de la Programación O. O.
• Conceptos avanzados de la Programación ...
Introducción Histórica




Departamento de Lenguajes y
Ciencias de la Computación    Programación Orientada a Objetos   3
Evolución de los Lenguajes de
  A
  B
                       Programación                                      A
         ...
Evolución de los Lenguajes
                       Orientados a Objetos
•     Simula (Nygaard, 60s)
•     Smalltalk (Xerox ...
Conceptos Básicos de la
            Programación O.O.




Departamento de Lenguajes y
Ciencias de la Computación    Progra...
Clases y Objetos

• CLASE = SUBPROGRAMAS + VARIABLES
              Criterio de Modularización
              Estado + Compo...
VEHÍCULO


                                 ANIMAL




                                                           PUNTO


...
¿Qué es una Clase?
Caja negra que oculta en su implementación:

      Atributos: variables que codifican el estado de una
...
¿Qué es un Objeto?
Instancia de una clase:

      Cada objeto de una clase tiene su propia copia de los
      atributos (e...
Implementador vs. Usuario
• Las clases son cajas negras con
        Interfaz (uso)
        Implementación (funcionamiento)...
Un ejemplo: la clase Punto
                                      Punto             Atributos = Estado Propio
             ...
Definiendo la clase Punto


              INTERFAZ CLASE Punto
                MÉTODOS
                    cambiar_x(E R n...
Definición de Métodos
• El objeto afectado no aparece como argumento
  del método:

                                  tras...
Implementando la clase Punto (I)
         IMPLEMENTACIÓN CLASE Punto
           ATRIBUTOS
  Estado     R x,y;

           ...
Implementando la clase Punto (II)
                      trasladar(E R dx,dy)
                      INICIO
                ...
Usando la clase Punto
• El usuario declara objetos como cualquier
  otra variable:
          Punto p1, p2;

• Como usuario...
Invocación de Métodos
• Los métodos se invocan mediante paso de
  mensajes:

     P.trasladar(4,-1) = trasladar(P,4,-1)


...
Relación de Composición
• la composición permite expresar una relación de
  tipo “está compuesto por”

• Por ejemplo, un s...
Implementando la Composición (I)


    INTERFAZ CLASE Segmento
      MÉTODOS
          trasladar(E R dx,dy);
          R l...
Implementando la Composición (II)
       IMPLEMENTACIÓN CLASE Segmento
         ATRIBUTOS
           Punto Orig, Dest;
   ...
Conceptos Avanzados de la
        Programación O.O.




Departamento de Lenguajes y
Ciencias de la Computación    Programa...
Herencia
                                                        FiguraCerrada

• Posibilidad de reutilizar código
• Algo ...
Herencia
Padres / Ascendientes Una clase heredera proporciona los
                    •
          Punto       atributos y ...
Herencia Múltiple
• Existen lenguajes con herencia múltiple, lo que
  permite que una clase reutilice la funcionalidad
  o...
Herencia y Redefinición
• En la herencia las clases herederas pueden
  heredar un método o servicio, y luego redefinirlo,
...
Polimorfismo sobre los datos

• Una variable puede referirse a objetos de clases distintas
  de la que se ha declarado.

•...
Upcoming SlideShare
Loading in …5
×

Transp objetos

450 views

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
450
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transp objetos

  1. 1. Programación Orientada a Objetos Departamento de Lenguajes y Ciencias de la Computación E.T.S.I. Telecomunicación Universidad de Málaga http://www.lcc.uma.es/
  2. 2. Contenido • Introducción histórica • Conceptos básicos de la Programación O. O. • Conceptos avanzados de la Programación O.O. Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 2
  3. 3. Introducción Histórica Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 3
  4. 4. Evolución de los Lenguajes de A B Programación A B S S T R Lenguajes Direcciones de T Instrucciones R A Máquina / Memoria, C Máquina A C Ensamblador Registros C I C Ó Variables de Expresiones, FORTRAN I N Tipos Predef., Ó Funciones O Arrays N P E Definición de D Estr. Control, PASCAL R Tipos, E A Subprogramas C Punteros D I O Ocultamiento Tipos A MODULA-2 T N Información, Abstractos de A ADA O L Interfaces Datos S Métodos, Lenguajes Clases, Mensajes Orientados a Objetos Objetos Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 4
  5. 5. Evolución de los Lenguajes Orientados a Objetos • Simula (Nygaard, 60s) • Smalltalk (Xerox PARC, 70s) • Eiffel (Meyer, 80s) • C++ (Stroustrup, 80s) • Java (Sun Microsystems, 90s) • C# (Microsoft, 00s) Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 5
  6. 6. Conceptos Básicos de la Programación O.O. Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 6
  7. 7. Clases y Objetos • CLASE = SUBPROGRAMAS + VARIABLES Criterio de Modularización Estado + Comportamiento Entidad estática Clase ≈ Tipo • OBJETO = Instancia de una CLASE Entidad dinámica Cada objeto tiene su propio estado Objetos de una misma clase comparten un comportamiento Objeto ≈ Variable Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 7
  8. 8. VEHÍCULO ANIMAL PUNTO (1,3) (5,2.5) FIGURA (2,2) (2,1) Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 8
  9. 9. ¿Qué es una Clase? Caja negra que oculta en su implementación: Atributos: variables que codifican el estado de una instancia de la clase (objeto) Métodos: subprogramas que describen el comportamiento de un objeto de la clase Una clase es semejante a un tipo: Atributos: estructura de datos Métodos: operaciones sobre el tipo Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 9
  10. 10. ¿Qué es un Objeto? Instancia de una clase: Cada objeto de una clase tiene su propia copia de los atributos (estado propio) Todos los objetos de una clase comparten los mismos métodos (comportamiento común) Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 10
  11. 11. Implementador vs. Usuario • Las clases son cajas negras con Interfaz (uso) Implementación (funcionamiento) • El implementador se encarga de definir el interfaz y de desarrollar la implementación • El usuario empleará los objetos de la clase exclusivamente a través del interfaz Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 11
  12. 12. Un ejemplo: la clase Punto Punto Atributos = Estado Propio R x,y; Clase trasladar(a,b) Métodos = Comportamiento Común distancia(pto) (Punto) x= -1 y= 4 Objetos (Punto) x= 2 y= 3 (Punto) x= 5 y= 7 Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 12
  13. 13. Definiendo la clase Punto INTERFAZ CLASE Punto MÉTODOS cambiar_x(E R nx); Comportamiento cambiar_y(E R ny); trasladar(E R dx,dy); R distancia(E Punto p); FIN Punto; Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 13
  14. 14. Definición de Métodos • El objeto afectado no aparece como argumento del método: trasladar(E R dx,dy); • En realidad, el objeto afectado es un argumento de entrada/salida implícito llamado éste: ALGORITMO trasladar(ES Punto éste,E R dx,dy); Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 14
  15. 15. Implementando la clase Punto (I) IMPLEMENTACIÓN CLASE Punto ATRIBUTOS Estado R x,y; MÉTODOS cambiar_x(E R nx) INICIO x = nx; // x == éste.x acceso al FIN argumento cambiar_y(E R ny) implícito INICIO y = ny; // y == éste.y FIN Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 15
  16. 16. Implementando la clase Punto (II) trasladar(E R dx,dy) INICIO x = x+dx; y = y+dy; FIN R distancia(E Punto p) INICIO DEVOLVER sqrt(pow(x-p.x,2) + pow(y-p.y,2)) FIN acceso total a otros objetos FIN Punto; de la misma clase Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 16
  17. 17. Usando la clase Punto • El usuario declara objetos como cualquier otra variable: Punto p1, p2; • Como usuario, no se puede acceder a la parte privada de los objetos: p1.X = 2; Error • El usuario sólo puede manipular un Punto invocando a los métodos del interfaz de la clase Punto (comportamiento) Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 17
  18. 18. Invocación de Métodos • Los métodos se invocan mediante paso de mensajes: P.trasladar(4,-1) = trasladar(P,4,-1) • El objeto P es el receptor del mensaje: trasladar(4,-1) (Punto) x= 5 x=1 P y= 2 y=3 Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 18
  19. 19. Relación de Composición • la composición permite expresar una relación de tipo “está compuesto por” • Por ejemplo, un segmento está compuesto por dos puntos: origen y extremo Punto Segmento R x,y; Punto Orig, Ext; trasladar(a,b) trasladar(a,b) distancia(pto) longitud() Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 19
  20. 20. Implementando la Composición (I) INTERFAZ CLASE Segmento MÉTODOS trasladar(E R dx,dy); R longitud(); FIN Segmento; Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 20
  21. 21. Implementando la Composición (II) IMPLEMENTACIÓN CLASE Segmento ATRIBUTOS Punto Orig, Dest; MÉTODOS trasladar(E R dx,dy) INICIO Orig.trasladar(dx,dy); Dest.trasladar(dx,dy); FIN R longitud(); INICIO DEVOLVER Orig.distancia(Dest); FIN FIN Segmento; Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 21
  22. 22. Conceptos Avanzados de la Programación O.O. Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 22
  23. 23. Herencia FiguraCerrada • Posibilidad de reutilizar código • Algo más que: incluir ficheros, o Polígono Elipse importar módulos • Distintos tipos de herencia: simple / múltiple Pentágono Cuadrilátero Círculo estricta selectiva de implementación/de interfaz Rectángulo Rombo Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 23
  24. 24. Herencia Padres / Ascendientes Una clase heredera proporciona los • Punto atributos y métodos de la clase heredada, y puede añadir otros nuevos. • La clase heredera puede modificar el comportamiento heredado (por ejemplo, redefiniendo algún método heredado) . • La herencia es transitiva. Partícula • Los objetos de una clase que hereda de otra pueden verse como objetos de esta Hijos / Descendientes última. Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 24
  25. 25. Herencia Múltiple • Existen lenguajes con herencia múltiple, lo que permite que una clase reutilice la funcionalidad ofrecida por varias clases. Pensionista TrabajadorActivo MedioPensionista Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 25
  26. 26. Herencia y Redefinición • En la herencia las clases herederas pueden heredar un método o servicio, y luego redefinirlo, modificando su implementación. Suma de distancias entre Polígono puntos consecutivos Cuadrado R lado; R perímetro( ); R perimetro( ); Resultado = 4*lado Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 26
  27. 27. Polimorfismo sobre los datos • Una variable puede referirse a objetos de clases distintas de la que se ha declarado. • La restricción dada por la herencia, permite construir estructuras con elementos de naturaleza distinta, pero con un comportamiento común: Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 27

×