Lo primero que se nos ocurre preguntar es: ¿qué es un objeto? La respuesta es muy simple, bastará con mirar a nuestro alrededor para ver que estamos rodeados de objetos. Y extendiendo sólo un poco más la idea, notamos que a estos objetos les asignamos sustantivos para poder nombrarlos y diferenciarlos unos de otros. Por ejemplo, si vamos a un aeropuerto, veremos aviones, automóviles, taxis, etc. Todos
éstos son objetos; sin embargo, si observamos más detalladamente, notaremos que estos objetos tienen propiedades o atributos en común: poseen motor, ruedas y asientos, pero también se diferencian; por ejemplo, el avión puede volar y el auto no. Es decir, vemos que los objetos tienen un comportamiento propio. De esta forma podemos definir a un objeto como una entidad compleja provista de propiedades (datos, atributos) y comportamiento (funcionalidad, métodos). Tomando en cuenta estas características, es conveniente afirmar que también representan
objetos reales del mundo que nos rodea y palpamos cotidianamente.
Cada objeto expone una interfaz a otros objetos que especifica cómo éstos pueden interactuar con él, cómo pueden comunicarse con él. Esta interfaz está dada por un conjunto de métodos; así es como la interfaz del automóvil estará formada por los métodos “arranca”, “frena”, “dobla”, etc., a través de los cuales podemos interactuar con el objeto.

Por otro lado, cabe aclarar que el comportamiento es exclusivo del objeto; si bien algunos objetos a simple vista son iguales, internamente pueden ser muy distintos.
Por ejemplo, si aprendemos a manejar en un automóvil con motor diesel, podremos sin ningún problema manejar uno que funcione con nafta. Es decir, los dos objetos se nos presentan de igual forma, pero es indiscutible que los motores son muy distintos. Esto se conoce como encapsulamiento: los objetos presentan la misma interfaz pero ocultan información de su funcionamiento.
Gracias al encapsulamiento se puede cambiar un objeto por otro que presente la misma interfaz, y todo debería funcionar igual.
En segundo lugar vale mencionar que el encapsulamiento protege también al objeto de usos indebidos e inapropiados. Volvamos al ejemplo anterior para detallar un poco más esta situación. El automóvil utilizará otros mecanismos para llevar a cabo su interfaz, como, por ejemplo, abrir válvulas, mover pistones, etc., que no les permitirá usar a otros objetos.

Por lo general, cuando definimos un objeto lo hacemos en función de otros objetos conocidos. Si alguien nos habla de un objeto en particular cuyo nombre no conoce, instantáneamente empezará diciendo “es como…” para describirlo y luego deberá agregar las características particulares del objeto que desea que identifiquemos. En el ejemplo del automóvil, podría decir “es como un taxi, pero más chico”, o “es
como una moto, pero tiene cuatro ruedas”… Es decir que define al automóvil a través de objetos de similares características. Sin darnos cuenta hacemos clasificaciones; ahora, generalizando, nos damos cuenta de que todos son transportes.

En el paradigma de objetos esto se conoce como herencia, y sirve para no tener que definir comportamientos de forma repetitiva.
Desarrollemos el ejemplo; en nuestro caso tendremos un objeto transporte, que tendrá propiedades como cantidad de pasajeros, cantidad de puertas, etc., y métodos como anda, frena y dobla. De esta manera definiríamos un automóvil como un transporte, agregando las particularidades del automóvil que no estén definidas en transporte.
Ahora que sabemos agrupar los objetos en clases, podríamos agregar más objetos a nuestro modelo. Para seguir con el ejemplo, pensemos en el objeto avión: sin lugar a dudas, es un transporte; es decir que las clases simplemente son conjuntos de objetos que comparten propiedades y comportamientos.
Al agregar el objeto avión definido como un transporte, heredará de éste las propiedades (cantidad de pasajeros, cantidad de puertas) y los métodos (anda, frena y dobla). Si explotamos aún más el ejemplo, notamos que no es lo mismo.

hacer andar un automóvil que un avión, de forma tal que necesitamos agregar el método anda en automóvil, para que ruede, y en avión para que vuele. Esto se denomina polimorfismo, y nos permite tener muchas formas de comportamiento; o sea que la referencia al método anda producirá el comportamiento correcto según el objeto al que se lo esté ordenando.
Para ordenarle a un objeto que haga algo, debemos mandarle un mensaje. A través de los mensajes establecemos la comunicación entre los objetos de forma tal que les ordenamos ejecutar un método con algunos parámetros. En la Figura 2 veíamos que el conductor le ordenaba al auto que arrancara; esta orden se la daba a través de un mensaje.

Revisando el ejemplo del transporte, el automóvil y el avión, notamos que el gráfico evidencia una jerarquía: a la cabeza está el transporte, y de éste cuelgan el avión y el automóvil. En este paradigma, esto se denomina jerarquía de herencia . Notamos, también, que dicha jerarquía siempre tiene forma de árbol. Entonces encontramos una nueva agrupación de nivel superior. En resumen, los objetos se agrupan en clases, y las clases, en árboles, siempre y cuando reflejen un comportamiento común.

El automóvil, aparte de ser un objeto y además de ser un transporte, también está compuesto por más objetos con comportamientos distintos. Es decir, el automóvil está compuesto por un volante, una radio, pedales, una caja de cambios, etc.

Pero, a su vez, la radio tiene otros componentes, como display, botones, etc. Al igual que en otros ámbitos, aquí nos encontramos ante una jerarquía de elementos. Ésta se denomina jerarquía de composición, y sirve para representar que uno o varios objetos están dentro de otro que los contiene.

Para finalizar, si tenemos un solo objeto automóvil, no significa que nuestro programa podrá tener un solo automóvil. Para entender esto hay que agregar el concepto de instancia, que nos permite crear la cantidad de automóviles que deseemos. Por ejemplo, si nuestro objeto automóvil tiene una propiedad color, podemos tener instancias de automóvil con la propiedad color en rojo, azul o verde. Para lograr esto, cada objeto deberá tener un método, que nos permita crear una instancia de éste.

 

jQuery 1.7 descargalo ahora… El equipo de trabajo del popular framework con el que mejorar el trabajo de un desarrollador interesado en programar en Javascript acaba de liberar jQ...
Versión móvil de Facebook se Instagramiza.. No solo la página de Facebook experimentará un “restyling”, sino que la compañía de Mark Zuckeberg también está preparando mejoras para la versión...
¿Cuando un disco duro deja de funcionar comienza el caos o hay solución? Disco duro IBM ,modelo 62PC, de 64,5 Megabytes, producido en el año 1979 Muchas veces me han preguntado sobre la vida media de las partes del PC, ...
mysql select db mysql_select_db — Selecciona un base de datos MySQL Descripción int mysql_select_db ( cadena $base_de_datos ) Devuelve TRUE si todo se llevó...
Amazon pagará a los usuarios por repartir paquetes Renovarse o morir. Ése parece ser el eslogan interno de Amazon, que busca constantemente nuevas oportunidades para expandir su negocio o mejorar sus p...
Mootools 1.4.1 Apenas veinte días el lanzamiento de Mootools 1.4, el equipo de trabajo de esta librería Javascript ha liberado su primera actualización. Mootools ...
Servidor Dedicado versus servidor compartido Un servidor dedicado es uno que es utilizado únicamente por usted, este podría ser alojado en su empresa o en una ubicación dedicada al alojamiento d...
Steve Wozniak,cree que el diseño de Windows Phone es mejor que el de Android Steve Wozniak es uno de los creadores de Apple y un fanboy confeso de los productos de la manzana, pero eso no le impide saber apreciar los productos ...
Objetos nativos de JavaScript JavaScript define algunos objetos de forma nativa, por lo que pueden ser utilizados directamente por las aplicaciones sin tener que declararlos....
Pinterest envía más tráfico a revistas y blogs que Twitter Pinterest es una red social que trabaja con unos tableros virtuales donde los usuarios pueden compartir fotos, textos y otros contenidos con el resto ...