SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
1.­ Introducción a la Programación 
     Orientada a Objetos (POO)
   1.    Introducción
   2.    Objetos
   3.    Clases
   4.    Herencia
   5.    Polimorfismo
        1. Sobrecarga
        2. Sobreescritura
   6. Clases abstractas          1
1.­ Introducción (I)
•   Paradigmas de programación
    –   Prog. imperativa o procedural (C, Pascal, ...)
    –   Prog. Lógica (Prolog)
    –   Prog. Funcional (Lisp)
    –   POO (Java, C++, Smalltalk, ObjectPascal, ...)
•   Problemas de la programación procedural:
    –   Reutilización de código
    –   Mantenimiento
    –   Escalabilidad
                                                         2
1.­ Introducción (II)
•   Características de un lenguaje orientado a 
    objetos (LOO)
    –   Objetos
    –   Clases
    –   Herencia
    –   Polimorfismo
•   La POO es un nuevo concepto de 
    programación. No se trata de aprender 
    nuevas instrucciones.
                                                  3
2.­ Objetos (I)
•    En un LOO puro, TODO son objetos
•    Objeto = Conjunto de variables (atributos) +
                    Conjunto de operaciones (métodos)
                    que operan sobre las variables.
•    Ejemplos de objetos:
    –   Ventana
    –   Número complejo
    –   Nave espacial
•    En un POO, todas las entidades de nuestro problema 
     tenemos que representarlas mediante objetos
                                                        4
2.­ Objetos (II)
•   Un objeto puede tener como atributos otros objetos 
    (por ejemplo, una ventana puede contener botones, 
    listas desplegables, áreas de texto, barras de 
    desplazamiento...)
•   Todos los objetos tienen una interface (parte 
    “visible” del objeto)
•   Todos los objetos son de un tipo en concreto (todas 
    las ventanas, cada una con sus propios atributos, son 
    del tipo genérico VENTANA)
•   El tipo del objeto determina QUÉ operaciones 
    puede realizar dicho objeto                       5
3.­ Clases
•    Una clase describe una “familia” de objetos (el tipo) 
     mediante:
    –   Los atributos que contendrán los objetos
    –   Los métodos que implementarán los objetos
•    En la clase NO se dan valores a los atributos (a no 
     ser que sea un valor común para todos los objetos). 
     Es cada objeto quien establece los valores de sus 
     atributos
•    La clase es una descripción genérica, una “plantilla”
•    Los objetos son instancias o ejemplares concretos de 
     una clase                                         6
4.­ Herencia (I)
  • Permite la creación de clasificaciones 
    jerárquicas. 
                           Persona


           Empleado                          Estudiante



Profesor    P. Servicios       Est. Teleco        Est. Informática



                                                               7
4.­ Herencia (II)
• Una clase general define las características 
  comunes a un conjunto de subclases 
• Clase general   superclase
  Clase heredada   subclase
• La subclase es una versión especializada de 
  la superclase
• Una subclase reúne todas las propiedades 
  de la clase padre (superclase) además de las 
  suyas propias.
                                              8
4.­ Herencia (III)

• Beneficios de la herencia

  – Reutilización del código 

  – Código más fiable y robusto

  – Menor costo de mantenimiento

  – Consistencia de la interfaz. 
                                    9
5.­ Polimorfismo
“Una interfaz múltiples métodos”


1. Sobrecarga
2. Sobreescritura
  1. Reemplazo
  2. Refinamiento
3. Clases abstractas
                                   10
5.1.­ Sobrecarga

• Métodos con el mismo nombre pero 
  distintos argumentos (en número o en tipo) 

• Polimorfismo en tiempo de compilación

• Algunos autores no lo consideran 
  polimorfismo (es un polimorfismo light).

                                          11
5.2.­ Sobreescritura
• Una subclase redefine un método que estaba 
  implementado en la superclase
• Permite que las subclases especialicen algunos de 
  los métodos de la superclase. Ejemplo:
   – persona.mostrarDatos();
   – empleado.mostrarDatos();

• Polimorfismo en tiempo de ejecución

• Dos opciones:
   – Sobreescribir completamente el método (reemplazo)
   – Ampliar el método (refinamiento)                 12
6.­ Clases abstractas (I)
• Una clase define uno o varios métodos, 
  pero no los implementa.
• ¿Por qué?
   – La superclase es incapaz de crear una 
     implementación para ciertos métodos
   – Queremos que todas las subclases implementen 
     dichos métodos
• Obliga a las subclases a implementar el 
  método (o de lo contrario las subclases también serán 
  abstractas)
                                                      13
6.­ Clases abstractas (II)
• No es posible crear objetos de clases 
  abstractas (no podemos instanciar una clase 
  abstracta) ya que no está completamente 
  definida.
• Una clase que tenga al menos un método 
  abstracto, será abstracta.



                                          14

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Programacion orientada objeto (poo)
Programacion orientada objeto (poo)Programacion orientada objeto (poo)
Programacion orientada objeto (poo)
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
7-Unidad 2. Elementos de una Clase
7-Unidad 2. Elementos de una Clase7-Unidad 2. Elementos de una Clase
7-Unidad 2. Elementos de una Clase
 
8- Unidad 2: Elementos de una Clase
8- Unidad 2: Elementos de una Clase8- Unidad 2: Elementos de una Clase
8- Unidad 2: Elementos de una Clase
 
Introduccion a Python. Clase 5
Introduccion a Python. Clase 5Introduccion a Python. Clase 5
Introduccion a Python. Clase 5
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Java ferca
Java fercaJava ferca
Java ferca
 
Java basico
Java basicoJava basico
Java basico
 
Poo1conceptobasicoconinstanciacion
Poo1conceptobasicoconinstanciacionPoo1conceptobasicoconinstanciacion
Poo1conceptobasicoconinstanciacion
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Programación Orientada a Objetos para Python
Programación Orientada a Objetos para PythonProgramación Orientada a Objetos para Python
Programación Orientada a Objetos para Python
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Poo
 
Poo Java
Poo JavaPoo Java
Poo Java
 
Clases
ClasesClases
Clases
 
S4-POO-2.2 Tipos de Clases
S4-POO-2.2 Tipos de ClasesS4-POO-2.2 Tipos de Clases
S4-POO-2.2 Tipos de Clases
 
Presentacion5
Presentacion5Presentacion5
Presentacion5
 
3- Clases y Objetos
3- Clases y Objetos3- Clases y Objetos
3- Clases y Objetos
 
2 POO Presentación
2 POO Presentación2 POO Presentación
2 POO Presentación
 
Iniciando en java en www.fiec.espol.edu.ec
Iniciando en java  en www.fiec.espol.edu.ecIniciando en java  en www.fiec.espol.edu.ec
Iniciando en java en www.fiec.espol.edu.ec
 

Similar a Introducción a la Programación Orientada a Objetos (POO

Programación III (Java) - 01 Introduccion
Programación III (Java) - 01 IntroduccionProgramación III (Java) - 01 Introduccion
Programación III (Java) - 01 IntroduccionAndoni Eguíluz Morán
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptssuser0b0b0e1
 
Introduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.pptIntroduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.pptdocmarcoantoniosotov
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptNachoTValverde
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptjhonJD1
 
18448198 programacion-orientada-a-objetos
18448198 programacion-orientada-a-objetos18448198 programacion-orientada-a-objetos
18448198 programacion-orientada-a-objetosDavid Henrry Rosas Cruz
 
Diapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.pptDiapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.pptjorgejvc777
 
Lenguaje de programación orientada a objetos
Lenguaje de programación orientada a objetosLenguaje de programación orientada a objetos
Lenguaje de programación orientada a objetosAntonio Perez
 
Historia y fundamentos de la programación orientada a objetos
Historia y fundamentos de la programación orientada a objetosHistoria y fundamentos de la programación orientada a objetos
Historia y fundamentos de la programación orientada a objetosRafael Molano
 
Historia java ruben rodriguez
Historia java ruben rodriguezHistoria java ruben rodriguez
Historia java ruben rodriguezcoruniversitec
 

Similar a Introducción a la Programación Orientada a Objetos (POO (20)

Programación III (Java) - 01 Introduccion
Programación III (Java) - 01 IntroduccionProgramación III (Java) - 01 Introduccion
Programación III (Java) - 01 Introduccion
 
Programación Orientada a Objetos
Programación Orientada  a ObjetosProgramación Orientada  a Objetos
Programación Orientada a Objetos
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 
Introduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.pptIntroduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.ppt
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 
18448198 programacion-orientada-a-objetos
18448198 programacion-orientada-a-objetos18448198 programacion-orientada-a-objetos
18448198 programacion-orientada-a-objetos
 
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓNJAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
 
Introducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a ObjetosIntroducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a Objetos
 
Diapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.pptDiapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.ppt
 
Poo
PooPoo
Poo
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Lenguaje de programación orientada a objetos
Lenguaje de programación orientada a objetosLenguaje de programación orientada a objetos
Lenguaje de programación orientada a objetos
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Historia java ruben
Historia java rubenHistoria java ruben
Historia java ruben
 
Historia y fundamentos de la programación orientada a objetos
Historia y fundamentos de la programación orientada a objetosHistoria y fundamentos de la programación orientada a objetos
Historia y fundamentos de la programación orientada a objetos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Historia java ruben rodriguez
Historia java ruben rodriguezHistoria java ruben rodriguez
Historia java ruben rodriguez
 
Poo
PooPoo
Poo
 

Más de Aldo Hernán Zanabria Gálvez

“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...Aldo Hernán Zanabria Gálvez
 
Organizadores visuales sobre las corrientes contemporaneas aldo zanabria ga...
Organizadores visuales sobre las corrientes contemporaneas   aldo zanabria ga...Organizadores visuales sobre las corrientes contemporaneas   aldo zanabria ga...
Organizadores visuales sobre las corrientes contemporaneas aldo zanabria ga...Aldo Hernán Zanabria Gálvez
 
Resumen final - Seminario Taller TIC Emprede Turismo
Resumen final - Seminario Taller TIC Emprede TurismoResumen final - Seminario Taller TIC Emprede Turismo
Resumen final - Seminario Taller TIC Emprede TurismoAldo Hernán Zanabria Gálvez
 
Clase de Tecnologías de la Información y Comunicaciones
Clase de Tecnologías de la Información y ComunicacionesClase de Tecnologías de la Información y Comunicaciones
Clase de Tecnologías de la Información y ComunicacionesAldo Hernán Zanabria Gálvez
 

Más de Aldo Hernán Zanabria Gálvez (20)

“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
 
mejorando la web guia de html 5
mejorando la web guia de html 5mejorando la web guia de html 5
mejorando la web guia de html 5
 
Guía de Prácticas word beta.pdf
Guía de Prácticas word beta.pdfGuía de Prácticas word beta.pdf
Guía de Prácticas word beta.pdf
 
emprendimiento en la era del conocimiento.pptx
emprendimiento en la era del conocimiento.pptxemprendimiento en la era del conocimiento.pptx
emprendimiento en la era del conocimiento.pptx
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de Programación
 
Organizadores visuales sobre las corrientes contemporaneas aldo zanabria ga...
Organizadores visuales sobre las corrientes contemporaneas   aldo zanabria ga...Organizadores visuales sobre las corrientes contemporaneas   aldo zanabria ga...
Organizadores visuales sobre las corrientes contemporaneas aldo zanabria ga...
 
didactica
didacticadidactica
didactica
 
Tarea1 aldo zanabria
Tarea1 aldo zanabriaTarea1 aldo zanabria
Tarea1 aldo zanabria
 
Tarea 2 aldo zanabria
Tarea 2 aldo zanabriaTarea 2 aldo zanabria
Tarea 2 aldo zanabria
 
Carolinos del milenio pasado - Puno
Carolinos del milenio pasado - PunoCarolinos del milenio pasado - Puno
Carolinos del milenio pasado - Puno
 
ingenieria de sistemas
ingenieria de sistemasingenieria de sistemas
ingenieria de sistemas
 
Electricidad con recursos renovables
Electricidad con recursos renovablesElectricidad con recursos renovables
Electricidad con recursos renovables
 
Variables
VariablesVariables
Variables
 
Estructura y modelo organizacional estatal
Estructura y modelo organizacional estatal Estructura y modelo organizacional estatal
Estructura y modelo organizacional estatal
 
Calidad de Agua
Calidad de AguaCalidad de Agua
Calidad de Agua
 
Resumen final - Seminario Taller TIC Emprede Turismo
Resumen final - Seminario Taller TIC Emprede TurismoResumen final - Seminario Taller TIC Emprede Turismo
Resumen final - Seminario Taller TIC Emprede Turismo
 
Clase de Tecnologías de la Información y Comunicaciones
Clase de Tecnologías de la Información y ComunicacionesClase de Tecnologías de la Información y Comunicaciones
Clase de Tecnologías de la Información y Comunicaciones
 
Plan de Trabajo Integración de la Mujer
Plan de Trabajo Integración de la MujerPlan de Trabajo Integración de la Mujer
Plan de Trabajo Integración de la Mujer
 
peritaciones y tasación puno
peritaciones y tasación punoperitaciones y tasación puno
peritaciones y tasación puno
 
producción en la empresa turística
producción en la empresa turísticaproducción en la empresa turística
producción en la empresa turística
 

Introducción a la Programación Orientada a Objetos (POO

  • 1. 1.­ Introducción a la Programación  Orientada a Objetos (POO) 1. Introducción 2. Objetos 3. Clases 4. Herencia 5. Polimorfismo 1. Sobrecarga 2. Sobreescritura 6. Clases abstractas 1
  • 2. 1.­ Introducción (I) • Paradigmas de programación – Prog. imperativa o procedural (C, Pascal, ...) – Prog. Lógica (Prolog) – Prog. Funcional (Lisp) – POO (Java, C++, Smalltalk, ObjectPascal, ...) • Problemas de la programación procedural: – Reutilización de código – Mantenimiento – Escalabilidad 2
  • 3. 1.­ Introducción (II) • Características de un lenguaje orientado a  objetos (LOO) – Objetos – Clases – Herencia – Polimorfismo • La POO es un nuevo concepto de  programación. No se trata de aprender  nuevas instrucciones. 3
  • 4. 2.­ Objetos (I) • En un LOO puro, TODO son objetos • Objeto = Conjunto de variables (atributos) +                Conjunto de operaciones (métodos)                que operan sobre las variables. • Ejemplos de objetos: – Ventana – Número complejo – Nave espacial • En un POO, todas las entidades de nuestro problema  tenemos que representarlas mediante objetos 4
  • 5. 2.­ Objetos (II) • Un objeto puede tener como atributos otros objetos  (por ejemplo, una ventana puede contener botones,  listas desplegables, áreas de texto, barras de  desplazamiento...) • Todos los objetos tienen una interface (parte  “visible” del objeto) • Todos los objetos son de un tipo en concreto (todas  las ventanas, cada una con sus propios atributos, son  del tipo genérico VENTANA) • El tipo del objeto determina QUÉ operaciones  puede realizar dicho objeto 5
  • 6. 3.­ Clases • Una clase describe una “familia” de objetos (el tipo)  mediante: – Los atributos que contendrán los objetos – Los métodos que implementarán los objetos • En la clase NO se dan valores a los atributos (a no  ser que sea un valor común para todos los objetos).  Es cada objeto quien establece los valores de sus  atributos • La clase es una descripción genérica, una “plantilla” • Los objetos son instancias o ejemplares concretos de  una clase 6
  • 7. 4.­ Herencia (I) • Permite la creación de clasificaciones  jerárquicas.  Persona Empleado Estudiante Profesor P. Servicios Est. Teleco Est. Informática 7
  • 8. 4.­ Herencia (II) • Una clase general define las características  comunes a un conjunto de subclases  • Clase general   superclase Clase heredada   subclase • La subclase es una versión especializada de  la superclase • Una subclase reúne todas las propiedades  de la clase padre (superclase) además de las  suyas propias. 8
  • 9. 4.­ Herencia (III) • Beneficios de la herencia – Reutilización del código  – Código más fiable y robusto – Menor costo de mantenimiento – Consistencia de la interfaz.  9
  • 11. 5.1.­ Sobrecarga • Métodos con el mismo nombre pero  distintos argumentos (en número o en tipo)  • Polimorfismo en tiempo de compilación • Algunos autores no lo consideran  polimorfismo (es un polimorfismo light). 11
  • 12. 5.2.­ Sobreescritura • Una subclase redefine un método que estaba  implementado en la superclase • Permite que las subclases especialicen algunos de  los métodos de la superclase. Ejemplo: – persona.mostrarDatos(); – empleado.mostrarDatos(); • Polimorfismo en tiempo de ejecución • Dos opciones: – Sobreescribir completamente el método (reemplazo) – Ampliar el método (refinamiento) 12
  • 13. 6.­ Clases abstractas (I) • Una clase define uno o varios métodos,  pero no los implementa. • ¿Por qué? – La superclase es incapaz de crear una  implementación para ciertos métodos – Queremos que todas las subclases implementen  dichos métodos • Obliga a las subclases a implementar el  método (o de lo contrario las subclases también serán  abstractas) 13
  • 14. 6.­ Clases abstractas (II) • No es posible crear objetos de clases  abstractas (no podemos instanciar una clase  abstracta) ya que no está completamente  definida. • Una clase que tenga al menos un método  abstracto, será abstracta. 14