Introducción a la programación orientada a objetos

21
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS 1 Mtl. Lourdes Cahuich -POO

Transcript of Introducción a la programación orientada a objetos

INTRODUCCIÓN A LA PROGRAMACIÓN

ORIENTADA A OBJETOS

1

Mtl. L

ou

rdes C

ah

uic

h -P

OO

EJEMPLO PARA COMPRENDER LOS OBJETOS

Piensa en los objetos que te rodean, ¿de qué están

hechos? ¿qué forma tienen? ¿para qué sirven?

Veamos un ejemplo de la vida cotidiana.

2

Mtl. L

ou

rdes C

ah

uic

h -P

OO

EJEMPLO PARA COMPRENDER LOS OBJETOS

Imagina que quieres ver una película o evento

deportivo y quieres prepararte una botana.

Se te antojan unos nachos, nada complicado, sólo

tienes que poner totopos en un plato, algunos

frijoles, queso y jalapeños, y ponerlo en el

microondas a que se cocine unos cinco minutos.

3

Mtl. L

ou

rdes C

ah

uic

h -P

OO

EJEMPLO PARA COMPRENDER LOS OBJETOS

Para usar el horno: abres la puerta, pones el plato

de nachos adentro, y oprimes algunos botones al

frente y oprimes el botón de inicio. Después de

unos minutos, suena el "pitido" que te dice que

están listos.

Si haces algo mal, el horno dará pitidos y no

comenzará. A veces puede mostrar un mensaje de

error en su pequeño display.

4

Mtl. L

ou

rdes C

ah

uic

h -P

OO

EJEMPLO PARA COMPRENDER LOS OBJETOS

Esto no suena muy sofisticado, a menos que nos

pongamos a pensar todas las cosas que no

sabemos sobre el funcionamiento de un horno de

microondas

5

Mtl. L

ou

rdes C

ah

uic

h -P

OO

NOTEMOS QUE:

1. Sólo nos limitamos a usar el panel frontal del

horno.

2. No reescribimos o cambiamos nada dentro del

microondas para que funcione.

3. No pensamos en qué podría estar sucediendo

dentro del horno para usarlo.

6

Mtl. L

ou

rdes C

ah

uic

h -P

OO

Esto no es nada extraño, los seres humanos

tendemos a pensar en sólo unas pocas cosas a la

vez.

Tendemos a reducir el número de cosas con las

que tenemos que lidiar al abstraernos de los

pequeños detalles.

Esto nos permite trabajar al nivel de detalle

apropiado para que problema que tenemos que

resolver.

7

Mtl. L

ou

rdes C

ah

uic

h -P

OO

Cuando preparamos nuestros nachos, vemos a

nuestro horno como una caja negra.

No nos preocupamos por lo que sucede dentro de

la caja, a menos que ésta se rompa.

Pero siempre que funcione el horno, nos limitamos

a interactuar con lo que éste expone al mundo.

8

Mtl. L

ou

rdes C

ah

uic

h -P

OO

No hay nada que yo pueda hacer (siguiendo las

instrucciones) que cause que el horno entre en un

estado de inconsistencia y deje de funcionar,

vuelva a mis nachos una bola negra en llamas, o

peor, que se queme e incendie la casa.

9

Mtl. L

ou

rdes C

ah

uic

h -P

OO

ALGORITMO DE LOS NACHOS

Si hiciéramos un seudocódigo para preparar

nachos usando la programación funcional /

estructurada ¿qué tendríamos que hacer?

"Abrir una lata de frijoles, rayar un poco de queso,

cortar los jalapeños", etc.

Para la parte en la que calentamos los nachos,

escribiremos algo similar a "cocinar en horno hasta

que el queso se derrita".

10

Mtl. L

ou

rdes C

ah

uic

h -P

OO

NACHOS ESTRUCTURADOS

El seudocódigo incluiría la construcción de un

horno específico para cocinar nachos.

Parecería más fácil diseñar y construir un horno de

microondas especialmente para este problema de

preparar nachos, en lugar de construir un objeto

horno más genérico, por separado.

11

Mtl. L

ou

rdes C

ah

uic

h -P

OO

DESVENTAJAS

Sin embargo, esta aproximación funcional tiene

varios problemas:

Demasiado complejo. No quieres mezclar los detalles

de la construcción del horno con los detalles de la

construcción de los nachos.

12

Mtl. L

ou

rdes C

ah

uic

h -P

OO

DESVENTAJAS

No es flexible. Si necesitas reemplazar el horno de

microondas con algún otro tipo de horno, deberías

poder hacerlo siempre y cuando la interfaz del nuevo

horno sea igual a la del horno anterior

No es reutilizable. Los hornos se usan para realizar

diferentes platillos. No queremos crear un nuevo horno

cada vez que nos encontremos con una nueva receta

13

Mtl. L

ou

rdes C

ah

uic

h -P

OO

NACHOS ORIENTADOS A OBJETOS

En cambio, si hiciéramos un seudocódigo usando

la programación orientada a objetos, primero

tendríamos que identificar los objetos que

interactúan y cómo interactúan entre sí.

Después de que codifiquemos y probemos

exitosamente los objetos que necesitamos

podemos ir al siguiente nivel de abstracción.

14

Mtl. L

ou

rdes C

ah

uic

h -P

OO

NACHOS ORIENTADOS A OBJETOS

Ahora podemos comenzar a pensar en el nivel para

preparar nachos, en lugar del nivel de hacer un

microondas.

En este punto ya podemos usar el algoritmo que

hicimos al principio, directamente en el código del

programa

15

Mtl. L

ou

rdes C

ah

uic

h -P

OO

EN UNA APROXIMACIÓN PARA PROGRAMACIÓN

ORIENTADA A OBJETOS:

El programador identifica las clases necesarias

para resolver el problema.

El programador crea clases auto-contenidas que

cubran los requerimientos del problema y no se

preocupe de los detalles de toda la aplicación.

El programador escribe la aplicación usando las

clases que creó sin pensar en cómo funcionan

éstas internamente.

16

Mtl. L

ou

rdes C

ah

uic

h -P

OO

TERMINOLOGÍA POO

Un objeto es una simplificación de algo que

queremos usar en nuestro programa

Una clase es una plantilla que se usa para

describir un objeto que observamos en el mundo

real.

17

Mtl. L

ou

rdes C

ah

uic

h -P

OO

TERMINOLOGÍA POO

Las clases tienen 2 componentes básicos:

1. Propiedades – que describen al objeto

2. Métodos – acciones que deseamos asociar con el

objeto

18

Mtl. L

ou

rdes C

ah

uic

h -P

OO

PROPIEDADES

La información que queremos guardar y asociar

con el objeto. Al cambiar los valores de las

propiedades se cambia el estado del objeto.

Las propiedades se identifican como sustantivos

19

Mtl. L

ou

rdes C

ah

uic

h -P

OO

MÉTODOS

Determinan el comportamiento de un objeto;

normalmente los métodos de una clase actúan

sobre las propiedades.

Se identifican con verbos, denotando algún tipo de

acción.

20

Mtl. L

ou

rdes C

ah

uic

h -P

OO

FUENTE

Davis, Stephen R.. Beginning Programming with

C++ For Dummies. Hoboken, NJ, USA: John Wiley

& Sons, 2010. ProQuest ebrary. Web. 3 February

2015.

21

Mtl. L

ou

rdes C

ah

uic

h -P

OO