SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
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

La actualidad más candente (17)

Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Kianny
KiannyKianny
Kianny
 
C2 elementos de un programa
C2 elementos de un programaC2 elementos de un programa
C2 elementos de un programa
 
Tema2
Tema2Tema2
Tema2
 
Presentacion2
Presentacion2Presentacion2
Presentacion2
 
Unidad9
Unidad9Unidad9
Unidad9
 
Tad
TadTad
Tad
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Anamaria
AnamariaAnamaria
Anamaria
 
Capitulo 4
Capitulo 4Capitulo 4
Capitulo 4
 
Programacion web introduccion 11 3
Programacion web introduccion 11 3Programacion web introduccion 11 3
Programacion web introduccion 11 3
 
Taller 2 conceptualizacion
Taller 2 conceptualizacionTaller 2 conceptualizacion
Taller 2 conceptualizacion
 
Java Sobrecarga y Recursividad
Java Sobrecarga y RecursividadJava Sobrecarga y Recursividad
Java Sobrecarga y Recursividad
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajes
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma poo
 
Programacion
ProgramacionProgramacion
Programacion
 
Avance 4
Avance 4Avance 4
Avance 4
 

Similar a Transp objetos

Historia del ecuador
Historia del ecuadorHistoria del ecuador
Historia del ecuadoraldo_rzb
 
Introduccion al Octave
Introduccion al OctaveIntroduccion al Octave
Introduccion al Octavefranpenabra
 
Pracita 09
Pracita 09Pracita 09
Pracita 09eduorbe
 
Intro01b-Intro LP-I of the class in the university
Intro01b-Intro LP-I of the class in the universityIntro01b-Intro LP-I of the class in the university
Intro01b-Intro LP-I of the class in the universitycesleogame
 
Abstracción y Encapsulación de en la programación Orientada a objetos
Abstracción y Encapsulación de en la programación Orientada a objetosAbstracción y Encapsulación de en la programación Orientada a objetos
Abstracción y Encapsulación de en la programación Orientada a objetosJoseEstebanTelloEstr
 
Programación Orientada a Objetos Programación Orientada a Objetos
Programación Orientada a Objetos Programación Orientada a ObjetosProgramación Orientada a Objetos Programación Orientada a Objetos
Programación Orientada a Objetos Programación Orientada a Objetosanytrix
 
Entornos de lenguaje c
Entornos de lenguaje cEntornos de lenguaje c
Entornos de lenguaje calejanlaura
 
ALP Unidad 2: Representación de la información en datos simples y estructuras...
ALP Unidad 2: Representación de la información en datos simples y estructuras...ALP Unidad 2: Representación de la información en datos simples y estructuras...
ALP Unidad 2: Representación de la información en datos simples y estructuras...Franklin Parrales Bravo
 
Programacion orientada objeto (poo)
Programacion orientada objeto (poo)Programacion orientada objeto (poo)
Programacion orientada objeto (poo)YamilethRivas3
 
2 Conceptos De Programacion
2 Conceptos De Programacion2 Conceptos De Programacion
2 Conceptos De ProgramacionRubén Márquez
 
Curso de lenguaje c prev
Curso de lenguaje c prevCurso de lenguaje c prev
Curso de lenguaje c prevjtk1
 

Similar a Transp objetos (20)

Transp objetos
Transp objetosTransp objetos
Transp objetos
 
Programación Web Introducción
Programación Web IntroducciónProgramación Web Introducción
Programación Web Introducción
 
Lto tema1
Lto tema1Lto tema1
Lto tema1
 
Historia del ecuador
Historia del ecuadorHistoria del ecuador
Historia del ecuador
 
Introduccion al Octave
Introduccion al OctaveIntroduccion al Octave
Introduccion al Octave
 
Pracita 09
Pracita 09Pracita 09
Pracita 09
 
Intro01b-Intro LP-I of the class in the university
Intro01b-Intro LP-I of the class in the universityIntro01b-Intro LP-I of the class in the university
Intro01b-Intro LP-I of the class in the university
 
clases de herramientas lorenita
clases de herramientas lorenitaclases de herramientas lorenita
clases de herramientas lorenita
 
Conceptos de algoritmos
Conceptos de algoritmosConceptos de algoritmos
Conceptos de algoritmos
 
Abstracción y Encapsulación de en la programación Orientada a objetos
Abstracción y Encapsulación de en la programación Orientada a objetosAbstracción y Encapsulación de en la programación Orientada a objetos
Abstracción y Encapsulación de en la programación Orientada a objetos
 
Programacion kmi
Programacion kmiProgramacion kmi
Programacion kmi
 
Programación Orientada a Objetos Programación Orientada a Objetos
Programación Orientada a Objetos Programación Orientada a ObjetosProgramación Orientada a Objetos Programación Orientada a Objetos
Programación Orientada a Objetos Programación Orientada a Objetos
 
Programación Orientada Objetos Java Unidad 1
Programación Orientada Objetos Java Unidad 1Programación Orientada Objetos Java Unidad 1
Programación Orientada Objetos Java Unidad 1
 
Clase02 paradigmas
Clase02 paradigmasClase02 paradigmas
Clase02 paradigmas
 
Entornos de lenguaje c
Entornos de lenguaje cEntornos de lenguaje c
Entornos de lenguaje c
 
ALP Unidad 2: Representación de la información en datos simples y estructuras...
ALP Unidad 2: Representación de la información en datos simples y estructuras...ALP Unidad 2: Representación de la información en datos simples y estructuras...
ALP Unidad 2: Representación de la información en datos simples y estructuras...
 
Programacion orientada objeto (poo)
Programacion orientada objeto (poo)Programacion orientada objeto (poo)
Programacion orientada objeto (poo)
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
2 Conceptos De Programacion
2 Conceptos De Programacion2 Conceptos De Programacion
2 Conceptos De Programacion
 
Curso de lenguaje c prev
Curso de lenguaje c prevCurso de lenguaje c prev
Curso de lenguaje c prev
 

Último

Apunte de clase Pisos y Revestimientos 3
Apunte de clase Pisos y Revestimientos 3Apunte de clase Pisos y Revestimientos 3
Apunte de clase Pisos y Revestimientos 3Gonella
 
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfPROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfMaritza438836
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfHannyDenissePinedaOr
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...Martin M Flynn
 
Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaMarco Camacho
 
Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2Gonella
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.monthuerta17
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).hebegris04
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdfEDNAMONICARUIZNIETO
 
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxMartaChaparro1
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdfGabrieldeJesusLopezG
 
BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................ScarletMedina4
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Gonella
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxRosabel UA
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Carol Andrea Eraso Guerrero
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfJosé Hecht
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docxMagalyDacostaPea
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.karlazoegarciagarcia
 

Último (20)

Apunte de clase Pisos y Revestimientos 3
Apunte de clase Pisos y Revestimientos 3Apunte de clase Pisos y Revestimientos 3
Apunte de clase Pisos y Revestimientos 3
 
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfPROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdf
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
 
Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria Farmaceutica
 
Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
 
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
 
BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................
 
¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptx
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
 

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