Programación orientada a objetos
¿Qué es la Programación Orientada a Objetos POO u OOP por sus siglas en inglés Object Oriented Programming?
Básicamente y en términos sencillos la programación orientada a objetos es la creación de objetos y la interacción con ellos. Pero y ¿qué se define como un objeto en programación?. Simple, un objeto en programación es un conjunto complejo de variables y funciones encapsulados dentro de una misma estructura lógica de datos que pueden representar objetos de la vida real, como un botón, una licuadora, un auto o una persona. La analogía de la programación orientada a objetos con los objetos del mundo real se basa en que en ambos mundos todos los objetos poseen 3 cualidades en común, que son:
- Estado: es la situación actual de un objeto, si tomamos el ejemplo de un vehículo, éste puede estar detenido (sin movimiento y encendido), circulando (en movimiento), estacionado (sin movimiento y apagado), etc.
- Comportamiento: son las potenciales funciones que puede cumplir un objeto o dicho de otro modo las capacidades del objeto. En el ejemplo del vehículo éste puede acelerar, desacelerar, detenerse, girar a la derecha, girar a la izquierda, retroceder, encender, apagar, etc.
- Propiedades o atributos: se refiere a las características que lo califican como color, tamaño, peso, antigüedad, etc.
Algunos lenguajes de programación que trabajan con el paradigma de la programación orientada a objetos son: C++, Java, Visual .NET, PHP, etc. Dentro de las ventajas que ofrece la programación orientada a objetos esta la capacidad de dividir el programa en pequeños trozos o módulos, lo cual a su vez facilita la reutilización de código, la depuración de errores y la continuidad de la ejecuión de un programa a pesar de que surja alguna excepción.
La contraparte de a programación orientada a objetos sería la programación orientada a procedimientos, este paradigma de programación es muy común en lenguajes mas antiguos como FORTRAN, COBOL, BASIC, Este paradigma de programación hace que un programa tienda a tener mas líneas de código de lo necesario y esto se agrava proporcionalmente a medida que aumenta la complejidad del programa que se esta desarrolando. esta desventaja hace que el mantenimiento, ampliación y corrección de fallos en un programa desarrollado orientado a procedimientos sea mucho mas difícil aún.
Otra desventaja del paradigma de programación orientado a procedimientos es lo poco práctico que resulta al momento de reutilizar código en otras aplicaciones similares a las ya creadas. Añadiendo a esto la alta probabilidad de que un programa se caiga por completo al ocurrir un fallo o excepción. La misma naturaleza de la programación orientada a procedimientos hace que sea muy común la programación tipo espaguetti, metodología nada recomendada a la hora de hacer un programa legible.
Conceptos básicos de a programación orientada a objetos
Dentro de los conceptos básicos manejados en la programación orientada a objetos se encuentran:
- Clase: Es el molde a partir de donde se especifica la estructura de datos de los objetos que van a ser construidos a partir de él. en ella se definen las características comunes que van a tener todos los objetos que van a pertenecer a dicha clase.
- Ejemplar de clase, instancia de clase u objeto de clase: Es el objeto en sí una vez creado derivada de una clase definida. Todos los objetos creados a partir de una clase comparten las mismas características de la clase a partir de la cual fueron creados. Pueden tener algunas características adicionales que no sean comunes entre ellos a pesar de provenir de la misma definición de clase. Para acceder a las propiedades de cada objeto se usa la sintaxis de la nomenclatura del punto. De la siguiente manera: "<nombre del objeto>.<propiedad>". Iguamente para asignar valores a cada propiedad: <nombre del objeto>.<propiedad>="valor a asignar". Igualmente para acceder a su comportamiento o métodos, terminando el nombre del método con parentesis (): <nombre del objeto>.<nombre del método()>.
- Modularización: se refiere a la diversidad de clases que pueden componer un programa, en donde cada clase cumple una función en particular. funcionando de manera independiente unas de otras. Esto trae como ventaja que a pesar de que una clase falle, no causa que el programa se caiga por completo, ya que los otros módulos o trozos de código siguen funcionando de manera independiente.
- Encapsulamiento: es individualidad del funcionamiento de cada clase en un programa orientado a objetos, es decir, las clases no interfieren internamente en otras clases mas allá de los parámetros predefinidos o métodos de acceso que puedan ser necesarios para comunicarse entre sí. Dicho en otras palabras, el encapsulamiento es la protección del código que define las propiedades y métodos de un objeto.
- Herencia:
- Polimorfismo:
Comentarios
Publicar un comentario