jueves, 18 de noviembre de 2010

*Objeto en Programación Orientada a Objetos

Materia: Laboratorio de Lenguajes de Programación
Hora: Jueves v1




Hola a todos, en está entrada les hablaré un poco sobre los Objetos en la Programación Orientada a Objetos.




Se dice que un objeto es la unidad que en la ejecución realiza las tareas de un programa, también se dice que es la instancia de una clase.


Cada objeto puede recibir mensajes, procesar datos y mandar mensajes a otros objetos de manera similar a un servicio, un objeto es el resultado de la instanciación de una clase. Sabemos que una clase ofrece la funcionalidad en ella definida, pero queda implementada sólo al crear una instancia de la clase, en forma de un objeto.


Un objeto representa alguna identidad en la vida real, al momento de estudiarlos adquirimos el conocimiento necesario para mediante la abstracción y la generalización los agrupamos según sus características en conjuntos.


Los objetos tienen diferentes características que nos permiten conocerlos mediante la observación, identificación y el estudio de su comportamiento y algunas de estas características son:




- Identidad: que es la propiedad que permite a un objeto diferenciarse de otros. Sirve para comparar si dos objetos son iguales o no.


- Comportamiento: el comportamiento de un objeto esta relacionado con su funcionalidad y determina las operaciones que este puede realizar o las que puede responder ante mensajes enviados por otros objetos, la funcionalidad de un objeto está determinada por su responsabilidad, una de las ventajas de la Programación Orientada a Objetos es la reusabilidad del código y un objeto es más fácil reutilizarse en tanto su responsabilidad sea mejor definida y más concreta.


- Estado: el estado de un objeto es el conjunto de valores de sus atributos en un instante de tiempo dado, éste puede ser modificado por el comportamiento de un objeto.




Los objetos en la Programación Orientada a Objetos entienden la noción descrita en secciones anteriores para modelar un tipo específico que está definido por:


1. Atributos que son los que representan las propiedades o características del objeto, los atributos y los valores determinan el estado de un objeto.


2. Métodos que son los que acceden a los atributos de una manera predefinida e implementan el comportamiento del objeto.


Los atributos y métodos de un objetos están definidos por su clase, una instancia puede poseer atributos que no fueron definidos en su clase. Algo parecido pasa con los métodos, una instancia puede contener métodos que no estén definidos en su clase de la misma manera, una clase puede declarar ciertos métodos como "métodos de clase", y estos podrán estar o no presentes en la instancia.

En un lenguaje en el que cada objeto es creado a partir de una clase, un objeto es llamado una instancia de esa clase, aquí cada objeto pertenece a un tipo y dos objetos que pertenezcan a la misma clase tendrán el mismo tipo de dato. Crear una instancia de una clase es entonces referido como instanciar la clase.


Un ejemplo de como crear un objeto de tipo "Aritmetica" sería de la siguiente forma:

Aritmetica calculador = Aritmetica();

#Otra manera usando punteros
Aritmetica* calculador1 = new Aritmetica();


Y por ejemplo para calcular la suma entre dos números usando un objeto "calculador", podemos decir 78 y 69 necesitamos un código como el siguiente:

int resultado = 0;

resultado = calculador.sumar(78, 69);
#Otra manera usando punteros
resultado = calculador1->sumar(78, 69);



* La cardinalidad que pueden tener las relaciones de un objeto son:

- uno a uno, ejemplo: un auto tiene un motor

- uno a muchos, ejemplo: un auto tiene muchas ruedas
- muchos a muchos, ejemplo: un auto se puede servir en muchas gasolineras y una gasolinera puede servir a   muchos autos.

* Y la direccionalidad puede ser:

- unidireccional, ejemplo: un auto tiene cuatro ruedas.
- bidireccional


* Las relaciones entre objetos más generales son:

-Composición: es un tipo de relación que se establece entre dos objetos que tienen conmunicación persistente, se utiliza para expresar que los objetos que estan involucrados está compuesto por el otro.

-Uso: es cuando un objeto usa a otro para enviarle mensajes, por ejemplo para requerir de este algún servicio.

-Delegación:es cuando un objeto es implementado de forma tal que este delegue parte de su funcionalidad en otro objeto.


* Algunos términos para tipos especializados de objetos son:



-Singleton: es cuando un objeto del que solo puede existir una única instancia de su clase durante el tiempo de vida del programa.


-Functor : es cuando un objeto que puede ser utilizado como una función.


-Objeto inmutable: es cuando un objeto creado con un estado fijo, no puede variar en el tiempo de vida del mismo.


-Objeto de primera clase: es cuando un objeto  puede ser utilizado sin restricciones.


-Contenedor: es cuando un objeto contiene a otros objetos.


-Fábrica de objetos: es cuando un objeto tiene como propósito crear otros objetos.


-Metaobjeto: es cuando un objeto crea otros objetos.
-Prototipo: es cuando un metaobjeto especializado, a partir del el se pueden crear otros objetos copiándolo.


-Objeto todopoderoso: es cuando un objeto sabe mucho o hace mucho.


-Antiobjeto: es una metáfora computacional útil para conceptualizar y solucionar problemas complejos, usualmente con aproximaciones paralelas.


 
                                      





Bueno esto es todo sobre mi entrada, espero les sea útil.


Saludos :)




1 comentario: