SlideShare una empresa de Scribd logo
Programación Orientada a Objetos
Introducción Los problemas suelen tener  varias soluciones  posibles. En programación existen  diversas metodologías  que nos ayudan a enfrentar un problema. Cada metodología tiene  diversos lenguajes  que las soportan. Algunos lenguajes soportan varias metodologías.
Programación Orientada a Objetos Definición: La  Programación Orientada a Objetos (OOP)  es un  método  de programación en el cual los programas se organizan en colecciones cooperativas de  objetos , cada uno de los cuales representa una  instancia  de alguna  clase , y cuyas clases son, todas ellas, miembros de una  jerarquía de clases  unidas mediante  relaciones de herencia . Comentarios: Usamos  objetos en lugar de algoritmos  como bloque fundamental Cada objeto es una  instancia  de una clase Las clases están relacionadas entre sí por relaciones tan complejas como la  herencia
Conceptos de la OOP Conceptos básicos Objeto Clase Características de la OOP Abstracción: Encapsulamiento: Modularidad: Jerarquía Otros conceptos OOP Tipos Tipos de relaciones Asociación Herencia Agregación
Objeto y Clase Un  objeto  es algo de lo que hablamos y que podemos manipular Existen  en el mundo real (o en nuestro entendimiento del mismo) Una  clase  describe los objetos del mismo tipo Todos los objetos son  instancias  de una clase Describe las  propiedades  y el  comportamiento  de un tipo de objetos Clase Atributos Operaciones Objeto:Clase Atributo1=valor Atributo2=valor ...
Conceptos OOP: Abstracción Nos permite trabajar con la  complejidad del mundo real Separaremos el  comportamiento  de la  implementación Es más importante  saber qué se hace  en lugar de  cómo se hace : Un sensor de temperatura Sabemos que...  mide la temperatura nos muestra su valor se puede calibrar... No sabemos... (no nos importa) cómo mide la temperatura de qué está hecho.
Conceptos OOP: Abstracción La abstracción  no es única : Un coche puede ser... Una cosa con ruedas, motor, volante y pedales (conductor) Algo capaz de transportar personas (taxista) Una caja que se mueve (simulador de tráfico) Conjunto de piezas (fabricante)
Conceptos OOP: Encapsulamiento Ninguna parte  de un sistema complejo  debe   depender  de los detalles internos de  otra . Complementa  a la abstracción Se consigue: Separando  la  interfaz  de su  implementación Ocultando  la  información interna  de un objeto Escondiendo  la  estructura  e  implementación  de los  métodos  (algoritmos). Exponiendo  solo  la forma de interactuar  con el objeto
Conceptos OOP: Modularidad Consiste en separar el sistema en  bloques poco ligados  entre sí:  módulos . Organización del código Es una especie de  encapsulamiento  de más  alto nivel . El C++ no lo impone aunque lo soporta (namespace) El Java es más formal (packages) Difícil pero muy  importante en sistemas grandes . Suele aplicarse refinando el sistema en sucesivas iteraciones Cada módulo debe definir una interfaz clara
Conceptos OOP: Jerarquía Es una  clasificación  u ordenamiento de las abstracciones Hay dos jerarquías fundamentales: Estructura de clases : Jerarquía “ es un/a ” Relaciones de  herencia Estructura de objetos : Jerarquía “ parte de ” Relaciones de  agregación Está implementada de manera genérica en la estructura de clases
Conceptos OOP: Jerarquía Una  figura plana  es: Algo con una posición en el plano Escalable Rotable Un  gráfico  es algo que se puede dibujar en 2D Un  diagrama  es un conjunto de cuadrados y círculos Herencia  simple Un cuadrado  es una  figura Un círculo  es una  figura Herencia  múltiple e s una  figura es un  gráfico Agregación Ejemplo: Figuras planas y diagramas
Conceptos OOP: Tipo Es el  reforzamiento  del concepto de clase Objetos de tipo diferente no pueden ser intercambiados El C++ y el Java son lenguajes fuertemente “tipeados” Ayuda a corregir errores en tiempo de compilación Mejor que en tiempo de ejecución
Relaciones Están presentes en cualquier sistema Definen como se producen los intercambios de información y datos También ayudan a comprender las propiedades de unas clases a partir de las propiedades de otras Existen 4 tipos de relaciones: Asociación Herencia Agregación Instanciación
Relación de Asociación Relación más  general Denota una  dependencia semántica Es  bidireccional Primer paso  para determinar una relación más compleja Ejemplo: Relación entre un producto y una venta. Cualquier venta está asociada a un producto, pero no es, ni forma parte de, ni posee ningún producto… al menos en una primera aproximación. Cardinalidad :  multiplicidad a cada lado Uno a uno:  Venta-Transacción Uno a muchos:  Producto-Venta Muchos a muchos:  Comprador-Vendedor
Relación de Herencia ¡Relación  característica  de la OOP! Evita definir repetidas veces  las  características comunes  a varias clases Una de las clases  comparte  la  estructura  y/o el  comportamiento  de otra(s) clase(s). También se denomina relación “ es un/a ” ( is a )
Relación de Herencia (vocabulario) Clase base o superclase : clase de la cual se hereda Clase derivada o subclase : clase que hereda Herencia simple : Hereda de una sola clase Herencia múltiple : Hereda de varias clases Java solo la soporta parcialmente Presenta diversos problemas (¿qué hacer cuando se hereda más de una vez de la misma clase?) Clase abstracta : La que no lleva, ni puede llevar, ningún objeto asociado Polimorfismo : Posibilidad de usar indistintamente todos los objetos de un clase y derivadas.
Relación de Agregación Una  clase   contiene  a otra clase Ésta “es parte de” aquélla. También se denomina relación “es  parte de ” (has a) Una clase puede contener a otra: Por valor : Cuando los objetos de la clase contenida se crean y destruyen al mismo tiempo que los de la clase continente Por referencia : Cuando no necesariamente ocurre lo anterior
Relación de Agregación Un  coche  está hecho de Volante Palanca de cambio Motor Ruedas Ruedas Volante Marchas Motor Coche
Relación de Instanciación En determinados casos una clase ( p.ej. un vector ) puede implementarse  independientemente del tipo  ( real, complejo, color... ) de alguno de sus atributos: Definimos una  clase  parametrizada  o  template (plantilla) Para cada uno de los tipos que necesitemos definimos una nueva clase     Instanciación Tipo Vector VectorEnteros  <int> VectorColores  <Color>

Más contenido relacionado

PPT
Curso Java Inicial 5 Relaciones Entre Objetos
PPTX
Programación Orientada a Objetos
PPT
Introduccion A La Oop
PPTX
Que es una clase en java
PPTX
Introduccion orientaciona objetos
PPTX
Dce0 Introduccion Orientacion A Objetos
PPTX
Clases en java
PDF
7 Curso de POO en java - diagrama de clases
Curso Java Inicial 5 Relaciones Entre Objetos
Programación Orientada a Objetos
Introduccion A La Oop
Que es una clase en java
Introduccion orientaciona objetos
Dce0 Introduccion Orientacion A Objetos
Clases en java
7 Curso de POO en java - diagrama de clases

La actualidad más candente (19)

PPTX
Diagrama de clases
PDF
C3 las clases en java v2
PPT
Herencia y polimorfismo
PPTX
java (clases,herencias,encapsulamiento,.. )
PPT
D5E-E0: Introduccion a la programacion orientada a objetos
PPT
Dce0 Introduccion Orientacion A Objetos2
PPT
Dce0 Introduccion Orientacion A Objetos
PPTX
Diagrama de clases
PPT
programacion orientada a objetos
PPTX
Programación Orientada a Objetos - herencia y polimorfismo
PPTX
PPTX
Herencia y Polimorfismo
PPTX
Diagrama de clases
PPT
Poo 3 herencia
DOCX
Definiciones taller 8 agost
PPTX
Herencia poo
PDF
Lenguaje de Programación Orientada a Objetos
PPTX
1. introduccion a la programación orientada a objeto (poo)
PPT
Unidad 1 Mad IntroduccióN
Diagrama de clases
C3 las clases en java v2
Herencia y polimorfismo
java (clases,herencias,encapsulamiento,.. )
D5E-E0: Introduccion a la programacion orientada a objetos
Dce0 Introduccion Orientacion A Objetos2
Dce0 Introduccion Orientacion A Objetos
Diagrama de clases
programacion orientada a objetos
Programación Orientada a Objetos - herencia y polimorfismo
Herencia y Polimorfismo
Diagrama de clases
Poo 3 herencia
Definiciones taller 8 agost
Herencia poo
Lenguaje de Programación Orientada a Objetos
1. introduccion a la programación orientada a objeto (poo)
Unidad 1 Mad IntroduccióN
Publicidad

Destacado (20)

PPT
Bologna
DOCX
Instalaciones de programas
DOCX
Topologias
PPTX
Diapositiva clase 9.
PPTX
PDF
Galeria Seminario Latinoamericano
PPTX
Presentación fisica
DOC
Presupuesto educación
DOCX
talle de serigrafia
PDF
Noticias de espeleología 20120124
PPTX
Segunda tarea estali
PPTX
Presentación de adviento
PPTX
Ciclo hidrolojico
DOC
Tecnoloxías da comunicación
PDF
Marktprognose: Mobile Payment Transaktionen in Großbritannien
 
PDF
Armado Vh Esp
PPTX
Presentation Ever Vargas
Bologna
Instalaciones de programas
Topologias
Diapositiva clase 9.
Galeria Seminario Latinoamericano
Presentación fisica
Presupuesto educación
talle de serigrafia
Noticias de espeleología 20120124
Segunda tarea estali
Presentación de adviento
Ciclo hidrolojico
Tecnoloxías da comunicación
Marktprognose: Mobile Payment Transaktionen in Großbritannien
 
Armado Vh Esp
Presentation Ever Vargas
Publicidad

Similar a Intro oo2 (20)

PPT
Programación Orientada a Objetos para estudiantes de sistemas
PPT
Programación Orientada a Objetos.ppt
PPTX
Programación Orientada a Objetos paradigma.pptx
PPT
Programación Orientada a Objetos.ppt
PPT
Programación Orientada a Objetos explicacion.ppt
PPT
Programación Orientada a Objetos.ppt
PPT
Introduccion Programación Orientada a Objetos.ppt
PPT
Programación Orientada a Objetos.. .....
PPT
Programación Orientada a Objetos fases.ppt
PPT
Programación Orientada a Objetos.ppt
PPTX
programacinorientadaaobjetos-24071321364
PPT
Fundamentos de Programación Orientada a Objetos.ppt
PPT
programación orientada a objetos, definiciones ,etc
PPT
Programación Orientada a Objetos con ul lenguaje de programacion.ppt
PPT
Programación Orientada a Objetos POOOOOO
PPTX
programacion orientada a objetos ALGORITMICA..pptx
PPTX
Clase No.01.pptx
PPT
Introduccion orientación a objetos
PPTX
Modelado con clases instancias
PPT
Programacion Orientada a Objetos en LP Java
Programación Orientada a Objetos para estudiantes de sistemas
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos paradigma.pptx
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos explicacion.ppt
Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.. .....
Programación Orientada a Objetos fases.ppt
Programación Orientada a Objetos.ppt
programacinorientadaaobjetos-24071321364
Fundamentos de Programación Orientada a Objetos.ppt
programación orientada a objetos, definiciones ,etc
Programación Orientada a Objetos con ul lenguaje de programacion.ppt
Programación Orientada a Objetos POOOOOO
programacion orientada a objetos ALGORITMICA..pptx
Clase No.01.pptx
Introduccion orientación a objetos
Modelado con clases instancias
Programacion Orientada a Objetos en LP Java

Más de Colegio Agropecuario de San Carlos (20)

PPT
Desarrollo sitios web
DOC
Lenguajes de programacion web
DOC
DOCX
Tipos de certificaciones profesionales en informática
PPTX
PPT
Sistemas operativos 1
PPT
Servicios de sistemas
PPTX
Planificador del procesador
PPT
Tipos sitemas operativos
PPT
Intrefaz gráfica de usuario

Intro oo2

  • 2. Introducción Los problemas suelen tener varias soluciones posibles. En programación existen diversas metodologías que nos ayudan a enfrentar un problema. Cada metodología tiene diversos lenguajes que las soportan. Algunos lenguajes soportan varias metodologías.
  • 3. Programación Orientada a Objetos Definición: La Programación Orientada a Objetos (OOP) es un método de programación en el cual los programas se organizan en colecciones cooperativas de objetos , cada uno de los cuales representa una instancia de alguna clase , y cuyas clases son, todas ellas, miembros de una jerarquía de clases unidas mediante relaciones de herencia . Comentarios: Usamos objetos en lugar de algoritmos como bloque fundamental Cada objeto es una instancia de una clase Las clases están relacionadas entre sí por relaciones tan complejas como la herencia
  • 4. Conceptos de la OOP Conceptos básicos Objeto Clase Características de la OOP Abstracción: Encapsulamiento: Modularidad: Jerarquía Otros conceptos OOP Tipos Tipos de relaciones Asociación Herencia Agregación
  • 5. Objeto y Clase Un objeto es algo de lo que hablamos y que podemos manipular Existen en el mundo real (o en nuestro entendimiento del mismo) Una clase describe los objetos del mismo tipo Todos los objetos son instancias de una clase Describe las propiedades y el comportamiento de un tipo de objetos Clase Atributos Operaciones Objeto:Clase Atributo1=valor Atributo2=valor ...
  • 6. Conceptos OOP: Abstracción Nos permite trabajar con la complejidad del mundo real Separaremos el comportamiento de la implementación Es más importante saber qué se hace en lugar de cómo se hace : Un sensor de temperatura Sabemos que... mide la temperatura nos muestra su valor se puede calibrar... No sabemos... (no nos importa) cómo mide la temperatura de qué está hecho.
  • 7. Conceptos OOP: Abstracción La abstracción no es única : Un coche puede ser... Una cosa con ruedas, motor, volante y pedales (conductor) Algo capaz de transportar personas (taxista) Una caja que se mueve (simulador de tráfico) Conjunto de piezas (fabricante)
  • 8. Conceptos OOP: Encapsulamiento Ninguna parte de un sistema complejo debe depender de los detalles internos de otra . Complementa a la abstracción Se consigue: Separando la interfaz de su implementación Ocultando la información interna de un objeto Escondiendo la estructura e implementación de los métodos (algoritmos). Exponiendo solo la forma de interactuar con el objeto
  • 9. Conceptos OOP: Modularidad Consiste en separar el sistema en bloques poco ligados entre sí: módulos . Organización del código Es una especie de encapsulamiento de más alto nivel . El C++ no lo impone aunque lo soporta (namespace) El Java es más formal (packages) Difícil pero muy importante en sistemas grandes . Suele aplicarse refinando el sistema en sucesivas iteraciones Cada módulo debe definir una interfaz clara
  • 10. Conceptos OOP: Jerarquía Es una clasificación u ordenamiento de las abstracciones Hay dos jerarquías fundamentales: Estructura de clases : Jerarquía “ es un/a ” Relaciones de herencia Estructura de objetos : Jerarquía “ parte de ” Relaciones de agregación Está implementada de manera genérica en la estructura de clases
  • 11. Conceptos OOP: Jerarquía Una figura plana es: Algo con una posición en el plano Escalable Rotable Un gráfico es algo que se puede dibujar en 2D Un diagrama es un conjunto de cuadrados y círculos Herencia simple Un cuadrado es una figura Un círculo es una figura Herencia múltiple e s una figura es un gráfico Agregación Ejemplo: Figuras planas y diagramas
  • 12. Conceptos OOP: Tipo Es el reforzamiento del concepto de clase Objetos de tipo diferente no pueden ser intercambiados El C++ y el Java son lenguajes fuertemente “tipeados” Ayuda a corregir errores en tiempo de compilación Mejor que en tiempo de ejecución
  • 13. Relaciones Están presentes en cualquier sistema Definen como se producen los intercambios de información y datos También ayudan a comprender las propiedades de unas clases a partir de las propiedades de otras Existen 4 tipos de relaciones: Asociación Herencia Agregación Instanciación
  • 14. Relación de Asociación Relación más general Denota una dependencia semántica Es bidireccional Primer paso para determinar una relación más compleja Ejemplo: Relación entre un producto y una venta. Cualquier venta está asociada a un producto, pero no es, ni forma parte de, ni posee ningún producto… al menos en una primera aproximación. Cardinalidad : multiplicidad a cada lado Uno a uno: Venta-Transacción Uno a muchos: Producto-Venta Muchos a muchos: Comprador-Vendedor
  • 15. Relación de Herencia ¡Relación característica de la OOP! Evita definir repetidas veces las características comunes a varias clases Una de las clases comparte la estructura y/o el comportamiento de otra(s) clase(s). También se denomina relación “ es un/a ” ( is a )
  • 16. Relación de Herencia (vocabulario) Clase base o superclase : clase de la cual se hereda Clase derivada o subclase : clase que hereda Herencia simple : Hereda de una sola clase Herencia múltiple : Hereda de varias clases Java solo la soporta parcialmente Presenta diversos problemas (¿qué hacer cuando se hereda más de una vez de la misma clase?) Clase abstracta : La que no lleva, ni puede llevar, ningún objeto asociado Polimorfismo : Posibilidad de usar indistintamente todos los objetos de un clase y derivadas.
  • 17. Relación de Agregación Una clase contiene a otra clase Ésta “es parte de” aquélla. También se denomina relación “es parte de ” (has a) Una clase puede contener a otra: Por valor : Cuando los objetos de la clase contenida se crean y destruyen al mismo tiempo que los de la clase continente Por referencia : Cuando no necesariamente ocurre lo anterior
  • 18. Relación de Agregación Un coche está hecho de Volante Palanca de cambio Motor Ruedas Ruedas Volante Marchas Motor Coche
  • 19. Relación de Instanciación En determinados casos una clase ( p.ej. un vector ) puede implementarse independientemente del tipo ( real, complejo, color... ) de alguno de sus atributos: Definimos una clase parametrizada o template (plantilla) Para cada uno de los tipos que necesitemos definimos una nueva clase  Instanciación Tipo Vector VectorEnteros <int> VectorColores <Color>