SlideShare una empresa de Scribd logo
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/
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
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
                                                                         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
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
Conceptos Básicos de la
            Programación O.O.




Departamento de Lenguajes y
Ciencias de la Computación    Programación Orientada a Objetos   6
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
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
¿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
¿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
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
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
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
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
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
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
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
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
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
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
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
Conceptos Avanzados de la
        Programación O.O.




Departamento de Lenguajes y
Ciencias de la Computación    Programación Orientada a Objetos   22
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
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
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
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
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

Más contenido relacionado

PPTX
PROGRAMACION WEB
PPTX
ananossa
PPT
Tema 1 2_poo
PPTX
Lenguaje de programación maria
PPTX
Presentación1 (3)
PPT
PPT
Lenguaje de programacion
PROGRAMACION WEB
ananossa
Tema 1 2_poo
Lenguaje de programación maria
Presentación1 (3)
Lenguaje de programacion

La actualidad más candente (16)

PPTX
PDF
C2 elementos de un programa
PPS
DOC
PPTX
Paradigmas de programación
PPTX
Anamaria
PDF
Capitulo 4
PPTX
Programacion web introduccion 11 3
PDF
Taller 2 conceptualizacion
PDF
Java Sobrecarga y Recursividad
PPT
Estilos de programación y sus lenguajes
PPTX
Programacion orientada a objetos Unidad 1-intro al paradigma poo
PPS
Programacion
PDF
C2 elementos de un programa
Paradigmas de programación
Anamaria
Capitulo 4
Programacion web introduccion 11 3
Taller 2 conceptualizacion
Java Sobrecarga y Recursividad
Estilos de programación y sus lenguajes
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion
Publicidad

Destacado (20)

PDF
Informe stern, la economía del cambio climático
PPTX
Redes sociales y aulas virtuales
DOC
Anexo 2
PDF
Sindicacion de contenidos_con_canales_rss
PPTX
Las tic`s como herramienta fundamental en la educación
PDF
Cuidados del agua
PDF
anteproyecto
PPT
Madera1eso
PDF
Strategic management managing mergers and acquisitions
PDF
Strategic management managing mergers and acquisitions
PDF
Impact of Merger on Stress Level of Employees (A Case Study of Erstwhile Bank...
PDF
EMPLOYEE ENGAGEMENT & RETENTION: A REVIEW OF LITERATURE
PDF
Nine Pages You Should Optimize on Your Blog and How
PDF
African Americans: College Majors and Earnings
PDF
GAME ON! Integrating Games and Simulations in the Classroom
PDF
Digitized Student Development, Social Media, and Identity
PDF
Responding to Academically Distressed Students
PDF
Study: The Future of VR, AR and Self-Driving Cars
PPTX
Network Effects
PDF
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
Informe stern, la economía del cambio climático
Redes sociales y aulas virtuales
Anexo 2
Sindicacion de contenidos_con_canales_rss
Las tic`s como herramienta fundamental en la educación
Cuidados del agua
anteproyecto
Madera1eso
Strategic management managing mergers and acquisitions
Strategic management managing mergers and acquisitions
Impact of Merger on Stress Level of Employees (A Case Study of Erstwhile Bank...
EMPLOYEE ENGAGEMENT & RETENTION: A REVIEW OF LITERATURE
Nine Pages You Should Optimize on Your Blog and How
African Americans: College Majors and Earnings
GAME ON! Integrating Games and Simulations in the Classroom
Digitized Student Development, Social Media, and Identity
Responding to Academically Distressed Students
Study: The Future of VR, AR and Self-Driving Cars
Network Effects
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
Publicidad

Similar a Transp objetos (20)

PPTX
Programación Web Introducción
PPTX
Historia del ecuador
PDF
Introduccion al Octave
PPTX
Pracita 09
PDF
Intro01b-Intro LP-I of the class in the university
PPT
clases de herramientas lorenita
PPTX
Conceptos de algoritmos
PPT
Abstracción y Encapsulación de en la programación Orientada a objetos
PPTX
Programacion kmi
PPTX
Programación Orientada a Objetos Programación Orientada a Objetos
PPTX
Programación Orientada Objetos Java Unidad 1
PDF
Clase02 paradigmas
DOCX
Entornos de lenguaje c
PDF
ALP Unidad 2: Representación de la información en datos simples y estructuras...
PPTX
Programacion orientada objeto (poo)
PPT
Algoritmos
PPT
2 Conceptos De Programacion
PDF
Curso de lenguaje c prev
Programación Web Introducción
Historia del ecuador
Introduccion al Octave
Pracita 09
Intro01b-Intro LP-I of the class in the university
clases de herramientas lorenita
Conceptos de algoritmos
Abstracción y Encapsulación de en la programación Orientada a objetos
Programacion kmi
Programación Orientada a Objetos Programación Orientada a Objetos
Programación Orientada Objetos Java Unidad 1
Clase02 paradigmas
Entornos de lenguaje c
ALP Unidad 2: Representación de la información en datos simples y estructuras...
Programacion orientada objeto (poo)
Algoritmos
2 Conceptos De Programacion
Curso de lenguaje c prev

Último (20)

DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PDF
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PDF
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PPTX
Presentación de la Cetoacidosis diabetica.pptx
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
PDF
TOMO II - LITERATURA.pd plusenmas ultras
DOCX
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PLAN DE CASTELLANO 2021 actualizado a la normativa
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
V UNIDAD - PRIMER GRADO. del mes de agosto
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
V UNIDAD - SEGUNDO GRADO. del mes de agosto
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Presentación de la Cetoacidosis diabetica.pptx
Punto Critico - Brian Tracy Ccesa007.pdf
TOMO II - LITERATURA.pd plusenmas ultras
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf

Transp objetos

  • 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. 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. Introducción Histórica Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 3
  • 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. 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. 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. 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. 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. ¿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. ¿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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Conceptos Avanzados de la Programación O.O. Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos 22
  • 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. 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. 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. 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. 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