jueves, 18 de noviembre de 2010

Objeto

Hola a todos, esta entrada la dedicaré para hablar acerca del objeto en programación.

Un objeto es la unidad que en un tiempo de ejecución hace las tareas de un programa, así se define en el paradigma de programación orientada a objetos.

Los objetos interactuan entre ellos, cada uno puede recibir mensajes, procesar datos y enviar mensajes a otros objetos.

En la programación orientada a objetos, el objeto es resultado de la instancia de una clase.  Un clase es una construcción que se utiliza como un modelo para poder crear objetos de esa clase. Al tener una clase se pueden crear objetos de esta clase, así como también si tenemos un determinado tipo de dato podremos definir variables de este tipo.

Algunos de los objetos que forman parte del problema que estamos resolviendo, y podemos interactuar con ellos. Estos objetos se pueden agrupar según sus características en conjuntos, los cuales determinan las clases de objetos que utilizamos.

Las características de los objetos son:
  • Identidad
  • Comportamiento
  • Estado
La identidad permite a un objeto diferenciarse de otros. Esta propiedad da el nombre al objeto. Por ejemplo, podemos tomar como objeto blanco y pertenece a una clase llamada color, la propiedad única que tiene es que es "color" verde.
La identidad de los objetos se utiliza para comparar si son iguales o no, dos objetos.

El comportamiento se relaciona con la funcionalidad y define las operaciones que se pueden realicar o a las que puede responder ante mensajes enviados por otros objetos. Una ventaja de la programación orientada a objeto es que el código puede reutilizarse. Para que la aplicación sea más eficiente se define como se comportaran los objetos de las clases involucradas en dicha aplicación.

El estado de un objeto es el conjunto de valores de sus atributos en un tiempo determinado. Cuando una operación de un objeto modifica el estado de este se dice que tiene un efecto colateral.

Objetos en programación orientada a objetos
En programación orientada a objetos, la instancia de un programa es como un conjunto dinámico de objetos que interactuan entre sí. Los objetos generan tipos de datos muy específicos los cuales están definidos por:
  • Atributos. Son los datos que estan asociados al objeto, o sea sus características. Los atributos y valores definen el estado de un objeto.
  • Métodos. Estos acceden a los atributos e implementan el comportamiento de un objeto.
Estos atributos y métodos se definen por su clase. La instancia puede tener atributos que no fueron definidos en su clase. En cuanto a con los métodos, la instancia puede contener métodos que no estén definidos en su clase.

En casi todos los objetos, solo se puede acceder a los atributos mediante los métodos. Con esto es más facil asegurarse de que los datos siempre estarán en un estado bien definido.

Cada objeto pertenece a un tipo, y si hay dos objetos que pertenecen a la misma clase tendrán el mismo tipo de dato.

En la mayoría de los lenguajes de programación orientados a objetos, el operador punto (.) se utiliza para llamar a un método particular de un objeto.

Por ejemplo en python podríamos definir esta clase así:


class Aritmetica:
    def sumar(self, a, b):
        return a + b
 
    def restar(self, a, b):
        return a - b
 
    def multiplicar(self, a, b):
        return a * b
 
    def dividir(self, a, b):
        return a / b
 

Este ejemplo lo saqué de internet pero basicamente lo que hace es hacer las operaciones básicas y se declaró una clase llamada Aritmetica donde contiene todas cada una de las funciones de las operaciones básicas, para sumar, restar, multiplicar y dividir.

Para crear un objeto de tipo 'Aritmetica' se haría de la siguiente forma:

calculador = Aritmetica()

Ya teniendo un objeto de Aritmetica, se pueden realizar operaciones con dos números. Por ejemplo para sumar dos números sería:


resultado = calculador.sumar(78, 69)
 
 

Relaciones entre objetos
Como ya lo mencioné, los objetos interactuan entre sí. Estas interacciones tienen ciertas relaciones con los objetos del sistema.

Las relaciones entre objetos son:
Composición. También se le dice relación asociativa, es un tipo de relación que se tiene entre dos objetos que se comunican persistentemente. Así como también se utiliza para decir que dos objetos tienen una relación dependiente para llevar a cabo su función.

Uso. un objeto utiliza a otro cuando puede enviarle mensajes, para requerir de algun servicio por ejemplo.

Delegación.  En algunos casos, para lograr la flexibilidad de diseño, el objeto es implementado de modo que este encarga parte de su funcionalidad a otro objeto. Esto es común en aplicaciones que usan interfaces gráficas de usuarios, en las cuales los controles gráficos delegan la acción que se va a ejecutar ante cierto estímulo en otro objeto.

Bueno esto es todo, espero que les haya gustado mi entrada, saludos:)

1 comentario: