Programación Orientada Objetos Conceptos de la POO
Conceptos POO Que es un Objeto? Un objeto representa alguna entidad de la vida real, es decir, al problema con el que nos estamos enfrentando, y con los que podemos interactuar Nombre: como se llama el objeto Interfase : funcionalidad, comportamiento. Estado interno: datos internos o atributos. Características de un objeto La Programación Orientada a Objetos El Paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. IPOO
Conceptos POO Características de un objeto – Diagrama de Objeto Nombre empleado1Empleado nombre=“María” apellido=“Gómez” sexo=“femenino” salario=2.500.000 Estado interno Interface calcularEdad() calcularSueldo() IPOO
Conceptos POO Características de un objeto- Diagrama de Objeto bombilloPhilips:Bombillo da_Luz=“si” marca=“philips colorLuz=“blanca” Nombre (al lado se coloca la clase a la cual pertenece el objeto) Estado interno prender() apagar() Interface IPOO
Conceptos POO Características de un objeto- Diagrama de Objeto Nombre biciJuan:Bicicleta kmRecorridos=100 coorX=30 coordY=50 Estado interno pedalear() frenar() saltar() Interface IPOO
Conceptos POO Características de un objeto rectanguloA Diagrama de Objeto Nombre rectanguloA:Rectangulo ancho=10 alto=20 Estado interno calcularArea() calcularPerimetro() dibujar() Interface IPOO
Conceptos POO Atributos: Son los datos o variables que caracterizan al objeto y cuyos valores en un momento dado indican su estado. Métodos: Son las operaciones (acciones o funciones) que se aplican sobre los objetos y que permiten crearlos, cambiar su estado o consultar el valor de sus atributos IPOO
Conceptos POO Mensajes: Forma en que los objetos interactúan. Tras la recepción de un mensaje el objeto actuará. La acción puede ser el envío de otros mensajes, el cambio de su estado, o la ejecución de cualquier otra tarea que se requiera que haga el objeto. El objeto persona envía el mensaje "girar a la izquierda" al objeto bicicleta. IPOO
Conceptos POO La clase Agrupación o colección de objetos que comparten una estructura común y un comportamiento común. Es una plantilla que contiene la descripción general de una colección de objetos. Consta de atributos y métodos que resumen las características y el comportamiento comunes de un conjunto de objetos. Todo objeto (también llamado instancia de una clase), pertenece a alguna clase Todos los objetos de una clase tienen los mismos atributos y comportamiento, son diferentes únicamente en los valores que contienen sus atributos. IPOO
Conceptos POO Representación de la Clase Rectangulo Representación del objeto rectanguloA y rectanguloB rectanguloA:Rectangulo rectanguloB:Rectangulo ancho=10 largo=20 ancho=15 largo=25 calcularArea() calcularPerimetro() dibujar() calcularArea() calcularPerimetro() dibujar() IPOO
Conceptos POO Representación de la Clase Empleado Representación de los objetos empleado1 y empleado2 empleado1:Empleado empleado2:Empleado nombre=“Maria” apellido=“Gómez” Sexo=“Femenino” Salario=1500000 nombre=“José” apellido=“Ruiz” Sexo=“Masculino” Salario=1600000 calcularEdad() calcularSueldo() calcularEdad() calcularSueldo() IPOO
Tipo de objetos (clase) Conceptos POO Todos los objetos con el mismo estado interno e interfase se agrupan en una clase. Las clases son para los objetos lo que los tipos para los datos primitivos. Ejemplo: Tipo de objetos (clase) Tipo de datos Empleado empledo1 empleado2 empledo3 objetos string dia_del_mes nombre Datos IPOO
Relaciones entre clases Las clases no se construyen para que trabajen de manera aislada, la idea es que ellas se puedan relacionar entre sí, de manera que puedan compartir atributos y métodos sin necesidad de rescribirlos. La jerarquías entre las clases permite extender y reutilizar el código existente sin tener que rescribirlo cada vez que se necesite. Los cuatro tipos de relaciones entre clases estudiados en este curso serán: Herencia (Generalización / Especialización o Es-un) Agregación (Todo / Parte o Forma-parte-de) Composición (Es parte elemental de) Asociación (entre otras, la relación Usa-a) IPOO
Relaciones entre clase Relación de Herencia (Generalización / Especialización, Es un) Es un tipo de jerarquía de clases, en la que cada subclase contiene los atributos y métodos de una (herencia simple) o más superclases (herencia múltiple). IPOO
Relaciones entre clases Relación de Agregación (Todo / Parte, Forma parte de) Es una relación que representa a los objetos compuestos por otros objetos. Indica Objetos que a su vez están formados por otros. El objeto en el nivel superior de la jerarquía es el todo y los que están en los niveles inferiores son sus partes o componentes. Los puntos forman parte del polígono IPOO
Relaciones entre clases Relación de Agregación (Todo / Parte, Forma parte de) Es una relación que representa a los objetos compuestos por otros objetos. Indica Objetos que a su vez están formados por otros. El objeto en el nivel superior de la jerarquía es el todo y los que están en los niveles inferiores son sus partes o componentes. Los trabajos forman parte de la cola de impresión IPOO
Relaciones entre clases Relación de Composición Un componente es parte esencial de un elemento. Si el componente es eliminado o desaparece, la clase mayor deja de existir. IPOO
Relaciones entre clases Relación de Asociación («uso», usa, cualquier otra relación) Es una asociación que se establece cuando dos clases tienen una dependencia de utilización, es decir, una clase utiliza atributos y/o métodos de otra para funcionar recarga IPOO
Relaciones entre clases IPOO
Relaciones entre clases Ejemplo relaciones entre clases al realizar una orden en un restaurante IPOO
Otros conceptos de la POO Encapsulación: los objetos muestran hacia afuera una interfase, pero ocultan la implementación y el estado interno. IPOO
Otros conceptos de la POO Abstracción: Es el principio de ignorar aquellos aspectos de un fenómeno observado que no son relevantes, con el objetivo de concentrarse en aquellos que si lo son. IPOO
Otros conceptos de la POO Polimorfismo: una interfaz, varias implementaciones. Una persona puede realizar una llamada telefónica de diferentes formas. IPOO
Otros conceptos de la POO Un programa OO es una colección de objetos diciéndose unos a otros lo que deben hacer por medio de paso de mensajes. Cada objeto tiene su propia zona privada (estado interno), posiblemente conteniendo otros objetos. Cada objeto es de un tipo (clase). Las clases agrupan objetos que manejan (reciben) el mismo tipo de mensajes. Cada objeto tiene una interfase, que define el tipo de mensajes que puede recibir. A su vez, cada objeto tiene una implementación oculta para el resto del mundo. IPOO