Conceptos Básicos de Programación Orientada a Objeto?

     

Que son objeto en la programación orientada a objetos?



En la programación orientada a objetos, los objetos, o dicho en forma más precisa, son en esencia componentes de software reutilizables. Existen objetos de fecha, objetos de hora, objetos de audio, objetos de video, objetos de automóviles, objetos de personas, etcétera. Casi cualquier sustantivo se puede representar de manera razonable como un objeto de software en términos de sus atributos (como el nombre, color y tamaño) y comportamientos (por ejemplo, calcular, moverse y comunicarse).

Analogía simple para comprender los objetos y su contenido.

Para ayudarle a comprender los objetos y su contenido, empecemos con una analogía simple. Suponga que desea conducir un auto y hacer que vaya más rápido al oprimir el pedal del acelerador. ¿Qué debe ocurrir para que usted pueda hacer esto? Bueno, antes de que pueda conducir un auto, alguien tiene que diseñarlo. Por lo general, un auto empieza en forma de dibujos de ingeniería, similares a los planos de construcción que describen el diseño de una casa. Estos dibujos de ingeniería incluyen el diseño del pedal del acelerador.

El pedal oculta los complejos mecanismos que se encargan de que el auto aumente su velocidad, de igual forma que el pedal del freno oculta los mecanismos que disminuyen la velocidad del auto y el volante “oculta” los mecanismos que hacen que el auto de vuelta. Esto permite que las personas con poco o nada de conocimiento acerca de cómo funcionan los motores, los frenos y los mecanismos de la dirección puedan conducir un auto con facilidad.

Antes de poder conducir un auto, éste debe construirse a partir de los dibujos de ingeniería que lo describen. Un auto completo tendrá un pedal acelerador verdadero para hacer que aumente su velocidad, pero aun así no es suficiente; el auto no acelerará por su propia cuenta (¡esperemos que así sea!), así que el conductor debe oprimiré. 1 pedal del acelerador para aumentar la velocidad del auto.

De misma forma que un auto no puede realizar una tarea por su propia cuenta, para que una aplicación  realice una tarea se requiere un método, el cual aloja las instrucciones del programa que se encargan de realizar sus tareas. El método oculta al usuario estas tareas, de la misma forma que el pedal del acelerador de un auto oculta al conductor los mecanismos para hacer que el auto vaya más rápido. En Java, creamos una unidad de programa llamada clase para alojar el conjunto de métodos que realizan las tareas de esa clase.

Por ejemplo, una dase que representa a una cuenta bancaria podría contener un método para depositar dinero en una cuenta, otro para retirar y un tercero para solicitar el saldo actual. Una clase es similar en concepto a los dibujos de ingeniería de un auto, que contienen el diseño de un pedal acelerador, volante de dirección, etcétera.

Instanciamiento o creación de objeto de una clase.

Así como alguien tiene que construir un auto a partir de sus dibujos de ingeniería para que otra persona lo pueda conducir después, también es necesario crear un objeto de una clase para que un programa pueda realizar las tareas definidas por los métodos de esa clase. Al proceso de hacer esto se le denomina instanciamiento. Entonces, un objeto viene siendo una instancia de su clase.

Reutilización de código para crear nuevos objetos.

Como los dibujos de ingeniería de un auto se pueden reutilizar muchas veces para construir muchos autos, también es posible reutilizar una clase muchas veces para crear muchos objetos. Al reutilizar las clases existentes para crear nuevas clases y programas, ahorramos tiempo y esfuerzo.

La reutilización también nos ayuda a crear sistemas más confiables y efectivos, debido a que con frecuencia las clases y los componentes existentes pasan por un extenso proceso de prueba, depuración y optimización del desempeño. De la misma manera en que la noción de piezas intercambiables fue crucial para la Revolución Industrial, las clases reutilizables son cruciales para la revolución de software incitada por la tecnología de objetos, a dicho proceso se le llama reutilización.

Llamada a  método de un objeto.

Cuando conduce un auto, al oprimir el pedal del acelerador envía un mensaje al auto para que realice una tarea: aumentar la velocidad. De manera similar, es posible enviar mensajes a un objeto. Cada mensaje se implementa como llamada a método, para indicar a un método del objeto que realice su tarea. Por ejemplo, un programa podría llamar al método depositar de un objeto cuenta de banco específico para aumentar el saldo de esa cuenta.

Atributos de un objeto

Además de tener capacidades para realizar tareas, un auto también tiene atributos: color, número de puertas, cantidad de gasolina en el tanque, velocidad actual y registro del total de kilómetros recorridos (es decir, la lectura de su velocímetro).

Al igual que sus capacidades, los atributos del auto se representan como parte de su diseño en sus diagramas de ingeniería (que, por ejemplo, agregan un velocímetro y un indicador de combustible). Al conducir un auto real, estos atributos van incluidos. Cada auto conserva sus propios atributos. Por ejemplo, cada uno sabe cuánta gasolina hay en su tanque, pero no cuánta hay en los tanques de otros autos.

De manera similar, un objeto tiene atributos que lleva consigo a medida que se utiliza en un programa. Estos atributos se especifican como parte de la clase del objeto. Por ejemplo, un objeto cuenta bancaria tiene un atributo saldo que representa la cantidad de dinero en la cuenta. Cada objeto cuenta bancaria conoce el saldo de la cuenta que representa, pero no los saldos de las otras cuentas en el banco. Los atributos se especifican mediante las variables de instancia de la clase.

Encapsulación u ocultamiento de los atributos y métodos de un objeto.

Las clases encapsulan (envuelven, ocultan) los atributos y métodos en objetos; los atributos y métodos de un objeto están muy relacionados entre sí. Los objetos se pueden comunicar entre sí, pero por lo general no se les permite saber cómo están implementados otros objetos; los detalles de implementación están ocultos dentro de los mismos objetos. Este ocultamiento de información,  es crucial para la buena ingeniería de software.

Herencia, crear nueva clase de objetos.

Es posible crear una nueva clase de objetos con rapidez y de manera conveniente mediante la herencia: la nueva clase absorbe las características de una clase existente, con la posibilidad de personalizarlas y agregar características únicas propias.

En nuestra analogía del auto, sin duda un objeto de la clase “convertible” es ««objeto de la clase más general llamada “automóvil” pero, de manera más específica, el techo puede ponerse o quitarse.

Metodología de diseño e implementación orientada a objetos y modular.

Los desarrolladores de software han descubierto que al usar una metodología de diseño e implementación orientada a objetos y modular, pueden crea grupos de desarrollo de software más productivos de lo que era posible con las técnicas populares anteriores, como la “programación estructurada”.

Por lo general los programas orientados a objetos son más fáciles de comprender, corregir y modificar.



Deja un comentario