Programacin III 01112020 1 Introduccin a la Programacin

  • Slides: 37
Download presentation
Programación III 01/11/2020 1

Programación III 01/11/2020 1

Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque 01/11/2020

Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque 01/11/2020 2

INTRODUCCIÓN A LA PROGRAMACION OO ¿Que es Orientado a Objetos? Desarrollo de Software en

INTRODUCCIÓN A LA PROGRAMACION OO ¿Que es Orientado a Objetos? Desarrollo de Software en lenguajes de programacion como: C++, smalltalk, ADA 95, Eiffel. Actualmente usado en lenguajes visuales: Java, Php, Frame. Works, conjugado con el planteamiento estándar UML(Lengaje de Modelado Visual) 01/11/2020 3

Programación OO La Programación OO trabaja exclusivamente con objetos y que cada uno de

Programación OO La Programación OO trabaja exclusivamente con objetos y que cada uno de estos serán instancias de determinadas clases y que estas se relacionan las unas con las otras mediante herencias. Instancia: Efectuar una copia de la clase 01/11/2020 4

Siglas usadas POO y OOP POO: Programacion Orientada a Objetos. OOP: Object Oriented Programming

Siglas usadas POO y OOP POO: Programacion Orientada a Objetos. OOP: Object Oriented Programming Todo programa para ser considerado OO debe incluir: Objetos Clases Herenci a 01/11/2020 5

Evolución de la POO Cobro importancia en el año 1968 en la conferencia de

Evolución de la POO Cobro importancia en el año 1968 en la conferencia de la OTAN “Ingeniería del Software y Crisis del software ” expresándose que el software era caro, poco fiable y escaso. En los años 70 y 80 los sistemas a implementarse adquirían mayor complejidad y los costes de mantenimiento requerían una inversión de mas de la mitas de los costos y recursos globales del desarrollo total del software. Es así que la POO baja los costos de mantenimiento debido al software reutilizable. 01/11/2020 6

Modularidad “Propiedad que tiene un sistema que ha sido descompuesto en un conjunto de

Modularidad “Propiedad que tiene un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y débilmente acoplados” [Booch’ 96] 01/11/2020 7

Alta cohesión: Un módulo con responsabilidades altamente relacionadas y que no hace una gran

Alta cohesión: Un módulo con responsabilidades altamente relacionadas y que no hace una gran cantidad de trabajo Bajo acoplamiento: Un módulo que no depende de demasiados otros módulos. Favorece: n Comprensión modular: es posible entender un módulo sin conocer los otros. n Continuidad modular: un cambio en la especificación afecta sólo a un módulo o a unos pocos. n Protección modular: el efecto de una situación anormal producida en un módulo afecta sólo a éste o a unos pocos. n Los módulos se comunican mediante interfaces estrechas y bien definidas. 01/11/2020 8

Principios de diseño modular Ocultación de información “El diseñador de cada módulo debe seleccionar

Principios de diseño modular Ocultación de información “El diseñador de cada módulo debe seleccionar un subconjunto de propiedades de un módulo como información oficial para ponerla a disposición de los autores de módulos clientes” n Una abstracción de datos puede verse como que tiene dos caras: n n Interfaz: operaciones que definen el comportamiento (cliente) Implementación (programador) apilar #define TAM 10 desapilar int datos[TAM]; 01/11/2020 9

¿Qué significa Orientación a Objetos? El software se organiza como una colección de objetos

¿Qué significa Orientación a Objetos? El software se organiza como una colección de objetos que contienen tanto estructura como comportamiento. ¿Qué es el desarrollo OO? Una nueva forma de pensar acerca del software basándose en abstracciones que existen en el Foco mundo real. Potencia encender() apagar() 01/11/2020 10

Conceptos fundamentales de POO Clases y Objetos Las clases son la construcción lógica sobre

Conceptos fundamentales de POO Clases y Objetos Las clases son la construcción lógica sobre la que se basa el lenguaje Java, definen la forma y naturaleza de un objeto y constituyen los fundamentos de la programación OO. Ahora veremos: CLASES Vs. OBJETOS 01/11/2020 11

Hablemos de Objetos Que es un objeto ? n 01/11/2020 Un objeto es una

Hablemos de Objetos Que es un objeto ? n 01/11/2020 Un objeto es una instancia de una clase (una categoría). Un objeto tiene una estructura. Tiene atributos (propiedades) y actividades (comportamiento). El comportamiento de un objeto consiste en las operaciones que desempeña. 12

¿Cómo se encuentran los objetos? “Los objetos están ahí para usarlos” 01/11/2020 13

¿Cómo se encuentran los objetos? “Los objetos están ahí para usarlos” 01/11/2020 13

Definición de un objeto Los objetos son concretos y pueden representar objetos reales o

Definición de un objeto Los objetos son concretos y pueden representar objetos reales o abstractos. Por ejemplo: Cada ser humano pertenece a la clase persona Tiene atributos (características): • Luis • Pérez • Varón • 15 años • 1, 7 m Funciones (Comportamientos o acciones) que puede realizar: 01/11/2020 • Luis: : nace • Luis: : crece • Luis: : alimenta • Luis: : muere 14

Definición del objeto coche Funciones que puede realizar: • Ir • Parar • Girar

Definición del objeto coche Funciones que puede realizar: • Ir • Parar • Girar a la derecha • Girar a la izquierda Tiene las características: • Color • Velocidad • Tamaño • Carburante 01/11/2020 15

Clasificación de objetos 1. 2. 3. 4. 5. Cosas tangibles: Avión, libro. Roles o

Clasificación de objetos 1. 2. 3. 4. 5. Cosas tangibles: Avión, libro. Roles o papeles: Gerente, cliente, empleado. Organizaciones: Equipo, empresa, división Incidentes: (Sucesos, eventos) vuelo, accidente. Interacciones: (Transición, contratos) compras, ventas, contrato laboral. 6. Especificaciones: Inventarios, proformas. 7. Lugares: Sala de espera, parqueo, oficina. 01/11/2020 16

Los objetos con estados similares y el mismo comportamiento se agrupan en clases 01/11/2020

Los objetos con estados similares y el mismo comportamiento se agrupan en clases 01/11/2020 17

Clases (UML) Una clase esta conformada básicamente por atributos y operaciones, los atributos representan

Clases (UML) Una clase esta conformada básicamente por atributos y operaciones, los atributos representan los datos de la clase y se implementan mediante variables, las operaciones se implementan a través de métodos, se deben manipular solamente a través de los métodos. 01/11/2020 18

Ejemplo: Clase Aeronave Los objetos se los categoriza en clases. En OO, una clase

Ejemplo: Clase Aeronave Los objetos se los categoriza en clases. En OO, una clase no solo tiene el objetivo de categorizar sino también el de servir como plantilla para crear objetos. 01/11/2020 Aeronave tipo marca modelo capacidad fuerza vel. Max ……. . acelerar() desacelerar() ascender() descender() giro. Der() giro. Izq() ……… 19

Conceptos fundamentales de POO La Orientación a Objetos (OO) tiene como objetivo desarrollar programas

Conceptos fundamentales de POO La Orientación a Objetos (OO) tiene como objetivo desarrollar programas (software) que reflejen un pedazo del mundo real. La OO va mas allá de solo considerar atributos y comportamiento. Considera otros aspectos de los objetos: n Abstracción, herencia, polimorfismo, encapsulación. . . 01/11/2020 20

Abstracción En palabras sencillas “abstracción” significa filtrar las propiedades y operaciones de un objeto

Abstracción En palabras sencillas “abstracción” significa filtrar las propiedades y operaciones de un objeto hasta queden solamente aquellas que necesitamos. (Generalización) HH: mm: ss 01/11/2020 21

Abstracción (2) “Supresión intencionada, u ocultamiento, de algunos detalles de un proceso o artefacto,

Abstracción (2) “Supresión intencionada, u ocultamiento, de algunos detalles de un proceso o artefacto, con el objeto de destacar de manera más clara otros aspectos, detalles o estructuras” 01/11/2020 [Booch’ 96] 22

Encapsulación Es el “empaquetar” en una clase los datos (propiedades) y el código (métodos)

Encapsulación Es el “empaquetar” en una clase los datos (propiedades) y el código (métodos) que operan en esos datos. El acceso a esos datos solo es permitido a través de los métodos del objeto. La calculadora oculta las operaciones que realiza internamente de la persona que la utiliza. 01/11/2020 23

Encapsulación (2) Las clases pueden ser declaradas como publicas y como packaje. Los atributos

Encapsulación (2) Las clases pueden ser declaradas como publicas y como packaje. Los atributos y métodos pueden ser public, private, protected y packaje. De esta forma se puede controlar el acceso y evitar un uso inadecuado. 01/11/2020 24

Encapsulación (3) “Proceso de almacenar en un mismo compartimento los elementos de una abstracción

Encapsulación (3) “Proceso de almacenar en un mismo compartimento los elementos de una abstracción que constituyen su estructura y su comportamiento” [Booch’ 96] 01/11/2020 25

Herencia La herencia podemos definirla como la capacidad para crear nuevas clases a partir

Herencia La herencia podemos definirla como la capacidad para crear nuevas clases a partir de clases existentes (extends). Las nuevas clases podrán contar con otros atributos y operaciones (métodos). Una clase derivada puede añadir nuevos atributos y métodos y/o redefinir los atributos y métodos heredados. Ventaja principal: Reutilización del código. Existen 2 tipos de herencia: Simple y Múltiple. 01/11/2020 26

Ejemplo de herencia: Padre e hijo. Superclase Subclase 01/11/2020 27

Ejemplo de herencia: Padre e hijo. Superclase Subclase 01/11/2020 27

Herencia Simple: En este tipo de jerarquía cada clases tiene como máximo una sola

Herencia Simple: En este tipo de jerarquía cada clases tiene como máximo una sola clase base. Polígono Triangulo 01/11/2020 Rectángulo Hexágono 28

Herencia Multiple Herencia Múltiple: Se refiere a que una clase derivada puede heredar todas

Herencia Multiple Herencia Múltiple: Se refiere a que una clase derivada puede heredar todas las características asociadas a más de una clase base o superclase. Persona Profesor Investigador Profesor Universitario 01/11/2020 29

Relaciones entre clases. Herencia TRANSPORTE 01/11/2020 30

Relaciones entre clases. Herencia TRANSPORTE 01/11/2020 30

Polimorfismo Es la habilidad de enviar el mismo mensaje a objetos de diferentes clases

Polimorfismo Es la habilidad de enviar el mismo mensaje a objetos de diferentes clases y que cada objeto responda de una manera particular, según su naturaleza. abrir 01/11/2020 Se producirá una operación diferente, para cada uno de ellos, a pesar de que la acción tiene el mismo nombre. . 31

Envío de Mensajes Los objetos trabajan entre si por medio del envío de mensajes.

Envío de Mensajes Los objetos trabajan entre si por medio del envío de mensajes. Todos los objetos se comunican entre sí mediante el paso de mensajes, y esta referido a la ejecución de un método asociado con el objeto que lo llama. Luego para enviar mensajes se estipula el nombre del objeto y la acción que se requiere poner en ejecución. 01/11/2020 32

Asociaciones Una asociación es un mapeo entre un objeto en una clase con uno

Asociaciones Una asociación es un mapeo entre un objeto en una clase con uno o más objetos en otra clase. conduce 01/11/2020 33

Relación de Persona y Coche 01/11/2020 propietario Persona 34

Relación de Persona y Coche 01/11/2020 propietario Persona 34

Relaciones entre módulos: Editorial Autor Publicacion Revista Libro Actas Congreso “Libro es una especialización

Relaciones entre módulos: Editorial Autor Publicacion Revista Libro Actas Congreso “Libro es una especialización de Publicacion” “Publicacion usa servicios de Autor” 01/11/2020 35

Agregación Es el proceso de crear una clase que esta conformada en su totalidad

Agregación Es el proceso de crear una clase que esta conformada en su totalidad o en parte por objetos de otra clase. PC CPU 01/11/2020 memoria monitor ratón teclado …. . 36

Fin de la presentaciòn 01/11/2020 37

Fin de la presentaciòn 01/11/2020 37