Está en la página 1de 2

Características de Orientación a Objetos

1. Introducción

La programación Orientada a Objetos se basa en modelar un conjunto de objetos y las


interacciones que hay entre ellos. Los sistemas basados en esta programación definen
una estructura de clases y hacen uso de los conceptos de orientación a objetos para
lograr sistemas más fáciles de entender y mantener.

Para elaborar un programa usando el paradigma de orientación a objetos, los pasos


son:
a. Tener claro la problemática planteada y lo que se desea que haga el sistema.
b. Identificar los objetos que son parte del sistema y que son importantes para el
desarrollo del programa.
c. A partir de estos objetos se establecen las clases que serán necesarias, cada
una con un conjunto de atributos, métodos y relaciones con otras clases. Las
relaciones pueden ser de herencia o de asociación.
d. Representar las clases en un diagrama de clases.
e. Definir un conjunto de pruebas que se realizarán, a partir de los que se desea
que haga el sistema.
f. Elaborar el código Java correspondiente al diagrama – aplicando buenas
prácticas de programación.
g. Compilar y corregir los errores que puedan presentarse.
h. Ejecutar las pruebas diseñadas.
i. Si no se dan los resultados esperados se procede a depurar y corregir el
programa y ejecutar de nuevo las pruebas para garantizar que el programa
funciona adecuadamente.

Para que se aprovechen adecuadamente las ventajas de la programación orientada a


objetos es necesario hacer un modelo adecuado, que incluya las características de la
orientación a objetos que se presentan a continuación.

2. Características de la Orientación a Objetos

 Abstracción

Es una de las formas de enfrentar la complejidad de un problema, ya que busca


representar un sistema de manera simplificada, concentrándose en los aspectos más
relevantes. Por ejemplo, el siguiente dibujo es una abstracción para representar una
persona, sin pensar en detalles como su edad, su peso, su color de cabello, etc.:

En la programación orientada a objetos las clases son abstracciones, que permite


concentrarse en la funcionalidad requerida sin preocuparse por los detalles internos
[McConell 2004:89].

1
 Encapsulamiento

Esta característica dice que cada clase deben diseñarse de manera que sus procesos
internos y datos no sean accesibles a otros módulos, permitiendo así que cada módulo
pueda ser codificado sin preocuparse por los detalles de otros [Pressman 2002:229]. La
única forma de acceder a otros módulos debe ser a través de un conjunto de métodos
públicos bien definidos.

Si la abstracción dice: “Es permitido ver un objeto de manera general (sin detalles)”, el
encapsulamiento dice: “Más aún, no es permitido ver los detalles internos de un objeto”
[McConell 2004:90].

 Herencia

Mediante este mecanismo es posible crear clases que son especializaciones o casos
particulares de otras. Este mecanismo permite que las clases hijas hereden toda la
estructura definida en la clase padre y así se aprovecha mucho más el código
(reutilización).

 Polimorfismo

Es la capacidad que tienen los objetos de comportarse diferente ante un mismo


mensaje, dependiendo de los parámetros que recibe o del tipo de objeto que sea. Esta
capacidad de comportarse diferente puede darse en dos casos:
o Cuando la información que se le da al objeto para solicitarle el servicio cambia.
Es decir, se envían diferente tipo y cantidad de parámetros a un método. Esto
se conoce como polimorfismo por sobrecarga.
o Cuando se le pide el mismo servicio a diferentes objetos, y cada uno de ellos
puede hacerlo de forma diferente. Esto se conoce como polimorfismo por
sobrescritura.

Referencias Bibliográficas

 McCONNELL, Steve (2004). Code Complete: A practical handbook of software


construction, 2 Edition. Microsoft.
 PRESSMAN, Roger (2002). Ingeniería del Software: Un enfoque práctico, quinta
edición. Madrid: McGrawHill, pp219-236.

También podría gustarte