jueves, 27 de junio de 2013

¿Qué es un Objeto?

Antes de empezar con la programación orientada a objetos es necesario entender qué es un objeto.

El mundo esta hecho de objetos, basta con mirar a nuestro alrededor para encontrar cualquier cantidad de objetos, como por ejemplo: audifonos, llaves, lentes, mouse...


En el mundo real podríamos decir que todos los objetos tienen estados y comportamientos.

Por ejemplo:


Objeto Estado Comportamiento
Audífonos marca, peso, color, volumen actual sonar
Perro nombre, color, raza ladrando, buscando, moviendo la cola
Mouse color, marca, peso, tipo dar clic, desplazar, mover scroll
Radio marca, color, apagado, encendido sintonizar, ajustar volumen

Pero no se detiene esto aquí, también es posible observar que unos objetos son extensión de otros o que necesitan de otros objetos para realizar alguna función en especifico. Por ejemplo el radio puede conectar unos audífonos para tomar estos como la salida del audio y todo esto se puede reproducir en la programación orientada a objetos.

Los objetos software son similares a los objetos del mundo real: también consisten de estado y comportamiento. Un objeto almacena su estado en campos («variables») y muestra su comportamiento a través de métodos  («funciones»). Los métodos operan sobre el estado interno del objeto y sirven como el mecanismo principal para la comunicación entre objetos. La ocultación del estado interno y requerir que toda interacción se realice a través de los métodos de un objeto se conoce como encapsulación de datos — un principio fundamental de la programación orientada a objetos. Al agrupar código en objetos software individuales se obtienen ciertos beneficios:
  1. Modularidad: El código fuente de un objeto se puede escribir y mantener independientemente del código fuente de otros objetos. Una vez creado, un objeto se puede pasar fácilmente de un lado al otro del sistema.
  2. Ocultación de información: Al interactuar solamente con los métodos de un objeto los detalles de su implementación interna permanecen ocultas al mundo exterior.
  3. Reutilización de código: Si un objeto ya existe (quizás escrito por otro desarrollador de software), puede utilizar ese objeto en su programa. Esto permite que un especialista implemente/compruebe/depure objetos específicos para una tarea, en los que luego podrá confiar en su propio código.
  4. Conectividad y facilidad de depuración: Si un objeto en concreto resulta ser problemático podrá simplemente eliminarlo de su aplicación y «conectar» un objeto distinto para reemplazarlo. Esto es análogo a la reparación de problemas mecánicos en el mundo real. Si rompe un tornillo, reemplaza el tornillo, no la máquina entera.

No hay comentarios:

Publicar un comentario