DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

18
DAI - Ing. Arturo Rozas H uacho 1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II

Transcript of DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

Page 1: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

1

CAPÍTULO II

PROGRAMACION ORIENTADA A OBJETOS

(POO)

Algorítmica II

Page 2: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

2

2.1.- MODELO DE OBJETOS

Algorítmica II. Programación Orientada a Objetos

Es una forma de representar la realidad a imagen y semejanza, considerando que el mundo real que tratamos está constituido por cosas, entidades u objetos que interactúan entre sí.

Abarca los principios de abstracción, encapsulación, modularidad, jerarquía, tipos, concurrencia y persistencia.

• Tangibles: libros, personas, lámparas, etc. • Intangibles: cuentas corrientes, reservaciones

aéreas, etc.

Page 3: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

3

2.2.- MECANISMOS DE ABSTRACCION

Algorítmica II. Programación Orientada a Objetos

los mecanismos de abstracción permitan entender, clasificar y modelar la realidad. Dentro de estos mecanismos tenemos:

•Abstracción de clasificación

•Abstracción de generalización – especialización

•Abstracción de agregación/composición

Page 4: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

4

2.2.1.- Abstracción de Clasificación

Algorítmica II. Programación Orientada a Objetos

La abstracción de clasificación nos permite percibir que los objetos de la realidad se pueden agrupar en clases o tipos de objetos, caracterizados por propiedades y comportamiento comunes.

El mundo real esta formado por objetos. Todo objeto pertenece por lo menos a una clase de objetos.

Clase de Objetos Empleados

Clase de Objetos Documentos

Clase de Objetos Libros

Page 5: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

5

2.2.2.- Abstracción de Generalización-Especialización

Algorítmica II. Programación Orientada a Objetos

Los objetos de clase Avión y de la clase Helicóptero pertenecen a una clase más genérica Vehículos de transporte Aéreo. Esta clase conjuntamente con las clases Vehículos de Transporte Terrestre y Vehículos de Transporte Marítimo pertenecen aún a otra clase más genérica como es la clase Vehículo de Transporte.

Los Objetos del mundo real se organizan en clases y subclases, con una estructura jerárquica.

Vehículo de Transporte

Vehículo de transporte aéreo Vehículo de Transporte marítimo

Avión HelicópteroGen

era

liza

ció

nEsp

ecia

lizació

n

Page 6: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

6

Objeto Computador

2.2.3.- Abstracción de AgregaciónAlgorítmica II. Programación Orientada a Objetos

Si se hace un análisis más minucioso de los objetos del mundo real, se puede constatar que muchos de estos objetos están construidos a partir de otros objetos. Así, un objeto de la clase COMPUTADOR esta formado por objetos de las clases CPU, MONITOR, TECLADO, MOUSE, IMPRESORA etc.

La abstracción de agregación es la representación del “todo y sus partes”.

Objeto Impresora Objeto

CPU

Objeto Monitor

Objeto Teclado

Page 7: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

7

2.3.- CONCEPTO DE OBJETO

Algorítmica II. Programación Orientada a Objetos

Un objeto es una entidad o cosa que tiene ciertas propiedades (información) y exhibe algún comportamiento bien definido.

Objeto = Información + ComportamientoDesde la perspectiva de la cognición humana, un objeto es cualquiera de las siguientes cosas:• Una cosa tangible y/o visible.• Algo que puede comprenderse intelectualmente. • Algo hacia lo que se dirige un pensamiento o acción.

Un objeto modela alguna parte de la realidad y es, por tanto, algo que existe en el tiempo y el espacio.

Definición Informal

Page 8: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

8

2.3.- CONCEPTO DE OBJETOS…

Algorítmica II. Programación Orientada a Objetos

Definición Formal (Grady Booch)

Un objeto es una entidad que tiene un estado, un comportamiento y una identidad.

CUENTA DE AHORROS

Número Cuenta: 12345Nombres: Ana PazDirección: Av. Perú 123Doc. Identidad: 23742723

Registrar Depósitos()Registrar Retiros()Calcular Intereses()

Tipo de Objeto

Características

Operaciones

Los valores de las características constituyen el estado de un

objeto

El Número de Cuenta identifica al

objeto

Las operaciones constituyen el

comportamiento del objeto

Page 9: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

9

2.3.- CONCEPTO DE OBJETOS…(Estado)

Algorítmica II. Programación Orientada a Objetos

El estado de un objeto está dado por los valores actuales de cada una de sus propiedades o atributos.

Todos los objetos tienen características, propiedades o atributos. Por ejemplo, el objeto Cuenta de Ahorro tiene como atributos: Número Cuenta, Nombres, Dirección, Documento de Identidad.

Los atributos normalmente son estáticos, no cambian con el tiempo; mientras que los valores asociados a estos atributos son dinámicos, pueden cambiar con el tiempo.

Page 10: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

10

2.3.- CONCEPTO DE OBJETOS…(Comportamiento)

Algorítmica II. Programación Orientada a Objetos

El comportamiento es cómo actúa y reacciona un objeto, en función a la interacción que efectúa sobreotros objetos o que efectúan otros objetos sobre él.

Todos los objetos interactúan unos con otros. Esto significa que ningún objeto existe de forma aislada. La interacción se efectúa en función a los servicios que ofrece cada objeto. Un servicio es alguna función (comportamiento) que puede efectuar un objeto.

Objeto Cuenta Ahorros

(Servicios)

ObjetoCajero

(Servicios)

Interacción entre Objetos

Page 11: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

11

2.3.- CONCEPTO DE OBJETOS…(Identidad)

Algorítmica II. Programación Orientada a Objetos

La identidad es aquella propiedad o atributo de un objeto que los distingue de todos los demás objetos.

Un objeto en el mundo real es único y se diferencia de los otros objetos incluso de la misma clase. Es posible identificar entre todas las propiedades del objeto, una propiedad que lo distingue de todos los demás objetos, esta propiedad es la que identifica el objeto.CUENTA DE AHORROSNúmero Cuenta: 12345Nombres: Ana PazDirección: Av. Perú 123Doc. Identidad: 23742723

No puede haber dos cuentas de ahorros con el mismo

Número. En consecuencia, el Número de Cuenta

identifica unívocamente al objeto

Page 12: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

12

2.3.1- ENCAPSULAMIENTO

Algorítmica II. Programación Orientada a Objetos

Por encapsulamiento debemos entender que un objeto debe ser considerado como “un todo”, como una unidad atómica indivisible, que engloba las características y el comportamiento del objeto.

Objeto = Características + Comportamiento Objeto = Información + Proceso Objeto = Atributos + Métodos

Las características y el comportamiento de un objeto es modelado en un compartimiento (cápsula) único e indivisible.

Page 13: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

13

METODOS (SERVICIOS)

2.3.2- REPRESENTACION DE UN OBJETO

Algorítmica II. Programación Orientada a Objetos

ATRIBUTOS

Solicitar Servicios aotros objetos

Responder a Servicios solicitados porotros objetos

Vista Interna (Oculta)(Parte Privada)

Vista Externa (Visible)(Parte Pública)

Page 14: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

14

2.4.- CLASESAlgorítmica II. Programación Orientada a Objetos

La abstracción de clasificación nos permite percibir que los objetos de la realidad están organizados como clases o tipos de objetos, caracterizados por propiedades comunes. Todo objeto pertenece a alguna clase de objetos.En la POO una clase es la implementación de un tipo de objetos. La POO identifica, implementa y utiliza tipos o clases de objetos del dominio del problema. Una clase es como un molde que se utilizará para construir objetos.

En la POO lo que realmente se implementa son lasclases y no los objetos.Los objetos se crean o construyen (“tienen vida”) en tiempo de ejecución

Clase = Implementación (Atributos + Métodos) Comunes a todos los objetos de la clase

Page 15: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

15

2.4.- CLASES…(Conceptos Asociados)Algorítmica II. Programación Orientada a Objetos

En la programación estructurada los módulos se escriben muchas veces en función de otros módulos. Por ejemplo, si el módulo B depende del módulo A, entonces cualquier cambio en el módulo A implica también una modificación en el módulo B.

Esta dependencia se conoce como acoplamiento. Un programa con muchas dependencias tiene fuerte acoplamiento (cualidad no deseada). Los buenos programas tienen pocas (o ninguna) dependencia, es decir, débil acoplamiento.

La POO tiende al diseño e implementación de clases con débil acoplamiento

ACOPLAMIENTO

Page 16: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

16

2.4.- CLASES…(Conceptos Asociados)Algorítmica II. Programación Orientada a Objetos

Es el proceso de ocultar todos los detalles internos de un objeto, y poner a disposición de los otros objetos solamente la lista de servicios que éste ofrece.

Es ver un objeto con una vista interna y una vista externa.

La vista interna no es visible ni accesible para otros objetos, esconde la estructura de los atributos y protege el acceso directo a ellos desde fuera del objeto. También es parte de la vista interna la implementación de los métodos, es decir el “cómo” están hechos.

La vista externa es lo que ven los otros objetos, es la parte visible y accesible del objeto, está constituido por la lista de métodos del objeto, con una explicación de “qué” hacen o “para qué” sirven.

OCULTAMIENTO DE LA INFORMACION

Page 17: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

17

2.4.- CLASES…(Conceptos Asociados)Algorítmica II. Programación Orientada a Objetos

La interfaz es la vista externa del objeto. Es el conjunto de servicios que ofrece el objeto. Los otros objetos o el resto del programa pueden utilizar el objeto sólo mediante los servicios definidos en la interfaz.

Se puede modificar la implementación interna de un objeto A, mientras no se cambie la interfaz del objeto A los otros objetos que interactúan con éste no se verán afectados.

INTERFACES

Page 18: DAI - Ing. Arturo Rozas Huacho1 CAPÍTULO II PROGRAMACION ORIENTADA A OBJETOS (POO) Algorítmica II.

DAI - Ing. Arturo Rozas Huacho

18

public class Nombre_de_la_clase{

}

2.5.- IMPLEMENTACION DE CLASES

Algorítmica II. Programación Orientada a Objetos

Esquema general de implementación de clases en C Sharp, que se utilizará como patrón.

// ============ ATRIBUTOS =============// ============ METODOS =============// ----------------- Constructores

--------------------// ----------------- Propiedades ----------------------

// ----------------- Otros Métodos ----------------------

Parte Privada

Parte Pública