PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo ...

56
PROGRAMACIÓN ORIETADA A OBJETOS

Transcript of PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo ...

Page 1: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

PROGRAMACIÓN ORIETADA A OBJETOS

Page 2: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

2

Introducción

Paradigma: Ejemplo ilustrativo, enunciado modelo

Programación imperativa

Programación funcional

Programación lógicaNuevo Paradigma:

Programación orientada a objeto (POO).

Page 3: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

3

Programación Procedimental

Procedimiento 1

Procedimiento 2

Procedimiento 3

DATOS

Page 4: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

4

Programación Orientada a Objetos

Métodos

DATOS

Métodos

DATOS

Métodos Métodos

DATOS DATOS

Page 5: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

5

Facilita la creación de software de calidad por sus factores que potencian:

El mantenimiento

La extensión y

La reutilización del software generado bajo este paradigma.

La POO se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos.

POO

Page 6: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

6

La visión de Objetos:

MesasSillasComputadoresAutosCuentas bancariasPartidos de fútbolPerros, etc

POO

Page 7: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

7

Los objetos se pueden Organizar según su necesidad

Mamíferos : Perros, Gatos Electrodomésticos : Refrigerador,

Microondas Deportes : Fútbol, Tenis Vehículos : Autos, Camiones

POO

Page 8: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

8

METODOLOGÍA

Page 9: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

9

La base de esta tecnología es:

Modelar

con base en

Entidades

Los problemas que se desean resolver

Relevantes  y tangibles en el problema.

Modelamiento

Page 10: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

10

Abstracción

El modelo define una perspectiva abstracta del problema

Los datos que son afectados

Las operaciones que se aplican sobre los datos

Page 11: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

11

Ejemplo

Para la administración docente, las entidades que participan son:

Administr. Docente

Profesores

Asignaturas

Alumnos

Salas

Page 12: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

12

POO

Identificar los objetos importantes

Organizar los objetos en jerarquías

Otorgar atributos relevantes a los

objetos, que describirán las

características de ellos.

Agregar funciones a los objetos para

realizar las tareas necesarias

Page 13: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

13

Conceptos de la POO

Conceptos fundamentales que sustentan la POO

Clase

Objeto

Instancia

Atributos

Métodos

La POO trata de amoldarse al modo de pensar del hombre y no al de la máquina

Page 14: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

14

Clase

Una clase es como un tipo de dato creado por el usuario, que posee campos:

Atributos: Datos, EstadoMétodos: Comportamiento

Page 15: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

15

Clase

En general, podemos crear una clase inspirados en cualquier objeto que esté a nuestro alrededor, como puede ser:

PersonaAutoMascota

Page 16: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

16

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 17: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

17

Instancias-Objetos

EJEMPLO:

Supongamos que existe una clase Perro.

Mi mascota Sam, es una instancia de esa clase, ie, un objeto de tipo Perro.

El perro Jack de mi vecina es una instancia de

la misma clase Perro y, en consecuencia, otro objeto del mismo tipo.

Page 18: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

18

Atributos

Son aquellas características que le asociamos a un tipo de objeto (clase) y que darán cuenta del estado del objeto.

Raza Edad Color Nombre del dueño, etc

Page 19: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

19

Métodos

Representan todas aquellas acciones que puede realizar o se pueden llevar a cabo sobre un objeto de una clase.

En la implementación, estos métodos son segmentos de código similares a los procedimientos y funciones utilizadas en la programación modular.

La clase Perro puede tener los métodos: Correr, Comer, Bañar Vacunar

Page 20: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

20

Principios de la P OO

Propiedades, que lo llevan a ser un estilo de desarrollo que permite crear código re-utilizable

Encapsulamiento

Herencia

Polimorfismo

Page 21: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

21

ENCAPSULAMIENTOAbstracción de Datos

Page 22: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

22

Encapsulamiento

Proceso 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 objeto 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 23: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

23

Encapsulamiento

Todos ellos están encapsulados o contenidos dentro de la misma clase, de manera que son propiedad de dicha clase.

Esos métodos y atributos pueden ser utilizados por otras clases sólo si la clase que los encapsula le brinda los permisos necesarios para ello.

Toda clase tiene una serie de atributos y métodos asociados a ella.

Page 24: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

24

Encapsulamiento

NúmeroSaldo

Atributos de una Cuenta Corriente:

Métodos: Depositar

Girar

Conocer el saldo

Cómo se almacenan estos datos?

Page 25: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

25

HERENCIAOrganización jerárquica

Page 26: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

26

Herencia

Permite la reutilización de código creando nuevas clases a partir de las existentes (construidas y depuradas)

Un nueva clase se generará agregando atributos y/o código a una clase existente

Una clase (clase hija) puede heredar, de otra clase (clase padre):

Atributos y Métodos

Page 27: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

27

Herencia

Em pleadoS u e ld o

ClienteC u en ta

Alum noC arre ra

PersonaN om b re

D irecc ió nR U T

Page 28: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

28

POLIMORFISMO

Page 29: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

29

Polimorfismo

Capacidad de que dos clases diferentes respondan de forma distinta a un mismo mensaje.

Esto quiere decir que dos clases que tengan un método con el mismo nombre, y que respondan al mismo tipo de mensaje (es decir, que reciba los mismo parámetros), ejecutarán acciones distintas.

Page 30: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

30

Ejemplos de polimorfosmo

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 31: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

31

Ejemplos de polimorfosmo

Ejemplo 2:

Si tenemos las clases Persona y Gato, ambas responderán de manera distinta al mensaje "comunicar"

La persona hablará: Objeto María El gato maullará: Objeto: Kitty

Page 32: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

32

Ejemplos de polimorfosmo

OBJETOS

'A'

3

MENSAJESucesor

RESULTADOS

'B'

4

Ejemplo 3:

Si tenemos las clases Entero y Char, ambas

responderán de manera distinta al mensaje

"Sucesor"

Page 33: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

OBJETOS

Page 34: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

34

Objetos

En la POO se dice que en un objeto: "se unen datos y procesos".

En la programación estructurada, estaban separados en forma de variables y funciones.

Objeto. Instanciación de objetos Tiempo de vida de un objeto

variable.

declaración de variables.

ámbito de una variable.

POO Procedural

Page 35: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

35

Objetos

Un objeto consta de:

Un tiempo de vida Estado Comportamiento

Atributos

Métodos

Cada objeto es responsable de inicializarse y destruirse en forma correcta.

Page 36: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

36

La duración de un objeto en un programa siempre está limitada en el tiempo.

Tiempo de vida de un objeto

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,

Cuando dejan de existir se dice que son destruidos.

Page 37: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

37

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.

Estado de un objeto

Page 38: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

38

Todo objeto debe de presentar una interfaz,

Esta interfaz queda definida por sus métodos, para que el resto de objetos, que forman parte del programa, puedan interactuar con él.

Comportamiento de un objeto

Page 39: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

CLASES

Page 40: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

40

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 41: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

41

Clases

Permite representar y definir colecciones de objetos.

Proporcionan una plantilla para la creación de objetos..Los elementos que componen la clase son

Atributos

Métodos

Clase:

Representan el estado de un objeto (Variables de ejemplar)

Representan el comportamiento de un objeto. (Funciones miembro).

Page 42: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

42

Ejemplo de instancia de objetos

Clase: Cuenta corriente

Variables Miembro: Número Nombre Saldo

Funciones Miembros: Depositar Girar Consulta del saldo

Page 43: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

43

Ejemplo de instancia de objetos

Clase: Cuenta corriente

Objeto: A

Métodos

Depositar

Girar

Consultar

Num: 1234

Nombre: Juan

Saldo: 350.000

Instanciación: Cuenta Corriente A,B

Métodos

Depositar

Girar

Consultar

Num: 9876

Nombre: María

Saldo: 450.600

Objeto: B

Page 44: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

MENSAJES

Page 45: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

45

Mensaje

Un programa en ejecución es una colección de objetos, donde los objetos que interactúan son creados y destruídos.

La interacción se basa en mensajes que son mandados de un objeto a otro, donde el emisor le pide al receptor que aplique un método a sí mismo.

Mecanismo por el cual se solicita una acción sobre el objeto.

Page 46: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

46

Mensajes

Perico (pajarero)Paco (cliente)

Mensaje

La interpretación del mensaje dependerá del receptor

Peca (secretaria)

Perico (pajarero)Paco (cliente)

Un objeto invoca un método como una reacción al recibir un mensaje

Page 47: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

METODOS

Page 48: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

48

Métodos

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 49: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

49

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 50: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

RESUMEN

Page 51: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

51

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 52: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

52

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 53: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

53

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 54: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

54

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 55: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

55

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 56: PROGRAMACIÓN ORIETADA A OBJETOS. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional

56

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.