• No se han encontrado resultados

Unidad 2_POO

N/A
N/A
Protected

Academic year: 2020

Share "Unidad 2_POO"

Copied!
55
0
0

Texto completo

(1)

UNIDAD 2:

PARADIGMA

ORIENTADO A

OBJETOS

(2)

Contenido

2

Introducción

¿Qué es la Programación Orientada a Objetos?

Conceptos básicos

Abstracción

Jerarquía

Encapsulación

Objeto

Clase

Herencia

(3)

Programación no-estructurada

3

La forma de resolver problemas es

escribiendo pequeños programas que

consisten de un solo programa principal.

// programa principal

main( )

{

//datos

}

(4)

Programación procedural

4

Conforme los problemas son mas complejos y los

programas mas grandes, se guía a la idea de dividir el

problema e identificar sub-problemas o sub-tareas,

creando con ellos: procedimientos o funciones; de tal

forma, que estos bloques de código puedan ser

llamados varias veces en un solo programa. Esta

técnica es la programación procedural.

Programa

Programa principal

p1 p2

(5)

Programación modular

5

 Cuando los programas alcanzaron una extensión de miles de

líneas de código, con cientos de funciones, se requirió otra forma de organización.

 La programación modular permite organizar el código en

diferentes módulos (que pueden contener una o más

funciones) cada uno dedicado a un fin específico, por ejemplo: Modulo de archivos.

 Eso permite que cada módulo se programe de forma independiente

al resto facilitando el mantenimiento y funcionamiento del código

(6)

Programación Orientada a Objetos

6

En la programación orientada a objetos (OOP –

Object Oriented Programming), se tiene un

conjunto o red de objetos que interactúan entre

sí a través de mensajes y en donde cada uno de

los objetos es responsable de su propio estado.

Programa

Objeto 1

(datos)

Objeto 2

(datos)

Objeto 3

(datos)

(7)

Paradigma orientado a

objetos

Mucho del comportamiento y

pensamiento humano esta

caracterizado por secuencias

lógicas de acciones que

involucran

objetos

.

Desde la infancia hemos

aprendido a través de

nuestros sentidos a identificar

objetos:

 ¿Cuáles son sus características?  ¿De qué están formados?

 Cómo actúan o qué

comportamiento esperar de cualquier cosa en el mundo

 Por ejemplo?

(8)

Paradigma orientado a

objetos

El paradigma orientado a objetos

nació en 1969, de la mano del Dr.

Kristin Nygaard.

 Intentaba un programa que describiera

el movimiento de los barcos.

 Se dió cuenta que era muy complejo

simular el mundo real con los métodos de programación existentes en el

momento; por ejemplo: simular las

mareas, los movimientos de los barcos y las formas de las líneas de las

costas.

 Descubrió que era más fácil tratar de

adecuar el mundo real a la computadora, que al revés.

 Primer lenguaje SIMULA 67

(9)

Paradigma orientado a objetos

9

Se organiza el software como una colección de

objetos discretos que

encapsulan estructuras de

datos y comportamiento.

Un sistema OO funciona mediante la colaboración

entre los objetos que se comunican entre sí.

El concepto se extiende a los métodos de análisis

y diseño

Se utilizan los

objetos del mundo real como base para

construir modelos

Los elementos que forman los sistemas del mundo

(10)

Paradigma orientado a objetos

10

Grady Booch define a la programación orientada a objetos

como:

 Un método de implementación en el que los programas se

organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son todas miembros de una jerarquía de clases unidas mediante relaciones.

Wikipedia dice:

 La programación orientada a objetos es un paradigma de

programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas de computadora. Está

(11)

Pensando en objetos: Los

legos

 Cada pieza de lego (cubo,

llanta, motor, etc.) es un objeto pequeño que se une con otros objetos, con los

cuales encaja perfectamente, para crear objetos más

grandes (castillos,

automóviles, robots, aviones, ciudades...)

 Así funciona

aproximadamente la POO: Uniendo elementos pequeños para construir otros más

(12)

Otro Ejemplo

Diferentes componentes se

utilizan para ensamblar una

computadora. El objetivo es

que todas las piezas trabajen

en forma conjunta

Internamente cada

componente puede ser muy

complicado y diseñado por

diferentes compañías. Pero lo

que nos interesa es como

interactúan entre sí.

¿Encajará la tarjeta de video

en la tarjeta madre?, tiene

entrada USB para el mouse?

Es decir, su interface.

(13)

¿Y qué con la POO?

13

La Programación Orientada a Objetos

funciona de la misma forma:

Utilizando técnicas de POO

El programa estarán formados por muchos

componentes independientes y diferentes

Componentes tienen una funcionalidad específica

y pueden comunicarse o dar respuesta a

(14)

Ejemplo Algoritmo en POO

14

Escribe un algoritmo para

encender un auto

(supón que te encuentras sentado en el asiento

del conductor)

 Identificar los objetos

 Llaves, switch, clutch, palanca de velocidades

 Relacionarlos de acuerdo a su funcionalidad (algoritmo)

 Paso 1: Poner la palanca de velocidades en neutral (punto muerto)

 Paso 2: Colocar la llave dentro del switch  Paso 3: Presionar el clutch al fondo

 Paso 4: Girar la llave a la derecha hasta topar y soltar suavemente

 Paso 5: Si el auto encendió. Fin del algoritmo

(15)

Actividad colaborativa

15

En equipos de 4, seleccionen alguno de los

siguientes problemas:

 Preparar una hamburguesa

 Pintar la fachada de una casa

Analicen el problema seleccionado e identifiquen

todos los objetos involucrados

 Hagan una lista de estos objetos

Usando estos objetos y relacionándolos de

acuerdo a su funcionalidad, escriban paso a paso

un algoritmo para resolver el problema.

(16)

Contenido

16

Introducción

¿Qué es la Programación Orientada a Objetos?

Conceptos básicos

Abstracción

Jerarquía

Encapsulación

Objeto

Clase

Herencia

(17)

Programación OO

La programación

orientada a objetos

está basada en los

siguientes conceptos:

Abstracción

Encapsulación

Jerarquía

Clase

Objeto

Modularidad

Herencia

Polimorfismo

Se dice que si alguno

de estos elementos no

existe, entonces el

modelo no es orientado

a objetos.

(18)

Abstracción

18

Aún cuando existe una multitud de aves

diferentes, podemos reconocer

un AVE

en

cuanto la vemos, incluso aún cuando esa ave

en particular, no lo hayamos visto nunca.

(19)

¿Son todas aves?

19

(20)

Definición

20

(21)

Yalú Galicia /Miguel Rodríguez (FCC/BUAP)

21

La abstracción se centra en las características

esenciales

de algún objeto, en relación a la perspectiva del observador

(22)

Ejercicio

22

En equipos de 4 realicen abstracción

para describir un objeto que traigan

con ustedes:

Celular, reloj, pluma, cuaderno, lap,

ect..

Escriban en una hoja lo siguiente:

Nombre del objeto

(23)

Jerarquía

23

La abstracción es algo bueno, pero

excepto en las aplicaciones más triviales,

puede haber muchas más

abstracciones

diferentes

de las que se pueden

comprender

simultáneamente

.

Frecuentemente

un

conjunto

de

(24)

Jerarquía

24

AVE

Voladora

No Voladora

Doméstica

Salvaje

Doméstica

Salvaje

Perico

Águila

Gallo

Pingüino

Generalización,

+abstracción

Especialización,

(25)

Encapsulación

25

Un principio fundamental de la POO es la

ocultación de la información

, que es el

proceso de ocultar dentro de sí mismo,

todos los “secretos” de un objeto, que no

contribuyen a sus características

esenciales.

Al encapsular los datos del objeto, se

maximiza la

reusabilidad

, se reduce la

(26)

Características:

26

Combina los datos y las operaciones.

Agrupa a variables y funciones

Mantiene detalles de los datos y

operaciones de los usuarios del

TDA(clase).

Permite Modularidad

Acceso controlado a los datos

Separa la implementación de la interface

(27)

27

La encapsulación esconde la complejidad

Por ejemplo, si aprendemos a manejar en un automóvil con motor diesel, podremos sin ningún problema manejar uno que funcione con

nafta. Es decir, los dos objetos se nos presentan de igual forma (interfaz), pero es indiscutible que los motores son muy distintos. •El objetivo es esconder los detalles de como funciona algo.

(28)

Ejemplo

Yalú Galicia /Miguel Rodríguez (FCC/BUAP)

28

El automóvil utilizará

otros mecanismos

para llevar a cabo su

interfaz, como, por

ejemplo, abrir

válvulas, mover

(29)

Las clases y los objetos están en todas

partes

29

Vehículo

Punto

Figura

Animal

(1,3) (2,2)

(2,1)

(5,2.5)

(30)

Objeto

30

Un objeto representa un elemento,

unidad o entidad individual e

identificable, ya sea

real o abstracta

,

con un papel bien definido en el

dominio del problema.

En términos generales, se define un

(31)

¿Qué es un objeto?

31

Informalmente, un objeto representa a

una entidad, ya sea física, conceptual o

software

Entidad física

Entidad conceptual

Entidad de Software

Lista Enlazada

(32)

Objeto

32

Un objeto es algo que tiene:

Estado

(33)

Un objeto tiene un estado

Yalú Galicia /Miguel Rodríguez (FCC/BUAP)

33

 El estado de un objeto es una de las posibles condiciones

en que un objeto puede existir

 El estado de un objeto normalmente cambia con el tiempo  El estado de un objeto es usualmente implementado por un

conjunto de propiedades llamadas atributos, mas los enlaces que el objeto pueda tener con otros objetos

 El estado lo establecen los valores de los atributos y

(34)

Un objeto tiene comportamiento

Yalú Galicia /Miguel Rodríguez (FCC/BUAP)

34

El comportamiento determina como un objeto actúa y

reacciona

El comportamiento define la manera en la que un objeto

responde a las peticiones de otros objetos

El comportamiento visible de un objeto se modela con un

conjunto de mensajes a los que el puede responder

Los mensajes se implementan como las operaciones del

objeto

Profesora Jazmin Secretaria Admo. Jimenez

Asignar a Profesora Jazmin

a dar Calculo Integral 332

(35)

Un objeto tiene identidad

35

Cada objeto tiene una identidad única, aún si

su estado en un momento dado, es idéntico al

de otros objetos

Profesora “Miriam

Pérez”

Enseña Matemáticas

Profesor “Josue

Mendoza”

Enseña Matemáticas

(36)

¿Qué son las clases?

36

Cuando se han identificado muchos

objetos en un dominio, decimos que una

clase es una abstracción que describe un

grupo de objetos que tienen:

propiedades en común (atributos)

comportamiento en común (operaciones)

relaciones comunes con otros objetos

(asociaciones)

(37)

Clases

37

En los lenguajes Orientados a Objetos, las clases

están compuestas por dos características básicas:

 Atributos

 Comportamientos.

Los atributos son las características individuales

que diferencian un objeto de otro y determinan su

apariencia

(ej. color, estilo, marca,etc.), su

estado

(ej. encendido o pagado) y otras

cualidades

.

El comportamiento de una clase determina la

manera en que un objeto de esa clase

opera o

reacciona

, esto es, su funcionabilidad (por

(38)

Ejemplo: la clase Auto

 La clase AUTO es el modelo

abstracto del concepto de un Auto.

 La descripción de la clase

Auto podría ser:

 Tiene Puertas  Tiene Llantas  Tiene Motor  Tiene Ventanas  Tiene modelo  Arranca

 Frena

 Se desplaza  Usa gasolina  Etc.

38

(39)

La clase AUTO

 A partir de la clase AUTO se

pueden crear muchos objetos, o sea muchos autos, con

características diferentes (color, tamaño, diseño, material, etc.), pero que

pueden ser reconocidos como autos.

 Por ejemplo: un Bochito, un

Audi, un BMW, un Chevy, el auto del vecino, tu auto, mi auto, etc.

 Todos estos pueden ser

representadas como objetos diferentes y únicos de la clase AUTO.

39

Clase Auto Objeto

(40)

Clases v.s. Objetos

Yalú Galicia /Miguel Rodríguez (FCC/BUAP)

40

Una clase en una definición abstracta de un objeto

Define la estructura y comportamiento de cada objeto

en la clase

Sirve como una plantilla para crear objetos

Un objeto es una instancia concreta de una clase

(un ejemplar)

Los objetos pueden agruparse en clases

Estudiante

Clase

(41)

Ejemplo de una clase

41

Modelar la clase lavadora

LAVADORA

marca

modelo

capacidad

Programar

Poner ropa

Cerrar puerta

lavar

Atributos/caracteristicas

(42)
(43)

Visibilidad de atributos y operadores

43

El principio de ocultación sirve para

(44)

Ejercicio (pares)

44

Modelen las clases del ejemplo anterior

(aparato electrónico, Animal)

Nombre de la clase

Atributos

(45)

Herencia

La herencia representa una jerarquía

de abstracciones (clases).

Define una

relación entre clases

,

el la que una clase

comparte la

estructura de comportamiento

definida en una o más clases.

De forma simple, la herencia es el

proceso mediante el cual un objeto

adquiere las propiedades de

otro.

(46)

Herencia

46

Si alguien nos habla de un objeto en particular cuyo

nombre no conoce, instantáneamente empezará

diciendo

“es como...”

para describirlo y luego deberá

agregar las características particulares del objeto que

desea que identifiquemos.

Semánticamente, la herencia denota una relación “es

un”.

Por ejemplo, un oso

es un

tipo de mamífero, una casa

es un

tipo de bien inmueble.

Así la herencia implica una

jerarquía de

generalización/especialización

, en la que una

(47)

En el ejemplo del automóvil, podría decir “es

como un taxi, pero más chico”, o “es como una

moto, pero tiene cuatro ruedas”... Es decir que

define al automóvil a través de

objetos de

similares características

. Sin darnos cuenta

hacemos

clasificaciones;

ahora, generalizando,

nos damos cuenta de que todos son transportes.

En el paradigma de objetos esto se conoce como

herencia, y sirve para no tener que definir

comportamientos de forma repetitiva.

(48)

Herencia

M.C. Yalu Galicia (FCC/BUAP)

(49)

Herencia

Yalú Galicia /Miguel Rodríguez (FCC/BUAP)

49

Cada vez que se especializa una clase, esta

clase

hereda atributos y comportamientos

de su

superclase; pero además se añaden

nuevos comportamientos

o se

modifican

alguno de los ya heredados

Veamos que hereda la clase leo de sus clases

padre.

CLASE

QUE HEREDA

Vertebrados

Espina dorsal

Mamíferos

Se alimenta con leche materna

Carnívoros

Al ser adulto se alimenta de carne

(50)

Actividad colaborativa

50

En equipos de 3, identifiquen una clase que agrupe

todos estos objetos

Agrupen diversos objetos en distintas clases

Pensando en el concepto de herencia, construyan una

(51)

Polimorfismo

51

Polimorfismo es la habilidad que

adquieren los objetos de responder en

forma diferente

al

mismo mensaje.

Es decir, el mismo mensaje que se envía

(52)

Polimorfismo

52

Polimorfismo es la habilidad de esconder

(53)

Ejemplo de Polimorfismo

53

Pensemos en las FigurasGeometricas. Todas las

FigurasGeometricas tienen como característica el

poder calcular su área. Sin embargo, cada figura

puede realizar esta operación de forma distinta.

Area = l*l Area= pi*r2 Area=

b*a 2

Calcula

Area

Sobrecarga de métodos: area(a,b)

(54)

Otro ejemplo,

54

Tomemos Medios de Transportes:

barco, avión y auto. Si les enviamos

el mensaje

Desplázate

, cada uno de

estos objetos los hará a su manera

(comportamiento).

Vuele

Naveque

(55)

Ejercicio

55

¿Dar 3 ejemplos del mundo real, en

que veamos polimorfismo?

Tarea: Entregar en limpio los

Referencias

Documento similar

Instrucciones: Por medio de la formula molecular, clasifica los isómeros, escribe el nombre de la clase de isomería que le corresponda a cada uno de los siguientes

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

(1886-1887) encajarían bien en una antología de textos históricos. Sólo que para él la literatura es la que debe influir en la historia y no a la inversa, pues la verdad litera- ria

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

entorno algoritmo.

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

Muchas ernfermeras han experimentado momentos muy parecidos de gran intensidad emocional y la poesía de los cuidados y la sociopoética (expresión colectiva de sentimientos