programación orientada a objetos · programación orientada a objetos (poo) 3 programación...

55
PROGRAMACIÓN ORIETADA A OBJETOS

Upload: others

Post on 22-Aug-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

PROGRAMACIÓN ORIETADA A OBJETOS

Page 2: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

2

Introducción

Paradigma: Ejemplo ilustrativo, enunciado modelo Programación imperativa

Programación funcional

Programación lógica

Nuevo Paradigma: Programación Orientada a Objetos (POO)

Page 3: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

3

Programación Procedimental

Procedimiento 1

Procedimiento 2

Procedimiento 3

DATOS

Page 4: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

4

Programación Orientada a Objetos

Métodos

DATOS

Métodos

DATOS

Métodos Métodos

DATOS DATOS

Page 5: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

5

Facilita la creación de software de calidad puessus características potencian: La mantención

La extensión y

La reutilización del software generado bajo esteparadigma

La POO se basa en la idea natural de un mundolleno de objetos y que la resolución de problemasse realiza mediante el modelo de objetos

POO

Page 6: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

6

La visión de Objetos:

MesasSillasComputadoresAutosCuentas bancariasPartidos de fútbolPerros, etc

POO

Page 7: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

7

Los objetos se pueden Organizar según sunecesidad

Mamíferos : Perro, CiervoTeléfonos : Fijo, CelularDeportes : Fútbol, TenisVehículos : Automóvil, Camión

POO

Page 8: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

8

METODOLOGÍA

Page 9: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

9

La base de esta tecnología es:

Modelamiento

Modelar

con base en

Entidades

Los problemas

que se desea

resolver

Relevantes y

tangibles en el

problema

Page 10: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

10

El modelo define una perspectiva abstracta del problema Los datos que son afectados

Las operaciones que se aplican sobre los datos

Abstracción

Page 11: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

11

Ejemplo

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

Administr. Docente

Profesores

Asignaturas

Alumnos

Salas

Page 12: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

12

POO

Identificar los objetos importantes

Organizar los objetos en jerarquías

Otorgar, a los objetos, atributos relevantes quedescriban sus características

Proveer, a cada objeto, las funciones inherentes asu comportamiento

Page 13: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

13

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 14: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

14

Clase

Una clase es como un tipo de dato creado por elusuario, que posee dos categorías de miembros:

Atributos (Datos) Estado

Métodos (Algoritmos) Comportamiento

Page 15: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

15

Clase

En general, es posible crear una clase a partir decualquier objeto que esté a nuestro alrededor. Porejemplo:

Persona

Automóvil

Mascota

Page 16: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

16

Instancias-Objetos

Una Instancia es una ocurrencia de la clase

Al momento de crear un objeto se produce lainstanciación

Un Objeto es una instancia de una Clase específica

Page 17: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

17

Instancias-Objetos

EJEMPLO:

Suponer que existe la clase Vehículo

El auto patente WF-4631 es una instancia de laclase Vehículo, o sea, un objeto de esa clase

La camioneta patente ZT-9283 es otra instanciade la clase Vehículo

Page 18: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

18

Atributos

Son los datos que caracterizan a los objetos de unaclase y determinan el estado de un objeto

Marca Año Color Patente, etc.

Page 19: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

19

Métodos

Representan todas aquellas acciones que se puedenrealizar sobre un objeto de cierta clase

En la implementación, estos métodos sonsegmentos de código en la forma de funciones

La clase Vehículo puede incluir los métodos:

Encender

Acelerar

Virar

Frenar

Page 20: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

20

Principios de la POO

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

Encapsulamiento

Herencia

Polimorfismo

Page 21: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

21

ENCAPSULAMIENTOAbstracción de Datos

Page 22: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

22

Encapsulamiento

Proceso por el que se ocultan:Las estructuras de datosLos detalles de la implementación

Permite considerar a los objetos como "cajasnegras", evitando que otros objetos accedan adetalles que NO LES INTERESA

Una vez creada la clase, las funciones usuarias norequieren conocer los detalles de su implementación

Page 23: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

23

Encapsulamiento

Toda clase tiene un conjunto de atributos ymétodos asociados a ella

Todos ellos están encapsulados o contenidosdentro de la misma clase, de manera que sonmiembros de dicha clase

Esos métodos y atributos pueden ser utilizados porotras clases sólo si la clase que los encapsula lesbrinda los permisos necesarios para ello

Page 24: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

24

Encapsulamiento

Atributos de una Cuenta Corriente: Número

Saldo

Métodos: Depositar

Girar

Conocer el saldo

¿Cómo se almacenan estos datos?

Page 25: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

25

HERENCIAOrganización jerárquica

Page 26: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

26

Herencia

Permite reutilizar código creando nuevas clases apartir de las existentes (construidas y depuradas)

Compromete una relación de jerarquía (es-un)

Una nueva clase se generará agregando atributosy/o código a una clase existente

Una clase (derivada) puede heredar de otra clase(base):

Atributos y

Métodos

Page 27: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

27

Herencia

EmpleadoSueldo

ClienteCuenta

AlumnoCarrera

PersonaNombre

Dirección

RUT

Page 28: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

28

POLIMORFISMO

Page 29: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

29

Polimorfismo

Capacidad que permite a dos clases diferentesresponder de forma distinta a un mismo mensaje

Esto significa que dos clases que tengan un métodocon el mismo nombre y que respondan al mismo tipode mensaje (es decir, que reciban los mismoparámetros), ejecutarán acciones distintas

Page 30: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

30

Ejemplo 1:

Al presionar el acelerador esperamos queaumente la velocidad del auto, independiente desi se tiene un:

Motor con carburador

Motor con inyección electrónica

Polimorfismo

Page 31: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

31

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"

Polimorfismo

Page 32: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

OBJETOS

Page 33: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

33

Objetos

En la POO se dice que un objeto: "integradatos y algoritmos"

En la programación estructurada, variables yfunciones están separadas

Clase

Objeto

Instanciación de objetos

Tipo

Variable

Declaración de variables

POO Procedural

Page 34: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

34

Objetos

Cada objeto es responsable de inicializarse ydestruirse en forma correcta

Un objeto consta de:

Tiempo de vida

Estado

Comportamiento

Atributos

Métodos

Page 35: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

35

Tiempo de vida de un objeto

La duración de un objeto en un programasiempre está limitada en el tiempo

La mayoría de los objetos sólo existendurante una parte de la ejecución delprograma

Los objetos son creados mediante unmecanismo denominado instanciación

Los objetos dejan de existir cuando sondestruidos

Page 36: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

36

Queda definido por sus atributos

Con él se definen las propiedades del objeto,y el estado en que se encuentra en unmomento determinado de su existencia

Estado de un objeto

Page 37: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

37

Queda definido por los métodos

Los prototipos de los métodos definidos en lainterfaz de una clase permiten a otrosobjetos, que forman parte de la aplicación,interactuar con los objetos de esa clase

Comportamiento de un objeto

Page 38: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

CLASES

Page 39: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

39

Clases

Las clases son abstracciones que representan a unconjunto de objetos con un:

Comportamiento e

Interfaz común

Es la implementación de un tipo de dato(considerando los objetos como instancias de lasclases)

Page 40: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

40

Clases

Permiten definir y representar colecciones deobjetos

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 41: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

41

Ejemplo de instancia de objetos

Clase: Cuenta corriente

Atributos:

Número

Nombre

Saldo

Métodos:

Depositar

Girar

Consultar saldo

Page 42: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

42

Ejemplo de instancia de objetos

Clase: Cuenta corriente

Instanciación: Cuenta Corriente A, B

Objeto: 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 43: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

MENSAJES

Page 44: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

44

Mensaje

Mecanismo por el cual se solicita una acción sobreel objeto

Un programa en ejecución es una colección deobjetos que se crean, interactúan y se detruyen

La interacción se basa en mensajes que sonenviados de un objeto a otro, de modo que elemisor le pide al receptor la ejecución de unmétodo

Page 45: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

45

Mensajes

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

La interpretación del mensaje dependerá delreceptor

MédicoPaciente

Mensaje

Recepcionista

MédicoPaciente

Page 46: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

MÉTODOS

Page 47: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

47

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 48: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

48

Métodos

Si el método requiere otros objetos de la clase,éstos deberán ser pasados como parámetrosexplícitos y el método sólo podrá acceder enforma indirecta a estos objetos

Ejemplos: Depositar

Girar

Consultar

Page 49: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

RESUMEN

Page 50: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

50

Mensajes y métodos

Un objeto (agente emisor) envía un mensaje a otroobjeto (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 laresponsabilidad de ejecutar la acción indicada

En respuesta a un mensaje, el receptor ejecuta unmétodo para satisfacer la petición

Page 51: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

51

Clases y ejemplares

Todos los objetos son ejemplares de una clase

La clase del receptor determina el método que seactiva como respuesta a un mensaje

Todos los objetos de una clase usan el mismométodo en respuesta a mensajes similares

Page 52: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

52

Clases y métodos

Los objetos son ejemplos de TAD’s

Un TAD tiene dos caras: una exterior, la que ve elusuario, y una interior, la que sólo ve el programador

El usuario ve nada más que un conjunto deoperaciones que definen el comportamiento de laabstracción

El programador ve las variables de datos que seusan para mantener el estado interno del objeto

Un ejemplar es un representante de una clase

Page 53: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

53

Clases y métodos

Una variable de ejemplar es una variable internamantenida por un ejemplar

Cada ejemplar tiene su propia colección de variablesde ejemplar

Las variables de ejemplar sólo son modificables porlos métodos definidos en la clase

Un objeto es la combinación de estado ycomportamiento

Page 54: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

54

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 elcomportamiento de los objetos

Desde el interior, los métodos proporcionan elcomportamiento apropiado mediante lasmodificaciones del estado

Page 55: Programación Orientada a Objetos · Programación Orientada a Objetos (POO) 3 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S. 4 Programación

55

Clases y métodos

La interfaz describe la forma en que un objeto seconecta con el mundo

La implementación describe cómo se logra laresponsabilidad prometida en la interfaz

Una clase se puede concebir como un registro condos variedades de campos: datos y procedimientos

Los datos constituyen las variables de ejemplar

Los procedimientos constituyen los métodos