30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith...

37
28/06/22 1

Transcript of 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith...

Page 1: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 1

Page 2: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 2

Introducción a la Programación Orientada a Objetos

Programación IIILic. Judith Callisaya Choque

Page 3: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

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, FrameWorks, conjugado con el planteamiento estándar UML(Lengaje de Modelado Visual)

21/04/23 3

Page 4: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

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.

21/04/23 4

Instancia: Efectuar una copia de la clase

Page 5: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

Siglas usadas POO y OOP

POO: Programacion Orientada a Objetos.

OOP: Object Oriented Programming

Todo programa para ser considerado OO debe incluir:

21/04/23 5

Page 6: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

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.

21/04/23 6

Page 7: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 7

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

Modularidad

Page 8: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 8

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: Comprensión modular: es posible entender un módulo

sin conocer los otros. Continuidad modular: un cambio en la especificación

afecta sólo a un módulo o a unos pocos. Protección modular: el efecto de una situación anormal

producida en un módulo afecta sólo a éste o a unos pocos.

Los módulos se comunican mediante interfaces estrechas y bien definidas.

Page 9: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 9

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”

Una abstracción de datos puede verse como que tiene dos caras: Interfaz: operaciones que definen el comportamiento (cliente) Implementación (programador)

Principios de diseño modular

#define TAM 10

int datos[TAM];

apilar

desapilar

Page 10: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 10

¿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 mundo real. Foco

Potencia

encender()apagar()

Page 11: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

Conceptos fundamentales de POOClases 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

21/04/23 11

Page 12: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 12

Hablemos de Objetos

Que es un objeto ?

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.

Page 13: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 13

¿Cómo se encuentran los objetos?

“Los objetos están ahí para usarlos”

Page 14: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

Definición de un objeto

21/04/23 14

Los objetos son concretos y pueden representar objetos reales o abstractos. Por ejemplo: Cada ser humano pertenece a la clase persona

Funciones (Comportamientos o acciones) que puede realizar:

•Luis:: nace •Luis::crece •Luis::alimenta•Luis:: muere

Tiene atributos (características):•Luis•Pérez•Varón•15 años•1,7 m

Page 15: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 15

Funciones que puede realizar:

•Ir •Parar •Girar a la derecha •Girar a la izquierda

Tiene las características:•Color •Velocidad •Tamaño •Carburante

Definición del objeto coche

Page 16: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

Clasificación de objetos

21/04/23 16

1. Cosas tangibles: Avión, libro.2. Roles o papeles: Gerente, cliente, empleado.3. Organizaciones: Equipo, empresa, división4. Incidentes: (Sucesos, eventos) vuelo, accidente.5. Interacciones: (Transición, contratos) compras,

ventas, contrato laboral.6. Especificaciones: Inventarios, proformas.7. Lugares: Sala de espera, parqueo, oficina.

Page 17: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 17

Los objetos con estados similares y el mismo comportamiento se agrupan en clases

Page 18: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

Clases (UML)

21/04/23 18

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.

Page 19: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

Ejemplo: Clase Aeronave

Los objetos se los categoriza en clases.

21/04/23 19

Aeronave

tipomarcamodelocapacidadfuerzavelMax……..

acelerar()desacelerar() ascender()descender()giroDer()giroIzq()………En OO, una clase no solo tiene el objetivo de categorizar

sino también el de servir como plantilla para crear objetos.

Page 20: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 20

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: Abstracción, herencia, polimorfismo,

encapsulación...

Page 21: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 21

Abstracción

En palabras sencillas “abstracción” significa filtrar las propiedades y operaciones de un objeto hasta que queden solamente aquellas que necesitamos. (Generalización)

HH:mm:ss

Page 22: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 22

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”

[Booch’96]

Page 23: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 23

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 lasoperaciones que realiza

internamente de lapersona que la utiliza.

Page 24: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

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.

21/04/23 24

Encapsulación (2)

Page 25: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 25

“Proceso de almacenar en un mismo compartimento los elementos de una abstracción que constituyen su estructura y su comportamiento” [Booch’96]

[Booch’96]

Encapsulación (3)

Page 26: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 26

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.

Page 27: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

Ejemplo de herencia: Padre e hijo.

21/04/23 27

Superclase

Subclase

Page 28: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 28

Herencia Simple

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

Polígono

Triangulo Rectángulo Hexágono

Page 29: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 29

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

Profesor Universitario

Investigador

Page 30: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 30

Relaciones entre clases. Herencia

TRANSPORTE

Page 31: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 31

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

Se producirá una operación diferente, para cada uno de ellos, a pesar de que la acción tiene el mismo nombre..

Page 32: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 32

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.

Page 33: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 33

Asociaciones

Una asociación es un mapeo entre un objeto en una clase con uno o más objetos en otra clase.

conduce

Page 34: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 34

Relación de Persona y Coche

Coche Personapropietario

Page 35: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 35

“Libro es una especialización de Publicacion”

“Publicacion usa servicios de Autor”

Relaciones entre módulos: Editorial

Autor

Congreso

Publicacion

Revista Libro Actas

Page 36: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 36

Agregación

Es el proceso de crear una clase que esta conformada en su totalidad o en parte por objetos de otra clase.

CPU memoria monitor ratón teclado …..

PC

Page 37: 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque.

21/04/23 37

Fin de la presentaciòn