26
Pag. 1 Introducción a la POO Introducción a la POO Programación Orientada a Objetos Lima, mayo de 2015 Dr. Roberto Montero Flores [email protected]

POO Sesion1

Embed Size (px)

Citation preview

Page 1: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 1/26

Pag. 1

Introducción a la POO

Introducción a la POO

Programación Orientada a

Objetos

Lima, mayo de 2015

Dr. Roberto Montero Flores

[email protected]

Page 2: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 2/26

Pag. 2

Introducción a la POO

AGENDA

A) Introducción

B) ObjetosC) Clases

D) POO y el mundo real

E) Terminología básica

F) Fundamentos

G) Ventajas y desventajas

H) Conclusiones

Page 3: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 3/26

Pag. 3

Introducción a la POOA. Introducción

Page 4: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 4/26

Pag. 4

Introducción a la POO

Paradigma

Un paradigma es una forma de pensar ya establecida y

cimentada en nuestro subconsciente.

Existen muchas formas de pensar y de hacer las cosas,

de igual manera en Programación existen diversas

formas de plantear los esquemas que originan losprogramas de cómputo

A. Introducción

Page 5: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 5/26

Pag. 5

Introducción a la POO

Paradigma

Un paradigma OO es una filosofía, un modo de pensar

basado en objetos.

Un programa en el paradigma OO es un modelo de una

parte del mundo.

En este modelo aparecen los  objetos  que forman partedel mundo real.

El paradigma de la Programación Orientada a Objetos es

la manera de pensar como vamos a describir nuestrosprogramas representando objetos del mundo real.

A. Introducción

Page 6: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 6/26

Pag. 6

Introducción a la POO

¿qué es un objeto?

B. Objetos

Ej. Lámpara

Características

Comportamientos

Color

TamañoPeso

Posición

Encender

Apagar

Page 7: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 7/26

Pag. 7

Introducción a la POO

¿qué es un objeto?

B. Objetos

Es una entidad del mundo real, cualquier cosa o

individuo es un objeto y puede ser representado como

tal con sus características y comportamientos.

Es la entidad en la que se basa la POO, y donde se le

denomina una instancia.Los objetos en programación no siempre son físicos.

- Ejemplo: mensaje de error.

Los objetos que tienen las mismas características y elmismo comportamiento, se agrupan en  CLASES.

Page 8: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 8/26

Pag. 8

Introducción a la POO

¿qué es una característica?

B. Objetos

Es aquello que distingue o particulariza a alguien o a

algo.

En programación, una característica se conoce como un

atributo  y así se le codifica en el programa.

• Color

• Tamaño

• Peso

• Tipo de Pico• ….

Page 9: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 9/26

Pag. 9

Introducción a la POO

¿ qué es un comportamiento ?

B. Objetos

Es lo que   “sabe hacer”   o para lo que sirve alguien o

algo.

En programación, un comportamiento se le denomina

método  y así se codifica en el programa

• Volar

• Comer

• Cazar

• ….

Page 10: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 10/26

Pag. 10

Introducción a la POO

¿qué es una clase?

C. Clases

Nissan

Blanco

Bluebird

1998

BQY990

-------------

-

Encender

Avanzar

Parar

Toyota

Rojo

Corolla

2005

AGP451

----

Encender

Avanzar

Parar

Objeto:

Auto 1

Objeto:

Auto 2

Atributos:Marca

Color

Modelo

Año

Placa

Comportamiento:Encender

Avanzar

Parar

CLASE AUTO

Page 11: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 11/26

Pag. 11

Introducción a la POO

¿qué es una clase?

C. Clases

Define una categoría de objetos que tienen:

Características

ejemplo: tamaño, color, marca, etc

Comportamiento

ejemplo: encender, avanzar, pintar, etc

Se puede decir entonces que una CLASE es una

 “ plantilla”    que se utiliza para generar muchos objetos

del mismo tipo. Con igual comportamiento y diferentes

características.

SIMILARES

Page 12: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 12/26

Pag. 12

Introducción a la POO

¿cómo se representa una clase?

C. Clases

Una clase puede ser representada dentro de un  modelo

como una representación gráfica, de la siguiente manera:

Características

(Atributos)

Nombre Clase

Comportamiento(Métodos )

Page 13: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 13/26

Pag. 13

Introducción a la POO

¿cómo se representa una clase?

C. Clases

Ejemplo:

marca

color

modelo

año de Fabricación

Placa

Auto

encencer

avanzar

parar

Page 14: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 14/26

Pag. 14

Introducción a la POO

POO

D. POO y el mundo real

Parte del éxito del paradigma de la Programación

Orientada a Objetos es el hecho de clasificar los objetos

de manera muy similar a como lo hacemos en el mundo

real. Esto es, a partir de las características de los objetos

que percibimos. De esa manera podemos saber que un

auto es un vehículo mientras que el perro es un animal.

En ese ejemplo Vehículo sería la clase y Carro el objeto de

la clase vehículo. De igual manera Animal sería la clase y

Perro el objeto de la clase Animal.

Page 15: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 15/26

Pag. 15

Introducción a la POO

¿cómo se representa una clase en ruby?

Ejemplo:

D. POO y el mundo real

Page 16: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 16/26

Pag. 16

Introducción a la POO

¿cómo se representa una clase?

Una vez creada la clase, que funciona como una plantilla,

podemos crear todos los objetos que necesitemos. En

este caso todos los objetos que creemos tendrán la

misma estructura que hemos definido en la clase.

Una vez creadas las clases tenemos acceso a los atributos

y métodos que hemos definido.

D. POO y el mundo real

Page 17: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 17/26

Pag. 17

Introducción a la POO

¿cómo se representa una clase?

 Atributos:   Son las características que definen al objeto

(nombre, edad, precio).

Métodos:   Son el código que define lo que puede hacer

un objeto determinado (correr, calcular promedio).

Mensaje:  Es la forma en la que un objeto le dice a otro

que quiere que haga algo. (caballo01.correr). Es la forma

en la que se comunican los objetos.

Programa Orientado a Objetos:   Conjunto de objetosque se comunican mediante mensajes y generan un

comportamiento mediante sus métodos.

E. Terminología básica

Page 18: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 18/26

Pag. 18

Introducción a la POO

ENCAPSULAMIENTO

F. Fundamentos

Mecanismo que permite unir, en una única abstracción, todas las

propiedades (atributos) y funcionalidades (operaciones) de una

entidad (objeto).

Operaciones   Atributos

Page 19: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 19/26

Pag. 19

Introducción a la POO

ENCAPSULAMIENTO

F. Fundamentos

Imaginemos una medicina en cápsula (cualquiera). Nosotros

no necesitamos conocer la composición química niingredientes del la medicina para usarla.

Simplemente conocemos que sirve para curar un mal. Sinosotros pudiéramos acceder a los componentes de la

 Aspirina y los pudiéramos modificar podríamos hasta causarla muerte de alguien.

Page 20: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 20/26

Pag. 20

Introducción a la POO

ENCAPSULAMIENTO

F. Fundamentos

•   De igual manera en las clases no es necesario que las

demás clases sepan cuáles son los atributos y muchomenos manipularlos.•   Es por eso que se considera que los atributos deben ser

privados (nadie accede directamente a ellos).

•   Aún así necesitamos hacer que la clase haga lo quequeremos que haga. Para ello lo que hacemos es acceder asu comportamiento, esto lo hacemos mediante losmétodos (que suelen ser públicos).

Page 21: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 21/26

Pag. 21

Introducción a la POO

ENCAPSULAMIENTO

F. Fundamentos

•   Es así que si quiero, por ejemplo, saber el nombre de uncaballo no se accede directamente al nombre sino por

medio de un método encargado de enviarme el nombre delcaballo.•   De igual manera si quiero cambiarle el nombre porque lo

puse mal no accedo directamente al atributo, lo que hago

es acceder a él mediante un método que me permitamodificar el nombre.

•   Si todas las clases pudieran acceder a los atributos deotras clases directamente todo podría ser un desorden (ycausar la muerte del sistema de igual manera que laMedicina en las personas si modificamos sus ingredientes).Nosotros decidiremos qué atributos son accesibles y cuáles

no.

Page 22: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 22/26

Pag. 22

Introducción a la POO

ENCAPSULAMIENTO

F. Fundamentos

•   Finalmente , cuando unimos los atributos y los métodos enuna clase entonces estamos encapsulando para manejarlo

todo como una unidad. En el ejemplo anterior seríaCaballo. Esta clase contiene los atributos que definen quées un caballo para mi sistema y los métodos que definenqué es lo que puede hacer un caballo.

Page 23: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 23/26

Pag. 23

Introducción a la POO

Ventajas

G. Ventajas y Desventajas

• Fomenta la reutilización y extensión del código.

• Permite crear sistemas más complejos.

• Relacionar el sistema al mundo real.• Facilita la creación de programas visuales.

• Construcción de prototipos

• Agiliza el desarrollo de software

• Facilita el mantenimiento del software

• Lo interesante de la POO es que proporcionaconceptos y herramientas con las cuales semodela y representa el mundo real tan

fielmente como sea posible.

Page 24: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 24/26

Pag. 24

Introducción a la POO

DesventajasSi bien las ventajas son mucho mayores que las desventajas esimportante conocer algunas de las desventajas situacionales:

• Para proyectos simples y pequeños muchas veces es más eltrabajo que toma crear las clases que lo que se programapara lograr el objetivo. Hay que tomar en cuenta que POOno es el único paradigma de programación.

• Aprender a abstraer un elemento del mundo real para crearuna clase es un proceso complejo que requiere práctica.

• Las abstracciones de un desarrollador no necesariamentecoinciden con las de otros. Sin embargo ambosplanteamientos pueden ser correctos a pesar de serdiferentes.

G. Ventajas y Desventajas

Page 25: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 25/26

Pag. 25

Introducción a la POOH. Conclusiones

•   La tecnología ha invadido todos los campos profesionales.En el caso de la ingeniería se ha vuelto indispensable

saber programar.•   La POO permite representar el mundo real en un sistema.

•   Se pueden crear sistemas más complejos con menoscódigo.

•   Tareas como escalar el software y darle mantenimiento sefacilitan.

•   No es el único paradigma de programación pero es,

actualmente, el más utilizado por sus ventajas.

Page 26: POO Sesion1

7/24/2019 POO Sesion1

http://slidepdf.com/reader/full/poo-sesion1 26/26

Pag. 26

Introducción a la POO

GRACIAS POR SU ATENCION

FIN