1 / 24

Orientación a objetos

Orientación a objetos. Conjunto de disciplinas (ingeniería) que desarrollan y modelan software que facilita la construcción de sistemas complejos a partir de componentes. Propiedades Abstracción Encapsulamiento Modularidad Jerarquía Polimorfismo. Objeto.

grady-fox
Download Presentation

Orientación a objetos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Orientación a objetos • Conjunto de disciplinas (ingeniería) que desarrollan y modelan software que facilita la construcción de sistemas complejos a partir de componentes. • Propiedades • Abstracción • Encapsulamiento • Modularidad • Jerarquía • Polimorfismo

  2. Objeto • Entidad que contiene los atributos que describen el estado de un objeto del mundo real y las acciones que se asocian con él. • Pieza de software única. • Posee características o propiedades (atributos). • Posee habilidades o funcionalidades (comportamiento). • Pertenece a un tipo (clase). • Pueden o no corresponderse con objetos reales.

  3. Objeto Fundamentos de la POO (Allan Kay) • Todo es un Objeto. • Un programa es un conjunto de objetos enviándose mensajes entre sí. • Cada Objeto tiene su memoria, conformada por otros Objetos. • Todo Objeto tiene su propio tipo (pertenece a una clase). • Todo Objeto de un mismo tipo puede recibir los mismos mensajes.

  4. Objeto Composición Objeto = estado + comportamiento + identidad • Estado: propiedades o atributos que caracterizan al Objeto. • Comportamiento: Viene determinado por la forma en la que el objeto interactúa en el sistema (mensajes). • Identidad: propiedad característica que distingue un Objeto del resto de los Objetos.

  5. Mensajes • Mensaje es la acción realizada por un objeto mediante la cual se invoca un método. Receptor.método(información necesaria) • El conjunto de mensajes que puede recibir un objeto se conoce como protocolo de un objeto

  6. Clase • Es una plantilla que se utiliza para definir Objetos. • Puede verse como un tipo (que además, define métodos). • Los Objetos que se definen a través de esa clase son sus instancias. • Son las instancias las que reciben los mensajes definidos en su clase.

  7. Clase • Descripción de un conjunto de objetos • Métodos y datos que resumen las características comunes de un conjunto de objetos. • Muestra el comportamiento general de un grupo de objetos. • Creación de objetos • Destrucción de objetos

  8. Clase(Representación)

  9. Clase Ventajas de usar Clases: • Cada clase puede crearse de modo independiente. • Asegura consistencia de los datos que la componen. • La implementación queda escondida al usuario. • Puede variarse la implementación sin tener que cambiar los programas que las usan. • Es altamente reutilizable.

  10. Identificación de clases • Partiendo del enunciado de un problema: • Nombres del enunciado -> objetos • Adjetivos y complementos del verbo -> atributos • Verbos -> métodos Tipos de método: • Constructor / Destructor • Modificadores del estado • Selectores Mezcladores • Cálculos o procesamientos

  11. POO • Booch: “La POO es un método de implementación en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa un ejemplar de una clase y cuyas clases son miembros de una jerarquía de clases unidas mediante relaciones de herencia.” • En un Programa orientado a objetos • Creación de objetos mediante un mensaje de construcción a la clase. • Intercambio de mensajes entre objetos. • Eliminación de objetos cuando no se necesitan, mediante un mensaje de destrucción a la clase.

  12. POO • La unidad lógica de programación es el objeto. • Los Objetos tienen relaciones. • Existen clases que agrupan conceptualmente los objetos. • Las clases pertenecen a una jerarquía (son las clases las que heredan y no los objetos).

  13. POO “Un programa orientado a objetos se estructura como una comunidad de agentes interactuando, llamados objetos. Cada objeto tiene un papel que ejecutar. Cada objeto proporciona un servicio, o realiza una acción, usada por otros miembros de la comunidad.”

  14. POO “La acción se inicia por la transmisión de un mensaje a un agente (objeto) responsable de la acción. El mensaje contiene el nombre y los argumentos necesarios. Si el receptor acepta el mensaje, acepta la responsabilidad de llevar a cabo la acción solicitada. En respuesta al mensaje, realizará algún método para satisfacer la petición.”

  15. POO • “El cliente que envía la solicitud no tiene por qué conocer cómo se satisfará su petición” • Barrera difícil de superar • “La creencia del programador de que debe escribir TODO y no usar los servicios de otros” • Debe desarrollar componentes reutilizables

  16. POO Mensajes frente a Procedimientos • M: Receptor designado • P: No hay receptor designado • M: Interpretación del mensaje depende del receptor y puede variar para diferentes receptores • M: Determino el método en Run Time • P: En tiempo de compilación

  17. POO Clases e Instancias (Objetos) • “Todos los objetos son instancias de una clase. El método invocado en respuesta a un mensaje es determinado por la clase del receptor. TODOS los objetos de la misma clase usan el mismo método en respuesta a mensajes similares” • Las diferentes instancias de cada clase (Objetos) difieren en los valores de los atributos. • Dos objetos con los mismos valores de los atributos pueden ser diferentes

  18. POO Ventajas de la POO • Reusabilidad. • Facilidades de prototipación. • Gran calidad de herramientas. • Mayor paralelismo en el desarrollo. • Representación del mundo real.

  19. POO Características: • Ocultamiento de la información. • Encapsulamiento. • Herencia. • Polimorfismo.

  20. Tipo abstracto de datos • Tipo de dato definido por el programador que se puede manipular de un modo similar a los tipos de datos definidos por el sistema Encapsulamiento + Ocultamiento. • Implementación escondida al cliente. • Se generan independientemente. • Se pueden probar independientemente. • Aumentan la reutilización de código.

  21. Herencia • Herencia es la capacidad de un objeto para utilizar las estructuras y los métodos existentes en antepasados o ascendientes • Reutilización mediante herencia • Definición de nuevos tipos a partir de otros con los que comparten algún tipo de característica. • Tipos de herencia: • Herencia simple • Herencia múltiple • Anulación o sustitución

  22. Herencia • Jerarquía de clases • Ej: Tom > gato > felino > mamífero > animal > ser vivo > objeto • El comportamiento de una categoría más general es aplicable a una categoría particular • Las clases se organizan en una estructura de herencia. Una clase hijo o subclase heredará atributos de una clase padre. Una clase padre abstracta es una clase para la que no hay instancias. Sólo se usa para crear subclases

  23. Herencia • La búsqueda de un método a invocar en respuesta a un mensaje dado, se inicia con la clase del receptor. • Si no se encuentra un método apropiado, se busca en la clase padre. • La búsqueda continua hasta que la cadena de superclases se agota. • Si no se encuentra ningún método aplicable, se envía un mensaje de error. • Los métodos de nivel inferior sobrescriben (override) el comportamiento heredado.

  24. Polimorfismo • El término polimorfismo se refiere a que una característica de una clase puede tomar varias formas. • Permite invocar métodos distintos con el mismo mensaje, resolviéndose qué método se utilizará en tiempo de ejecución • Tipos • Por sobrecarga de funciones. • Por vinculación dinámica.

More Related