PROGRAMACION ORIENTADA A OBJETO
-
Upload
anabel-jaramillo -
Category
Education
-
view
366 -
download
0
description
Transcript of PROGRAMACION ORIENTADA A OBJETO
![Page 1: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/1.jpg)
Qué es el desarrollo Orientado por Objetos
El desarrollo orientado por objetos es una nueva forma de pensar acerca del software basado sobre abstracciones que existen en el mundo real.
En este contexto, el desarrollo es referido a la primera parte del ciclo de vida del software: análisis, diseño e implantación.
![Page 2: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/2.jpg)
Facilita la creación de software de calidad pues sus características potencian:La mantenciónLa extensión y La reutilización del software generado bajo
este paradigma
La POO se basa en la idea natural de un mundo lleno de objetos y que la resolución de problemas se realiza mediante el modelo de objetos
![Page 3: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/3.jpg)
• ¿ Qué es un Objeto ?
Un objeto es una entidad física o abstracta que tiene un comportamiento antes ciertos estímulos, tanto externos como de otros objetos específicos que se encuentran dentro del sistema.
![Page 4: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/4.jpg)
4
La visión de Objetos:
MesasSillasComputadoresAutosCuentas bancariasPartidos de fútbolPerros, etc
![Page 5: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/5.jpg)
Un objeto es una entidad que tiene: estado, comportamiento e identidad
1. Estado: son los valores de los atributos que identifican el estado del objeto.
2. Comportamiento: esta definido en base a sus operaciones.
3. Identidad: se determina, en base al estado de un objeto.
![Page 6: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/6.jpg)
El Software
• Construcción. • Mantenimiento.
Analisis.Especificación.Diseño.
Corrección de errores.Cambios debido a revisiones.
![Page 7: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/7.jpg)
7
Programación Orientada a Objeto
• Identificar los objetos importantes
• Organizar los objetos en jerarquías
• Otorgar, a los objetos, atributos relevantes que describan sus características
• Proveer, a cada objeto, las funciones inherentes a su comportamiento
![Page 8: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/8.jpg)
8
Conceptos de la POO
La POO trata de aproximarse al modo de actuar del hombre y no al de la máquina
Conceptos fundamentales que sustentan la POO: Clase Objeto Instancia Atributos Métodos
![Page 9: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/9.jpg)
9
Clase
Una clase es como un tipo de dato creado por el usuario, que posee dos categorías de miembros: Atributos (Datos) Estado Métodos (Algoritmos)
Comportamiento
![Page 10: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/10.jpg)
10
EJEMPLO Clase
En general, es posible crear una clase a partir de cualquier objeto que esté a nuestro alrededor. Por ejemplo: Persona Automóvil Mascota
![Page 11: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/11.jpg)
11
Instancias-Objetos
• Una Instancia es una ocurrencia de la clase
• Al momento de crear un objeto se produce la instanciación
• Un Objeto es una instancia de una Clase específica
![Page 12: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/12.jpg)
12
Instancias-Objetos
EJEMPLO:Suponer que existe la clase Vehículo
El auto MODELO H-4631 es una instancia de la clase Vehículo, o sea, un objeto de esa clase
La camioneta MODELO ZT-9283 es otra instancia de la clase Vehículo
![Page 13: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/13.jpg)
13
Atributos
• Son los datos que caracterizan a los objetos de una clase y determinan el estado de un objeto
Marca Año Color Patente, etc.
![Page 14: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/14.jpg)
14
Métodos
• Representan todas aquellas acciones que se pueden realizar sobre un objeto de cierta clase
• En la implementación, estos métodos son segmentos de código en la forma de funciones
• La clase Vehículo puede incluir los métodos: Encender Acelerar Virar Frenar
![Page 15: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/15.jpg)
15
Principios de la POO
• Propiedades, que lo llevan a ser un estilo de desarrollo que permite crear código re-utilizable
Encapsulamiento
Herencia
Polimorfismo
![Page 16: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/16.jpg)
16
ENCAPSULAMIENTOAbstracción de Datos
![Page 17: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/17.jpg)
17
EncapsulamientoProceso por el que se ocultan:
Las estructuras de datosLos detalles de la implementación
Permite considerar a los objetos como "cajas negras", evitando que otros objetos accedan a detalles que NO LES INTERESA
Una vez creada la clase, las funciones usuarias no requieren conocer los detalles de su implementación
![Page 18: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/18.jpg)
18
Encapsulamiento• Toda clase tiene un conjunto de atributos y
métodos asociados a ella
• Todos ellos están encapsulados o contenidos dentro de la misma clase, de manera que son miembros de dicha clase
• Esos métodos y atributos pueden ser utilizados por otras clases sólo si la clase que los encapsula les brinda los permisos necesarios para ello
![Page 19: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/19.jpg)
19
Encapsulamiento
Atributos de una Cuenta Corriente: Número Saldo
Métodos: Depositar Girar Conocer el saldo
¿Cómo se almacenan estos datos?
![Page 20: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/20.jpg)
20
HERENCIAOrganización jerárquica
![Page 21: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/21.jpg)
21
Herencia
• Permite reutilizar código creando nuevas clases a partir de las existentes (construidas y depuradas)
• Compromete una relación de jerarquía (es-un)
• Una nueva clase se generará agregando atributos y/o código a una clase existente
• Una clase (derivada) puede heredar de otra clase (base):Atributos y Métodos
![Page 22: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/22.jpg)
22
Herencia
EmpleadoS u e ld o
ClienteC u en ta
AlumnoC arre ra
PersonaN om b re
D irecc ió nR U T
![Page 23: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/23.jpg)
23
POLIMORFISMO
![Page 24: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/24.jpg)
24
Polimorfismo
• Capacidad que permite a dos clases diferentes responder de forma distinta a un mismo mensaje
• Esto significa que dos clases que tengan un método con el mismo nombre y que respondan al mismo tipo de mensaje (es decir, que reciban los mismo parámetros), ejecutarán acciones distintas
![Page 25: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/25.jpg)
25
Polimorfismo
Ejemplo 1:
Al presionar el acelerador esperamos que aumente la velocidad del auto, independiente de si se tiene un:
Motor con carburador Motor con inyección electrónica
![Page 26: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/26.jpg)
26
Polimorfismo
OBJETOS'A'3
MENSAJESucesor RESULTADOS
'B'4
Ejemplo 2:
Si se tienen las clases Entero y Char, ambas responderán de
manera distinta al mensaje "Sucesor"
![Page 27: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/27.jpg)
OBJETOS
![Page 28: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/28.jpg)
28
Objetos
En la POO se dice que un objeto: "integra datos y algoritmos"
En la programación estructurada, variables y funciones están separadas
ClaseObjeto
Instanciación de objetos
TipoVariable
Declaración de variables
POO Estructurada
![Page 29: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/29.jpg)
29
Objetos
Cada objeto es responsable de inicializarse y destruirse en forma correcta
Un objeto consta de: Tiempo de vida Estado Comportamiento
Atributos
Métodos
![Page 30: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/30.jpg)
30
Tiempo de vida de un objeto
La duración de un objeto en un programa siempre está limitada en el tiempo
La mayoría de los objetos sólo existen durante una parte de la ejecución del programa
Los objetos son creados mediante un mecanismo denominado instanciación
Los objetos dejan de existir cuando son destruidos
![Page 31: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/31.jpg)
31
Estado de un objeto
Queda definido por sus atributos
Con él se definen las propiedades del objeto, y el estado en que se encuentra en un momento determinado de su existencia
![Page 32: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/32.jpg)
32
Comportamiento de un objeto
Queda definido por los métodos
Los prototipos de los métodos definidos en la interfaz de una clase permiten a otros objetos, que forman parte de la aplicación, interactuar con los objetos de esa clase
![Page 33: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/33.jpg)
CLASES
![Page 34: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/34.jpg)
34
Clases
• Las clases son abstracciones que representan a un conjunto de objetos con un:
Comportamiento e Interfaz común
• Es la implementación de un tipo de dato (considerando los objetos como instancias de las clases)
![Page 35: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/35.jpg)
35
Clases
Permiten definir y representar colecciones de objetos
Proveen un modelo para la creación de objetos
Los elementos que componen la clase son
Atributos
Métodos
Representan el estado de un objeto (variables de ejemplar)
Representan el comportamiento de un objeto (funciones miembro)
![Page 36: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/36.jpg)
36
Ejemplo de instancia de objetos
• Clase: Cuenta corriente– Atributos:
– Número– Nombre– Saldo
– Métodos:– Depositar– Girar– Consultar saldo
![Page 37: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/37.jpg)
37
Ejemplo de instancia de objetos
• Clase: Cuenta corriente
• Instanciación: Cuenta Corriente A, BObjeto: A
Métodos
Depositar
Girar
Consultar
Num: 1234
Nombre: Juan
Saldo: 350.000
Métodos
Depositar
Girar
Consultar
Num: 9876
Nombre: María
Saldo: 450.600
Objeto: B
![Page 38: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/38.jpg)
MENSAJES
![Page 39: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/39.jpg)
39
Mensaje
• Mecanismo por el cual se solicita una acción sobre el objeto
• Un programa en ejecución es una colección de objetos que se crean, interactúan y se detruyen
• La interacción se basa en mensajes que son enviados de un objeto a otro, de modo que el emisor le pide al receptor la ejecución de un método
![Page 40: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/40.jpg)
40
Mensajes
• Un objeto invoca un método como una reacción al recibir un mensaje
• La interpretación del mensaje dependerá del receptor
Médico Paciente
MensajeRecepcionista
Médico Paciente
![Page 41: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/41.jpg)
MÉTODOS
![Page 42: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/42.jpg)
42
Métodos
Un método es una función miembro de una clase
Establece el comportamiento del objeto
Opera directamente sobre el objeto que lo invocó
Recibe, como parámetro implícito, el objeto que lo invocó
![Page 43: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/43.jpg)
43
Métodos
• Si el método requiere otros objetos de la clase, éstos deberán ser pasados como parámetros explícitos y el método sólo podrá acceder en forma indirecta a estos objetos
• Ejemplos: Depositar Girar Consultar
![Page 44: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/44.jpg)
RESUMEN
![Page 45: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/45.jpg)
45
Mensajes y métodos
• Un objeto (agente emisor) envía un mensaje a otro objeto (agente receptor)
• El mensaje tiene codificada la petición de una acción
• El mensaje incluye la información (argumentos) necesaria para satisfacer la petición
• Si el receptor acepta el mensaje, acepta la responsabilidad de ejecutar la acción indicada
• En respuesta a un mensaje, el receptor ejecuta un método para satisfacer la petición
![Page 46: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/46.jpg)
46
Clases y ejemplares
• Todos los objetos son ejemplares de una clase
• La clase del receptor determina el método que se activa como respuesta a un mensaje
• Todos los objetos de una clase usan el mismo método en respuesta a mensajes similares
![Page 47: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/47.jpg)
47
Clases y métodos
• Los objetos son ejemplos de TAD’s
• Un TAD tiene dos caras: una exterior, la que ve el usuario, y una interior, la que sólo ve el programador
• El usuario ve nada más que un conjunto de operaciones que definen el comportamiento de la abstracción
• El programador ve las variables de datos que se usan para mantener el estado interno del objeto
• Un ejemplar es un representante de una clase
![Page 48: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/48.jpg)
Tipo de dato abstracto
Un tipo de dato abstracto (TDA) o Tipo abstracto de datos (TAD): para la definición y representación de tipos de datos (valores + operaciones), junto con sus propiedades.
Abstract Data Type
![Page 49: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/49.jpg)
49
Clases y métodos
• Una variable de ejemplar es una variable interna mantenida por un ejemplar
• Cada ejemplar tiene su propia colección de variables de ejemplar
• Las variables de ejemplar sólo son modificables por los métodos definidos en la clase
• Un objeto es la combinación de estado y comportamiento
![Page 50: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/50.jpg)
50
Clases y métodos
• El estado lo determinan las variables de ejemplar
• El comportamiento lo determinan los métodos
• Desde el exterior, los clientes sólo pueden ver el comportamiento de los objetos
• Desde el interior, los métodos proporcionan el comportamiento apropiado mediante las modificaciones del estado
![Page 51: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/51.jpg)
51
Clases y métodos
• La interfaz describe la forma en que un objeto se conecta con el mundo
• La implementación describe cómo se logra la responsabilidad prometida en la interfaz
• Una clase se puede concebir como un registro con dos variedades de campos: datos y procedimientos
• Los datos constituyen las variables de ejemplar
• Los procedimientos constituyen los métodos
![Page 52: PROGRAMACION ORIENTADA A OBJETO](https://reader036.fdocument.pub/reader036/viewer/2022062300/557b3c35d8b42ae54f8b5104/html5/thumbnails/52.jpg)
Resumen elaborado para propósitos educativos; gracias a los trabajos colgados por otros facilitadores y participantes de
la Internet!
Cumple con los requerimientos básicos para la guía de trabajo.