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 (16)

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
 

Destacado

Informe stern, la economía del cambio climático
Informe stern, la economía del cambio climáticoInforme stern, la economía del cambio climático
Informe stern, la economía del cambio climáticoRakakakata
 
Redes sociales y aulas virtuales
Redes sociales y aulas virtualesRedes sociales y aulas virtuales
Redes sociales y aulas virtualeskailml
 
Anexo 2
Anexo 2Anexo 2
Anexo 2iejcg
 
Sindicacion de contenidos_con_canales_rss
Sindicacion de contenidos_con_canales_rssSindicacion de contenidos_con_canales_rss
Sindicacion de contenidos_con_canales_rssmacedonia cuadros taipe
 
Las tic`s como herramienta fundamental en la educación
Las tic`s como herramienta fundamental en la educaciónLas tic`s como herramienta fundamental en la educación
Las tic`s como herramienta fundamental en la educaciónBrandon LUna
 
Cuidados del agua
Cuidados del aguaCuidados del agua
Cuidados del aguatamanicis
 
Strategic management managing mergers and acquisitions
Strategic management managing mergers and acquisitionsStrategic management managing mergers and acquisitions
Strategic management managing mergers and acquisitionsIJBBR
 
Strategic management managing mergers and acquisitions
Strategic management managing mergers and acquisitionsStrategic management managing mergers and acquisitions
Strategic management managing mergers and acquisitionsIJBBR
 
Impact of Merger on Stress Level of Employees (A Case Study of Erstwhile Bank...
Impact of Merger on Stress Level of Employees (A Case Study of Erstwhile Bank...Impact of Merger on Stress Level of Employees (A Case Study of Erstwhile Bank...
Impact of Merger on Stress Level of Employees (A Case Study of Erstwhile Bank...Waqas Tariq
 
EMPLOYEE ENGAGEMENT & RETENTION: A REVIEW OF LITERATURE
EMPLOYEE ENGAGEMENT & RETENTION: A REVIEW OF LITERATUREEMPLOYEE ENGAGEMENT & RETENTION: A REVIEW OF LITERATURE
EMPLOYEE ENGAGEMENT & RETENTION: A REVIEW OF LITERATUREIJBBR
 
Nine Pages You Should Optimize on Your Blog and How
Nine Pages You Should Optimize on Your Blog and HowNine Pages You Should Optimize on Your Blog and How
Nine Pages You Should Optimize on Your Blog and HowLeslie Samuel
 
African Americans: College Majors and Earnings
African Americans: College Majors and Earnings African Americans: College Majors and Earnings
African Americans: College Majors and Earnings CEW Georgetown
 
GAME ON! Integrating Games and Simulations in the Classroom
GAME ON! Integrating Games and Simulations in the Classroom GAME ON! Integrating Games and Simulations in the Classroom
GAME ON! Integrating Games and Simulations in the Classroom Brian Housand
 
Digitized Student Development, Social Media, and Identity
Digitized Student Development, Social Media, and IdentityDigitized Student Development, Social Media, and Identity
Digitized Student Development, Social Media, and IdentityPaul Brown
 
Responding to Academically Distressed Students
Responding to Academically Distressed StudentsResponding to Academically Distressed Students
Responding to Academically Distressed StudentsMr. Ronald Quileste, PhD
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 
Network Effects
Network EffectsNetwork Effects
Network Effectsa16z
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your BusinessBarry Feldman
 

Destacado (20)

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

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

PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 

Último (20)

Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 

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