SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances (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
 

Similaire à 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
 

Similaire à 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
 

Dernier

2.15. Calendario Civico Escolar 2024.docx
2.15. Calendario Civico Escolar 2024.docx2.15. Calendario Civico Escolar 2024.docx
2.15. Calendario Civico Escolar 2024.docxCarlosEnriqueArgoteC
 
PLAN DE GESTION DEL RIESGO 2023 - 2024.docx
PLAN DE GESTION DEL RIESGO  2023 - 2024.docxPLAN DE GESTION DEL RIESGO  2023 - 2024.docx
PLAN DE GESTION DEL RIESGO 2023 - 2024.docxpily R.T.
 
el poder del estado en el siglo XXI.pptx
el poder del estado en el siglo XXI.pptxel poder del estado en el siglo XXI.pptx
el poder del estado en el siglo XXI.pptxsubfabian
 
a propósito de la globalización y sus efectos
a propósito de la globalización y sus efectosa propósito de la globalización y sus efectos
a propósito de la globalización y sus efectossubfabian
 
Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )portafoliodigitalyos
 
Seguridad y virus informáticos 12°B 2024
Seguridad y virus informáticos 12°B 2024Seguridad y virus informáticos 12°B 2024
Seguridad y virus informáticos 12°B 2024sergeycrastz06
 
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...Chema R.
 
TEMA EGIPTO.pdf. Presentación civilización
TEMA EGIPTO.pdf. Presentación civilizaciónTEMA EGIPTO.pdf. Presentación civilización
TEMA EGIPTO.pdf. Presentación civilizaciónVasallo1
 
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptxFESARAUGUSTOFANDIORI
 
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdfEdiciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdfDemetrio Ccesa Rayme
 
RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...
RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...
RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...helmer del pozo cruz
 
novelas-cortas--3.pdf Analisis introspectivo y retrospectivo, sintesis
novelas-cortas--3.pdf Analisis introspectivo y retrospectivo, sintesisnovelas-cortas--3.pdf Analisis introspectivo y retrospectivo, sintesis
novelas-cortas--3.pdf Analisis introspectivo y retrospectivo, sintesisPsicClinGlendaBerrez
 
Hidrocarburos cíclicos, EJERCICIOS, TEORIA Y MÁS.pptx
Hidrocarburos cíclicos, EJERCICIOS, TEORIA Y MÁS.pptxHidrocarburos cíclicos, EJERCICIOS, TEORIA Y MÁS.pptx
Hidrocarburos cíclicos, EJERCICIOS, TEORIA Y MÁS.pptxNathaly122089
 
ACERTIJO CÁLCULOS MATEMÁGICOS EN LA CARRERA OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO CÁLCULOS MATEMÁGICOS EN LA CARRERA OLÍMPICA. Por JAVIER SOLIS NOYOLAACERTIJO CÁLCULOS MATEMÁGICOS EN LA CARRERA OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO CÁLCULOS MATEMÁGICOS EN LA CARRERA OLÍMPICA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Estudios Sociales libro 8vo grado Básico
Estudios Sociales libro 8vo grado BásicoEstudios Sociales libro 8vo grado Básico
Estudios Sociales libro 8vo grado Básicomaxgamesofficial15
 
ciclos biogeoquimicas y flujo de materia ecosistemas
ciclos biogeoquimicas y flujo de materia ecosistemasciclos biogeoquimicas y flujo de materia ecosistemas
ciclos biogeoquimicas y flujo de materia ecosistemasFlor Idalia Espinoza Ortega
 

Dernier (20)

2.15. Calendario Civico Escolar 2024.docx
2.15. Calendario Civico Escolar 2024.docx2.15. Calendario Civico Escolar 2024.docx
2.15. Calendario Civico Escolar 2024.docx
 
¿Que es Fuerza? online 2024 Repaso CRECE.pptx
¿Que es Fuerza? online 2024 Repaso CRECE.pptx¿Que es Fuerza? online 2024 Repaso CRECE.pptx
¿Que es Fuerza? online 2024 Repaso CRECE.pptx
 
PLAN DE GESTION DEL RIESGO 2023 - 2024.docx
PLAN DE GESTION DEL RIESGO  2023 - 2024.docxPLAN DE GESTION DEL RIESGO  2023 - 2024.docx
PLAN DE GESTION DEL RIESGO 2023 - 2024.docx
 
el poder del estado en el siglo XXI.pptx
el poder del estado en el siglo XXI.pptxel poder del estado en el siglo XXI.pptx
el poder del estado en el siglo XXI.pptx
 
a propósito de la globalización y sus efectos
a propósito de la globalización y sus efectosa propósito de la globalización y sus efectos
a propósito de la globalización y sus efectos
 
Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )
 
Seguridad y virus informáticos 12°B 2024
Seguridad y virus informáticos 12°B 2024Seguridad y virus informáticos 12°B 2024
Seguridad y virus informáticos 12°B 2024
 
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...
 
TEMA EGIPTO.pdf. Presentación civilización
TEMA EGIPTO.pdf. Presentación civilizaciónTEMA EGIPTO.pdf. Presentación civilización
TEMA EGIPTO.pdf. Presentación civilización
 
flujo de materia y energía ecosistemas.
flujo de materia y  energía ecosistemas.flujo de materia y  energía ecosistemas.
flujo de materia y energía ecosistemas.
 
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
 
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdfEdiciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
 
La historia de la vida estudiantil a 102 años de la fundación de las Normales...
La historia de la vida estudiantil a 102 años de la fundación de las Normales...La historia de la vida estudiantil a 102 años de la fundación de las Normales...
La historia de la vida estudiantil a 102 años de la fundación de las Normales...
 
RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...
RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...
RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...
 
novelas-cortas--3.pdf Analisis introspectivo y retrospectivo, sintesis
novelas-cortas--3.pdf Analisis introspectivo y retrospectivo, sintesisnovelas-cortas--3.pdf Analisis introspectivo y retrospectivo, sintesis
novelas-cortas--3.pdf Analisis introspectivo y retrospectivo, sintesis
 
Hidrocarburos cíclicos, EJERCICIOS, TEORIA Y MÁS.pptx
Hidrocarburos cíclicos, EJERCICIOS, TEORIA Y MÁS.pptxHidrocarburos cíclicos, EJERCICIOS, TEORIA Y MÁS.pptx
Hidrocarburos cíclicos, EJERCICIOS, TEORIA Y MÁS.pptx
 
ACERTIJO CÁLCULOS MATEMÁGICOS EN LA CARRERA OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO CÁLCULOS MATEMÁGICOS EN LA CARRERA OLÍMPICA. Por JAVIER SOLIS NOYOLAACERTIJO CÁLCULOS MATEMÁGICOS EN LA CARRERA OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO CÁLCULOS MATEMÁGICOS EN LA CARRERA OLÍMPICA. Por JAVIER SOLIS NOYOLA
 
Estudios Sociales libro 8vo grado Básico
Estudios Sociales libro 8vo grado BásicoEstudios Sociales libro 8vo grado Básico
Estudios Sociales libro 8vo grado Básico
 
ciclos biogeoquimicas y flujo de materia ecosistemas
ciclos biogeoquimicas y flujo de materia ecosistemasciclos biogeoquimicas y flujo de materia ecosistemas
ciclos biogeoquimicas y flujo de materia ecosistemas
 
Power Point : Motivados por la esperanza
Power Point : Motivados por la esperanzaPower Point : Motivados por la esperanza
Power Point : Motivados por la esperanza
 

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