conceptos fundamentales de la programación orientada a...

29
Conceptos Fundamentales de la Programación Orientada a Objetos Programación Orientada a Objetos Programación III Lic. Gladys Chuquimia [email protected] [email protected] 16/08/2010 1

Upload: others

Post on 25-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Conceptos Fundamentales de la Programación Orientada a ObjetosProgramación Orientada a Objetos

Programación IIIgLic. Gladys Chuquimia

[email protected]@gmail.com

16/08/2010 1

Page 2: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Programación Orientada a Objetos

“La POO es un método de implementación l l ien el que los programas se organizan como

colecciones cooperativas de objetos, cada uno de los cuales representan una instancia de alguna clase, y cuyas clasesinstancia de alguna clase, y cuyas clases son todas miembro de una jerarquía de clases unidas mediante relaciones declases unidas mediante relaciones de herencia” – Grady Booch

16/08/2010 2

Page 3: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Identificación de los Objetos según Shlaer, Mellor y Coad/Yourdon

Cosas Tangibles – avión, libroRoles o papeles – gerente cliente empleadoRoles o papeles gerente, cliente, empleadoOrganizaciones – Equipo, empresa, divisiónIncidentes – (Sucesos, Eventos) vuelo, accidenteInteracciones (Transacción Contratos)Interacciones – (Transacción, Contratos) Compras, Vendedor, Contrato LaboralEspecificaciones – Inventarios, ProformasLugares – Sala de Espera Parqueo Oficina16/08/2010 3

Lugares Sala de Espera, Parqueo, Oficina

Page 4: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

¿Cómo se encuentran los objetos?

16/08/2010 4

“Los objetos están ahí para usarlos”

Page 5: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Los objetos similares se agrupan en clases

16/08/2010 5

Page 6: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

ClasesClases

Son una descripción de un conjunto de objetos.Consta de Métodos y AtributosConsta de Métodos y Atributos.

Es un TDA definido que determina las estructuras de datosy operaciones asociadas con ese tipo.

En OO, una clase no solo tiene el objetivo de categorizarsino también el de servir como plantilla para crear objetossino también el de servir como plantilla para crear objetos.

16/08/2010 6

Page 7: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Miembros Dato - atributos

Características especiales que distinguen a un objeto.

16/08/2010 7

Page 8: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Funciones Miembro - Operaciones

Describen el comportamiento asociado a un objetoobjeto.Representan las acciones que pueden

li l bj b bjrealizarse con el objeto ó sobre un objeto.Cada método tiene un nombre y un cuerpo y pque realiza la acción o comportamiento asociado con el nombre del método.

16/08/2010 8

Page 9: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Paso inicial en la definición del objeto coche

CocheRepresentación Simplificada

CocheTiene las características:

•Color

Clase:Clase:

color: Cadenamodelo: Int

CocheDDAATT

•Color •Modelo•Marca

marca: Cadenaplaca: Cadena

TTOOSS

Funciones que puede realizar:

•Placa

Ir()Parar()

SS

M

realizar:•Ir •Parar

16/08/2010 9

Parar()Girar_a_la_D()Girar_a_la_I()

MET

•Girar a la derecha •Girar a la izquierda

Page 10: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Hablemos de ObjetosHablemos de Objetos

Que es un objeto ?

Un objeto es una instancia de una clase (unacategoría). Un objeto tiene una estructura.g ) jTiene atributos (propiedades - datos) yfunciones que operan sobre estos datos( i id d i é d )

16/08/2010 10

(actividades – comportamiento – métodos).

Page 11: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Representación gráfica de un objeto

Nombre del Objeto: Clasej

Datos

Métodos / FuncionesFuncionesMiembro

TAYLOR UML

16/08/2010 11

Page 12: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Definición del objeto cocheDefinición del objeto coche

Toyo2: Coche

Definición Especifica

Blanco2001P tToyo:Coche

Definición Completa

PetaQWS123

Rojo2007

Toyo:Coche

Toyo2: COCHE

R t ió Si lifi d

GoldABC123

Representación Simplificada de un objeto previamente definido

Ir()Parar()

16/08/2010 12

definido.Parar()Girar_a_la_D()Girar_a_la_I()

Page 13: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Abstracción (2)“Supresión intencionada, u ocultamiento, de algunos detalles de

un proceso o artefacto, con el objeto de destacar de manera másp jclara otros aspectos, detalles o estructuras”

[Booch’96]

16/08/2010 13

Page 14: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

AbstracciónAbstracción

En palabras sencillas “abstracción” significa fil l i d d i dfiltrar las propiedades y operaciones de un objeto hasta que queden solamente aquellas que necesitamos. (Generalización)

HH:mm:ss

16/08/2010 14

Page 15: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Paso inicial en la definición del objeto coche para su venta

CocheRepresentación Simplificada

CocheTiene las características:

•Color

Clase:Clase:

color: Cadenamodelo: Int

CocheDDAATT

•Color •Modelo•Marca

marca: Cadenaprecio: Float

TTOOSS

Funciones que puede realizar:

•Precio

RegistroCoche()Mostrar()

SS

M

realizar:•Registro del coche•Mostrar datos del coche

16/08/2010 15

Mostrar()ModificaPrecio()Modificar()

MET

•Modificar el precio•Modificar otros datos

Page 16: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Definición del objeto cocheDefinición del objeto coche

Car2: Coche

Definición Especifica

Blanco2001P t

Definición CompletaCar1: Coche Peta

4500Rojo2007

Car1: Coche

Car1: COCHE

R t ió Si lifi d

2007Gold8000

Representación Simplificada de un objeto previamente definido

RegistroCoche()Mostrar()

16/08/2010 16

definido.Mostrar()ModificaPrecio()Modificar()

Page 17: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

E l ióEncapsulación (2)

“Proceso de almacenar en un mismo compartimento los elementos de una abstracción que constituyen su estructura y su comportamiento” [Booch’96]

16/08/2010 17[Booch’96]

Page 18: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

E l ióEncapsulaciónEs el “empaquetar” en una clase los datos (propiedades) y el código (métodos) que (p p ) y g ( ) qopera en esos datos. El acceso a esos datos solo es permitido aEl acceso a esos datos solo es permitido a través de los componentes públicos del

bj (P i i i d l i )objeto.(Principio de ocultamiento)La calculadora oculta las

i lioperaciones que realiza internamente de la

persona que la utiliza.

16/08/2010 18

Page 19: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Control de acceso a miembrosControl de acceso a miembros

- color: Cadena+modelo: Int

Coche

+modelo: Int- marca: Cadena- precio: Float- Atributo privado

Clase

+ RegistroCoche() M ()

pp+ Atributo público# Atributo protegido

+ Mostrar()+ ModificaPrecio()+ Modificar()

- Método privado +Método público

é + Modificar()

Se accede sólo a miembros públicos

#Método Protegido

16/08/2010 19

Se accede sólo a miembros públicos

Page 20: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Definición del objeto cocheDefinición del objeto coche

Definición Completa

Definición EspecificaCar1: Coche

Car2: Coche

Definición Especifica- Rojo+ 2007

Car1: Coche

- Blanco+ 2001

+ 2007- Gold- 8000

- Peta- 4500+ RegistroCoche()

+ Mostrar()

16/08/2010 20

+ Mostrar()+ ModificaPrecio()+ Modificar()

Page 21: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Envío de Mensajes

Los objetos trabajan entre si por medio del í d jenvío de mensajes.

16/08/2010 21

Page 22: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Mensajes

Sintaxis:Objeto.método()Objeto atributo públicoObjeto.atributo público

En el ejemplo:Car1.RegistroCoche( )Car1 Mostrar( )Car1.Mostrar( )Car1.Modelo = 2008

16/08/2010 22

Page 23: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Herencia

La herencia podemos definirla como la capacidad para crear nuevas clases a partircapacidad para crear nuevas clases a partir de clases existentes.

l dLas nuevas clases podrán contar con otros atributos y operaciones.El principio en que basa la división de clases es la jerarquízación (características j q (comunes)Ventaja principal: reutilización del código

16/08/2010 23

Ventaja principal: reutilización del código.

Page 24: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Herencia simple

Clase Derivada hereda datos y métodos de una sola clase baseuna sola clase base.

PolígonoPolígono

Triangulo Rectángulo Hexágono

16/08/2010 24

Page 25: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Herencia Múltiple

Clase Derivada hereda datos y métodos de á d l bmás de una clase base.

PersonaPersona

Profesor Investigador

Profesor

16/08/2010 25

Universitario

Page 26: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

P li fiPolimorfismo

Mediante esta propiedad los métodos de los objetos pueden tener el mismo nombre y funcionan distintopueden tener el mismo nombre, y funcionan distinto cuando se les envía un mensaje.

abrirabrir

16/08/2010 26

Page 27: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Función AmigaTodo módulo que no sea miembro de la clase, pero que tiene acceso irrestricto a todos lospero que tiene acceso irrestricto a todos los miembros de la clase.

l //Programa- Atributo privado

Clase

//función Amiga+ Atributo público# Atributo protegido

// g

{

//+Método público()+Función Amiga()

//Instrucciones

}

16/08/2010 27

+Función Amiga()

Page 28: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Lenguajes Orientados a Objetos

El lenguaje Simula (Simulation Language), f l i di ñó f ili lfue el primero que se diseñó para facilitar la programación orientada a objetos.Lenguaje C++, JAVA, SmalltalkJAVA d ll d l SJAVA, desarrollado por la empresa SunMicrosystems en 1995 y que se ha extendido ampliamente en World WideWeb.

16/08/2010 28

Page 29: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor

Fin de la presentaciónp

16/08/2010 29