POO (Progrmación Orientada a Objetos)

16
1

Transcript of POO (Progrmación Orientada a Objetos)

Page 1: POO (Progrmación Orientada a Objetos)

1

Page 2: POO (Progrmación Orientada a Objetos)

2

La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación.Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos.

La programación orientada a objetos, intenta simular el mundo real a traves del significado de objetos que contiene caracteristicas y funciones. Los lenguajes orientados a objetos se clasifican como lenguajes de quinta generacion.

la programación orientada a objetos se basa en la idea de un objeto, que es una combinacion de variables locales y procedimientos llamados metodos que juntos conforman una entidad de programación.

Page 3: POO (Progrmación Orientada a Objetos)

3

Objetos•Un objeto es una cosa tangible, algo a que se puede aprender intelectualmente o algo hacia lo que se puede dirigir una acción o pensamiento.•Un objeto representa un item individual e identificable, o una entidad real o abstracta, con un papel definido en el dominio del problema•Un objeto tiene:

EstadoComportamientoIdentidad

La estructura y el comportamiento de objetos similares se definen en sus clases comunes. El término objeto y ejemplo (instance) de una clase son intercambiables.

Page 4: POO (Progrmación Orientada a Objetos)

4

El comportamiento de un objeto representa su actividad externamente visible y testable. Son las operaciones que una clase realiza (llamadas también mensajes) las que dan cuenta de como se comporta la clase. Por operación se denota el servicio que una clase ofrece a sus clientes. Un objeto puede realizar cinco tipos de operaciones sobre otro, con el proposito de provocar una reacción:•Modificador: altera el estado de un objeto.•Selector: accede al estado de un objeto, sin alterarlo.•Iterador: permite a todas las partes de un objeto ser accedidas en un orden.•Constructor: crea un objeto y/o inicializa su estado.•Destructor: libera el estado de un objeto y/o destruye el objeto.C++ soporta, ademas de las operaciones, subprogramas libres. En la terminología de C++ las operaciones que un cliente puede realizar sobre un objeto se declaran como funciones miembro.

Comportamiento de un objeto

Page 5: POO (Progrmación Orientada a Objetos)

5

ClasesUna clase es un conjunto de objetos que comparten una estructura y comportamiento comunes.•Clase representa una abstracción, la esencia que comparten los objetos.•Un objeto es un ejemplo de una clase.•Un objeto no es una clase, y una clase no es un objeto (aunque puede serlo, p.e. en Smalltalk).•Las clases actuan como intermediarias entre una abstracción y los clientes que pretenden utilizar la abstracción. De esta forma, la clase muestra:

visión externa de comportamiento (interface), que enfatiza la abstracción escondiendo su estructura y secretos de comportamiento.visión interna (implementación), que abarca el código que se ofrece en la interface de la clase.

Page 6: POO (Progrmación Orientada a Objetos)

6

Relaciones entre clases y objetosRelaciones entre clases y objetos•Todo objeto es el ejemplo de una clase, y toda clase tiene 0 ó más objetos.•Mientras las clases son estáticas, con semántica, relaciones y existencia fijas previamente a la ejecución de un programa, los objetos se crean y destruyen rápidamente durante la actividad de una aplicación.El diseño de clases y objetos es un proceso incremental e iterativo. Debe asegurar la optimización en los parámetros:•Acoplamiento: Grado de acoplamiento entre módulos.•Cohesión: Mide el grado de conectividad entre elementos de un módulo, y entre objetos de una clase.•Suficiencia: Indica que las clases capturan suficientes características de la abstracción para conseguir un comportamiento e interacción eficiente y con sentido.•Completitud: Indica que la interface de la clase captura todo el significado característico de una abstracción, escrito en el mínimo espacio.•Primitividad: Las operaciones deben implementarse si dan acceso a una representación fundamental de la abstracción. Cuales son operaciones primitivas y cuales no (se pueden realizar a partir de otras) es un asunto subjetivo y afecta a la eficiencia en la implementación.

Page 7: POO (Progrmación Orientada a Objetos)

7

Page 8: POO (Progrmación Orientada a Objetos)

8

AbstracciónMediante la abstracción la mente humana modeliza la realidad en forma de objetos. Para ello busca parecidos entre la realidad y la posible implementación de objetos del programa que simulen el funcionamiento de los objetos reales.Los seres humanos no pensamos en las cosas como un conjunto de cosas menores; por ejemplo, no vemos un cuerpo humano como un conjunto de células. Los humanos entendemos la realidad como objetos con comportamientos bien definidos. No necesitamos conocer los detalles de porqué ni cómo funcionan las cosas; simplemente solicitamos determinadas acciones en espera de una respuesta; cuando una persona desea desplazarse, su cuerpo le responde comenzando a caminar.Pero la abstracción humana se gestiona de una manera jerárquica, dividiendo sucesivamente sistemas complejos en conjuntos de subsistemas, para así entender más fácilmente la realidad. Esta es la forma de pensar que la orientación a objeto intenta cubrir.

Page 9: POO (Progrmación Orientada a Objetos)

9

EncapsulamientoEl encapsulamiento permite a los objetos elegir qué información es publicada y qué información es ocultada al resto de los objetos. Para ello los objetos suelen presentar sus métodos como interfaces públicas y sus atributos como datos privados e inaccesibles desde otros objetos.Para permitir que otros objetos consulten o modifiquen los atributos de los objetos, las clases suelen presentar métodos de acceso. De esta manera el acceso a los datos de los objetos es controlado por el programador, evitando efectos laterales no deseados.Con el encapsulado de los datos se consigue que las personas que utilicen un objeto sólo tengan que comprender su interfaz, olvidándose de cómo está implementada, y en definitiva, reduciendo la complejidad de utilización.

Page 10: POO (Progrmación Orientada a Objetos)

10

PolimorfismoPolimorfismo: Es la propiedad que indica, literalmente, la posibilidad de que una entidad tome muchas formas. En términos prácticos, el polimorfismo permite referirse a objetos de clases diferentes mediante el mismo elemento de programa y realizar la misma operación de diferentes formas, según sea el objeto que se referencia en ese momento.

Page 11: POO (Progrmación Orientada a Objetos)

11

El lenguaje UML esta diseñado para

Page 12: POO (Progrmación Orientada a Objetos)

12

Page 13: POO (Progrmación Orientada a Objetos)

13

Page 14: POO (Progrmación Orientada a Objetos)

14

Page 15: POO (Progrmación Orientada a Objetos)

15

Page 16: POO (Progrmación Orientada a Objetos)

16