Es un método de implementación en el que los programas se organizan como colecciones cooperativas...

Post on 11-Apr-2015

126 views 0 download

Transcript of Es un método de implementación en el que los programas se organizan como colecciones cooperativas...

PROGRAMACIÓN ORIENTADA A OBJETOS

1. PROGRAMACIÓN ORIENTADA A OBJETOS Es un método de implementación en el

que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son, todas ellas, miembros de una jerarquía de clases unidas mediante relaciones de herencia.

Características Esta basado en Objetos, se modela y se

piensa en los Objetos y lo que estos pueden hacer, o lo que se puede hacer con estos.

Se pueden construir fácilmente nuevas aplicaciones sin mucho esfuerzo

La Herencia puede ser una herramienta muy útil en POO, y al mismo tiempo puede ser FATAL.

P.O.O. - Lenguajes Ada Modula Smalltalk (Alan Kay) Java (Sun Microsystems) Eiffel C++ Object Pascal C#

1.1 Mecanismos básicos La tecnología

orientada a objetos se apoya en los fundamentos de la ingeniería, cuyos elementos reciben el nombre global de modelo de objetos

El modelo de objetos abarca principios de: Abstracción Encapsulación Modularidad Jerarquía Tipos Concurrencia y Persistencia

Jenkins y Glasgow observan que la mayoría de los programadores trabajan en un lenguaje y utilizan un solo estilo de programación. Sugieren que hay cinco tipos principales de estilos de programación: Orientada a procedimientos (Algoritmos) Orientada a objetos (Clases y objetos) Orientados a lógica (Objetivos, a menudo

expresados como calculo de predicados) Orientados a reglas (Reglas si-entonces [if-

then]) Orientados a restricciones (Relaciones

invariantes)

Modelo de Objetos Hay cuatro

elementos fundamentales en este modelo:AbstracciónEncapsulamientoModularidad Jerarquía

Existen otros tres elementos secundarios: Tipos (tipificación)ConcurrenciaPersistencia

1.2 Objetos Un objeto es:

Una cosa tangible y/o visible Algo que puede comprenderse

intelectualmente Algo a lo que se dirige un pensamiento o

acción Es una abstracción de una entidad del

mundo real. Toda interacción con el mundo externo es

por medio de una interface.

Definición de Objeto Un objeto tiene estado,

comportamiento e identidad; la estructura y comportamiento de objetos similares están definidos en su clase común; los términos instancia y objeto son intercambiables

Estado El estado de un objeto se compone de

todas las propiedades de un objeto (estáticas)

Y los valores asociados a ellas (dinámicos).

Estos valores pueden ser: Simples O denotar a otro objeto.

Estado = Atributos = Datos miembro

1.3 Mensajes y métodos El mensaje es la acción que realiza un objeto sobre otro,

la petición de servicio. El método es la respuesta al mensaje, la forma de

proporcionar el servicio. Son los procesos (funciones o procedimientos) que

permiten trabajar con los datos de los objetos

Existe una clasificación de los métodos según su objetivo: Constructores Destructores Iteradores Selectores Modificadores Consultivos

Constructores Una operación que crea un objeto y/o

inicializa su estado. El constructor es un proceso que se encarga

de: Reservar espacio de memoria para los datos del

objeto Inicializar los atributos del objeto (darle un

estado inicial) Tipos de Constructor:

Oficio, Copia, con Parámetros

class Rectangulo{int x;int y;int ancho;int alto;

Rectangulo(int x1, int y1, int w, int h){x=x1;y=y1;ancho=w;alto=h;

}}

Constructor de oficio Inicializa los

atributos con valores definidos por el implementador de la clase.

Ej.Fecha::Fecha(){ d=1; m=1;

a=2001;}

Constructor de copia Inicializa los

atributos del objeto con los datos provenientes de otro objeto de la misma clase.

Ej. Fecha::Fecha(const Fecha &f2){ d=f2.d; m=f2.m; a=f2.a;}

Constructor con parámetros Inicializa el objeto

con datos provenientes de los parámetros.

Ej.Fecha::Fecha(byte

dd, byte mm,Word aa)

{ SetFecha(dd, mm, aa);

}

Destructor Una operación que libera el estado de un

objeto y/o destruye el propio objeto Sus principales cometidos son:

Liberar los recursos computacionales que el objeto de dicha clase haya adquirido en su tiempo de ejecución al expirar éste.

Quitar los vínculos que pudiesen tener otros recursos u objetos con éste.

Los destructores son invocados automáticamente al alcanzar el flujo del programa el fin del ámbito en el que está declarado el objeto.

Modificador Permite cambiar el estado de un objeto,

modificando los atributos del mismo.Ej. Void Fecha::SetDia(byte dd){ SetFecha(dd, m, a);}

Selector Permite devolver el valor de los

atributos sin alterar su estado.Ej.byte Fecha::GetDia(){ return d;}

Iteradores Una operación que permite acceder a todas las

partes de un objeto en algún orden perfectamente establecido.

Es un objeto que permite a un programador recorrer los elementos de una colección, sin tener en cuenta su implementación específica.

Tiene dos operaciones principales: referenciar un elemento particular en una colección (llamado elemento de acceso), y modificarse a sí mismo para que apunte al siguiente elemento.

Identidad Es la propiedad de un objeto que lo distingue de

todos los demás objetos No hay que confundir el nombre de un objeto con el

objeto mismo.Ej. perro != &perro;

Puede haber varias variables que se refieran al mismo objeto, pero no varios objetos con la misma identidad.Ej. perro * raza = &razaperro;

Puede haber objetos con el mismo estado pero identidades diferentes.Ej. perro_ladador = perro;

Conclusión: hay dos tipos de igualdad: de estado y de identidad.