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. Informática
      Universidad de Málaga
Contenido

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




Programación Modular. Programación Orientada a Objetos   2
Introducción Histórica




Programación Modular. Programación Orientada a Objetos   3
Evolución de los Lenguajes de
       A
       B
       S
           Programación                                                   A
                                                                          B
                                                                          S
       T
                                         Lenguajes       Direcciones de   T
       R
                 Instrucciones                                            R
       A                                 Máquina /         Memoria,       A
       C           Máquina
       C                                Ensamblador        Registros      C
       I                                                                  C
       Ó                                                 Variables de
                 Expresiones,            FORTRAN
                                                                          I
       N                                                 Tipos Predef.,   Ó
                  Funciones
       O                                                    Arrays        N
       P
       E                                                 Definición de    D
       R
                Estr. Control,             PASCAL           Tipos,        E
       A        Subprogramas
       C                                                  Punteros
                                                                          D
       I
       O         Ocultamiento                               Tipos         A
       N                                 MODULA-2                         T
                 Información,                            Abstractos de
       A                                   ADA                            O
       L          Interfaces                                Datos         S

                    Métodos,             Lenguajes         Clases,
                    Mensajes            Orientados a       Objetos
                                          Objetos
Programación Modular. 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)


Programación Modular. Programación Orientada a Objetos   5
Conceptos básicos de la
     programación orientada a objetos




Programación Modular. 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


Programación Modular. Programación Orientada a Objetos          7
VEHÍCULO


                                   ANIMAL




                                                                     PUNTO


                                                         (1,3)
                                                                       (5,2.5)
FIGURA                                                       (2,2)
                                                             (2,1)


Programación Modular. 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
Programación Modular. 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)


Programación Modular. Programación Orientada a Objetos   10
Implementador frente a 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
Programación Modular. Programación Orientada a Objetos   11
Un ejemplo: la clase Punto
                                  Punto                    Atributos = Estado Propio

        Clase
                             R x,y;
                             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
  Programación Modular. Programación Orientada a Objetos                               12
Definición de 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;




  Programación Modular. 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);

 Programación Modular. Programación Orientada a Objetos   14
Implementación de la clase Punto (1)
         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
   Programación Modular. Programación Orientada a Objetos   15
Implementación de la clase Punto (2)
               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
                                                       de la misma clase 16
               FIN Punto;
  Programación Modular. Programación Orientada a Objetos
Uso de 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
  a invocando a los métodos del interfaz de la
  clase Punto (comportamiento)
Programación Modular. 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=1
                                                           P
                                      y=3


  Programación Modular. Programación Orientada a Objetos       18
Relación de Composición
• la composición permite expresar a 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()



  Programación Modular. Programación Orientada a Objetos                 19
Implementación de la Composición (1)

          INTERFAZ CLASE Segmento
            MÉTODOS
                trasladar(E R dx,dy);
                R longitud();
          FIN Segmento;




  Programación Modular. Programación Orientada a Objetos   20
Implementación de la Composición (2)
            IMPLEMENTACIÓN CLASE Segmento
              ATRIBUTOS
                Punto Orig, Dest
              MÉTODOS
                trasladar(E R dx,dy)
                INICIO
                  Orig.trasladar(dx,dy)
                  Ext.trasladar(dx,dy)
                FIN
                R longitud();
                INICIO
                  DEVOLVER Orig.distancia(Ext)
                FIN
            FIN Segmento;
  Programación Modular. Programación Orientada a Objetos   21
Conceptos avanzados de la
     programación orientada a objetos




Programación Modular. Programación Orientada a Objetos   22
Herencia

• Posibilidad de reutilizar código                                     FiguraCerrada

• Algo más que:
         • incluir ficheros, o
         • importar módulos                                    Polígono                Elipse

• Distintos tipos de herencia:
         •   simple / múltiple
                                    Pentágono                    Cuadrilátero          Círculo
         •   estricta
         •   selectiva
         •   de implementación/de interfaz
                                                          Rectángulo         Rombo
 Programación Modular. 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) .
        Partícula • La herencia es transitiva.
                    • Los objetos de una clase que hereda de
Hijos / Descendientes otra pueden verse como objetos de esta
                      última.
     Programación Modular. 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




Programación Modular. 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



  Programación Modular. 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:




  Programación Modular. Programación Orientada a Objetos   27

Más contenido relacionado

La actualidad más candente

La actualidad más candente (15)

JavaWorld - SCJP - Capitulo 4
JavaWorld - SCJP - Capitulo 4JavaWorld - SCJP - Capitulo 4
JavaWorld - SCJP - Capitulo 4
 
Unidad i antecedentes
Unidad i antecedentesUnidad i antecedentes
Unidad i antecedentes
 
Programación
ProgramaciónProgramación
Programación
 
Manual de Java
Manual de JavaManual de Java
Manual de Java
 
Presentacion ip pseudocodigo_2012_i
Presentacion ip pseudocodigo_2012_iPresentacion ip pseudocodigo_2012_i
Presentacion ip pseudocodigo_2012_i
 
Programación
ProgramaciónProgramación
Programación
 
Algoritsmos unefa
Algoritsmos unefaAlgoritsmos unefa
Algoritsmos unefa
 
Tad
TadTad
Tad
 
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
 
Programación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLProgramación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UML
 
16. paradigmas de programación
16. paradigmas de programación16. paradigmas de programación
16. paradigmas de programación
 
Ic semana-07-2012-ii
Ic semana-07-2012-iiIc semana-07-2012-ii
Ic semana-07-2012-ii
 
Kianny
KiannyKianny
Kianny
 
Avance 4
Avance 4Avance 4
Avance 4
 
Tds
TdsTds
Tds
 

Similar a Poo

Tema 1 2_poo
Tema 1 2_pooTema 1 2_poo
Tema 1 2_poodemon_628
 
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
 
Historia del ecuador
Historia del ecuadorHistoria del ecuador
Historia del ecuadoraldo_rzb
 
Programacion orientada objeto (poo)
Programacion orientada objeto (poo)Programacion orientada objeto (poo)
Programacion orientada objeto (poo)YamilethRivas3
 
AdV - Programación para no Programadores
AdV - Programación para no ProgramadoresAdV - Programación para no Programadores
AdV - Programación para no ProgramadoresJavier_J
 
Primera Interaula, 'Programación para no programadores'
Primera Interaula, 'Programación para no programadores'Primera Interaula, 'Programación para no programadores'
Primera Interaula, 'Programación para no programadores'AulaDeVideojuegos
 
Formato estrategia Didáctica
Formato estrategia DidácticaFormato estrategia Didáctica
Formato estrategia Didácticapipezuda
 
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
 

Similar a Poo (20)

Transp objetos
Transp objetosTransp objetos
Transp objetos
 
Transp objetos
Transp objetosTransp objetos
Transp objetos
 
Transp objetos
Transp objetosTransp objetos
Transp objetos
 
Lto tema1
Lto tema1Lto tema1
Lto tema1
 
PROGRAMACION WEB
PROGRAMACION WEBPROGRAMACION WEB
PROGRAMACION WEB
 
Tema 1 2_poo
Tema 1 2_pooTema 1 2_poo
Tema 1 2_poo
 
ananossa
ananossaananossa
ananossa
 
Programación Web Introducción
Programación Web IntroducciónProgramación Web Introducción
Programación Web Introducción
 
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
 
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
 
clases de herramientas lorenita
clases de herramientas lorenitaclases de herramientas lorenita
clases de herramientas lorenita
 
Historia del ecuador
Historia del ecuadorHistoria del ecuador
Historia del ecuador
 
Programacion orientada objeto (poo)
Programacion orientada objeto (poo)Programacion orientada objeto (poo)
Programacion orientada objeto (poo)
 
Tutorial de matrices matlab
Tutorial de matrices matlabTutorial de matrices matlab
Tutorial de matrices matlab
 
AdV - Programación para no Programadores
AdV - Programación para no ProgramadoresAdV - Programación para no Programadores
AdV - Programación para no Programadores
 
Primera Interaula, 'Programación para no programadores'
Primera Interaula, 'Programación para no programadores'Primera Interaula, 'Programación para no programadores'
Primera Interaula, 'Programación para no programadores'
 
Formato estrategia Didáctica
Formato estrategia DidácticaFormato estrategia Didáctica
Formato estrategia Didáctica
 
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
 
1poo
1poo1poo
1poo
 
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
 

Último

semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnnlitzyleovaldivieso
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...jlorentemartos
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxNadiaMartnez11
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCCarlosEduardoSosa2
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 

Último (20)

semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 

Poo

  • 1. Programación Orientada a Objetos Departamento de Lenguajes y Ciencias de la Computación E.T.S.I. Informática Universidad de Málaga
  • 2. Contenido • Introducción histórica • Conceptos básicos de la Programación O. O. • Conceptos avanzados de la Programación O.O. Programación Modular. Programación Orientada a Objetos 2
  • 3. Introducción Histórica Programación Modular. Programación Orientada a Objetos 3
  • 4. Evolución de los Lenguajes de A B S Programación A B S T Lenguajes Direcciones de T R Instrucciones R A Máquina / Memoria, A C Máquina C Ensamblador Registros C I C Ó Variables de Expresiones, FORTRAN I N Tipos Predef., Ó Funciones O Arrays N P E Definición de D R Estr. Control, PASCAL Tipos, E A Subprogramas C Punteros D I O Ocultamiento Tipos A N MODULA-2 T Información, Abstractos de A ADA O L Interfaces Datos S Métodos, Lenguajes Clases, Mensajes Orientados a Objetos Objetos Programación Modular. 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) Programación Modular. Programación Orientada a Objetos 5
  • 6. Conceptos básicos de la programación orientada a objetos Programación Modular. 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 Programación Modular. Programación Orientada a Objetos 7
  • 8. VEHÍCULO ANIMAL PUNTO (1,3) (5,2.5) FIGURA (2,2) (2,1) Programación Modular. 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 Programación Modular. 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) Programación Modular. Programación Orientada a Objetos 10
  • 11. Implementador frente a 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 Programación Modular. Programación Orientada a Objetos 11
  • 12. Un ejemplo: la clase Punto Punto Atributos = Estado Propio Clase R x,y; 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 Programación Modular. Programación Orientada a Objetos 12
  • 13. Definición de 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; Programación Modular. 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); Programación Modular. Programación Orientada a Objetos 14
  • 15. Implementación de la clase Punto (1) 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 Programación Modular. Programación Orientada a Objetos 15
  • 16. Implementación de la clase Punto (2) 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 de la misma clase 16 FIN Punto; Programación Modular. Programación Orientada a Objetos
  • 17. Uso de 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 a invocando a los métodos del interfaz de la clase Punto (comportamiento) Programación Modular. 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=1 P y=3 Programación Modular. Programación Orientada a Objetos 18
  • 19. Relación de Composición • la composición permite expresar a 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() Programación Modular. Programación Orientada a Objetos 19
  • 20. Implementación de la Composición (1) INTERFAZ CLASE Segmento MÉTODOS trasladar(E R dx,dy); R longitud(); FIN Segmento; Programación Modular. Programación Orientada a Objetos 20
  • 21. Implementación de la Composición (2) IMPLEMENTACIÓN CLASE Segmento ATRIBUTOS Punto Orig, Dest MÉTODOS trasladar(E R dx,dy) INICIO Orig.trasladar(dx,dy) Ext.trasladar(dx,dy) FIN R longitud(); INICIO DEVOLVER Orig.distancia(Ext) FIN FIN Segmento; Programación Modular. Programación Orientada a Objetos 21
  • 22. Conceptos avanzados de la programación orientada a objetos Programación Modular. Programación Orientada a Objetos 22
  • 23. Herencia • Posibilidad de reutilizar código FiguraCerrada • Algo más que: • incluir ficheros, o • importar módulos Polígono Elipse • Distintos tipos de herencia: • simple / múltiple Pentágono Cuadrilátero Círculo • estricta • selectiva • de implementación/de interfaz Rectángulo Rombo Programación Modular. 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) . Partícula • La herencia es transitiva. • Los objetos de una clase que hereda de Hijos / Descendientes otra pueden verse como objetos de esta última. Programación Modular. 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 Programación Modular. 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 Programación Modular. 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: Programación Modular. Programación Orientada a Objetos 27