¿Qué es la POO?
La programación orientada a objetos (o OOP) es un paradigma de programación en el que los programas se escriben y estructuran en torno a objetos en lugar de funciones o lógica. Aquí, los objetos se definen como campos de datos que tienen atributos y comportamientos únicos. Contienen datos en forma de atributos y procedimientos en forma de métodos. Los procedimientos de objeto pueden acceder y modificar los datos presentes en un objeto.
Hay muchos lenguajes OOP, y los más populares están basados en clases, donde los objetos serán una instancia de una clase. Una clase es un contenedor de datos y procedimientos, también conocidos como miembros de datos y funciones miembro. Consideremos un ejemplo de un objeto como un automóvil. Un automóvil tiene atributos como el color, la marca, la capacidad de combustible, etc. y tiene métodos para representar el comportamiento de un automóvil como arrancar, acelerar, interrumpir, etc. Una clase es un modelo de atributos y métodos y no ocupa espacio, hasta y a menos que se haga un objeto para esa clase.
Ejemplo :
class car
(
char name(20); // name and colour are attributes
char colour(20);
public void start()() //start is a method
);
void main()
(
car c1; //c1 is an object
)
Objetivos de programación orientados a objetos para implementar en la programación, entidades del mundo real como herencia, polimorfismo, encapsulación, etc., que veremos en detalle. El objetivo principal de OOP es enlazar colectivamente los datos y las funciones que operan en ellos, de modo que solo esa función pueda acceder a estos datos.
Principios de OOP
Los cuatro principios principales de la programación orientada a objetos son la encapsulación, la abstracción, la herencia y el polimorfismo.
1. Encapsulación:
La vinculación de datos y métodos en una sola unidad se denomina encapsulación. La encapsulación se logra cuando cada objeto dentro de la clase mantiene su estado privado. Los objetos externos no pueden acceder a los datos dentro de esta unidad y solo las funciones dentro de esta unidad pueden acceder a ellos. Por lo tanto, el objeto gestiona su estado con la ayuda de sus métodos, y para comunicarse con este objeto, necesitaremos la ayuda de los métodos públicos de esta clase.
2. abstracción
La abstracción es una extensión de la encapsulación. Significa proporcionar solo la información necesaria al mundo exterior mientras se ocultan los detalles internos de la implementación. Revela solo las operaciones apropiadas para otros objetos. La ventaja de esto es que podemos cambiar la implementación sin afectar la clase, ya que la interfaz del método sigue siendo la misma.
Tomemos el ejemplo de una calculadora, que toma la entrada de nosotros, y al presionar un botón, nos da la salida deseada, mientras nos ahorra los detalles internos de cómo ha llegado a esa respuesta.
3. Herencia
A menudo, los objetos son similares en funcionalidad, comparten parte de la lógica pero difieren en el resto. Entonces, ¿cómo reutilizamos la lógica común y separamos la lógica diferente? Esto se puede lograr por herencia. En herencia, creamos una nueva clase llamada clase secundaria que se deriva de la clase existente llamada clase padre, formando así una jerarquía de clases. La clase secundaria reutiliza los campos y métodos de datos que requiere de la clase primaria e implementa su funcionalidad única por sí sola.
Por ejemplo, un vehículo puede ser una clase para padres, de la cual podemos derivar clases para niños como Bike and Car. Comparten las propiedades comunes de poder funcionar con combustible y transportar pasajeros, pero difieren en la cantidad de pasajeros que pueden transportar y más de tales propiedades.
4. Polimorfismo
El polimorfismo es la capacidad de tomar más de una forma. Supongamos que tenemos una clase principal y algunas de sus clases secundarias. Ahora queremos usar atributos de las clases padre e hijo, entonces, ¿cómo se logrará? Esto se puede hacer usando polimorfismo. En el polimorfismo, las entidades abstractas se ejecutan de múltiples maneras. Proporciona una forma de consumir una clase exactamente como la clase principal, de modo que no haya confusión con la mezcla del tipo de clases, y cada clase secundaria continúa manteniendo sus métodos como estaban. Esto se puede hacer reutilizando una interfaz principal para que la clase secundaria pueda implementar estos métodos en su propia versión.
Ventajas de la programación orientada a objetos
- Se puede demostrar una idea del mundo real, ya que todo en OOP se trata como un objeto.
- A medida que utilizamos el concepto de encapsulación, los programas son más fáciles de probar y mantener.
- Se realiza un desarrollo más rápido del código, ya que desarrollamos clases paralelas en lugar de secuencialmente.
- OOP proporciona mayor seguridad debido a la abstracción de datos. El mundo exterior no puede acceder a los datos ocultos.
- La reutilización se puede lograr mediante el uso de clases que ya se han escrito.
Desventajas de la programación orientada a objetos
- Diseñar un programa con el concepto OOP puede ser complicado.
- Un programador necesita planificar de antemano para desarrollar un programa en OOP.
- El tamaño de los programas desarrollados con OOP es mayor que los desarrollados con un enfoque de procedimiento.
- Dado que los programas OOP son de mayor tamaño, el tiempo de ejecución de estos programas también es mayor.
¿Cómo puede ayudar el conocimiento de OOP en el crecimiento profesional?
Muchos de los principales lenguajes de tendencias en la actualidad, como Java y Ruby, utilizan conceptos de programación orientados a objetos. Los lenguajes OOP ayudan a escribir software para aplicaciones como aplicaciones móviles, web y de juegos. Hay altas ganancias en estos campos, como las mejores oportunidades de trabajo para que los programadores mientan en estos campos. Es fácil pasar a varias tecnologías e idiomas con los conceptos básicos de OOP, y esto amplía nuestras perspectivas de carrera. Un inconveniente en esto pasa a ser la experiencia. Por lo general, las empresas buscan experiencia práctica en los lenguajes y conceptos de OOP, por lo que se recomienda practicar a medida que avanzamos en el proceso de aprendizaje.
Conclusión
La programación orientada a objetos simplifica el proceso de programación para nosotros. Tiene muchos valores, como la reutilización, la eficiencia y el mantenimiento del código. Si bien inicialmente puede ser difícil entender los conceptos de OOP, le aseguro que la fruta valdrá la pena. ¡Espero que este artículo te haya ayudado a simplificar esos conceptos!
Artículo recomendado
Esta ha sido una guía de ¿Qué es la POO? Aquí discutimos los conceptos, la definición y los principios con las ventajas y desventajas de la POO. También puede consultar nuestros otros artículos sugeridos para obtener más información:
- ¿Hadoop es de código abierto?
- ¿Qué es la herencia de Java?
- ¿Qué es Multithreading en C #?
- ¿Qué son los servicios web ASP.Net?