30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith...
-
Upload
rodrigo-garcia-herrero -
Category
Documents
-
view
220 -
download
0
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/1.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/2.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/3.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/4.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/5.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/6.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/7.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/8.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/9.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/10.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/11.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/12.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/13.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/14.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/15.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/16.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/17.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/18.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/19.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/20.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/21.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/22.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/23.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/24.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/25.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/26.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/27.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/28.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/29.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/30.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/31.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/32.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/33.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/34.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/35.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/36.jpg)
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.](https://reader035.fdocuments.ec/reader035/viewer/2022062808/5665b4e61a28abb57c949901/html5/thumbnails/37.jpg)
21/04/23 37
Fin de la presentaciòn