¿Qué es la programación orientada a objetos?
La programación orientada a objetos (OOP) es un modelo de lenguaje de programación que se centra en el uso de objetos en lugar de acciones para llevar a cabo tareas. Esto implica adoptar un enfoque más consciente de los datos y menos preocupado por la lógica, que suele ser el caso en otros paradigmas de programación. La vista de los objetos y las acciones es lo contrario de cómo está en otros lenguajes, y el énfasis está en los objetos mismos en lugar de en la ejecución de tareas que emplean los objetos. De manera similar, la estructura no considera decidir cómo emplear la lógica, sino la definición de los datos que se utilizarán en la programación.
El diseño de software de computadora con programación orientada a objetos comienza con la definición de los objetos que serán manipulados por el programa. El programador comenzará a identificar la relación entre cada objeto, un proceso que generalmente se conoce como modelado de datos. Esencialmente, el programador busca colocar los objetos en una clasificación, por lo tanto, ayuda a definir los datos que forman parte de la herencia aportada a la tarea por cada objeto. De hecho, el proceso de definición de estas clases y subclases de datos normalmente se denomina herencia.
OOP también ayuda a clasificar los objetos de una manera que permita que tenga lugar el polimorfismo. Es decir, diferentes objetos podrán responder a un mensaje común, pero cada uno de una manera diferente que es única para ese objeto. Al mismo tiempo, este tipo de programación permite la encapsulación de un objeto, ocultando o protegiendo efectivamente los datos asociados con el objeto de una vista fácil sin acceso de seguridad.
Una de las ventajas de la programación orientada a objetos es que el proceso hace un buen uso de la modularidad, lo que significa que los objetos y las tareas se agrupan de manera que cada módulo sea capaz de consideración independiente. Esto puede ser de gran ayuda cuando se realicen mejoras en un programa, ya que la modularidad permite abordar la tarea de realizar alternancias en la configuración de una parte de la programación sin afectar la estructura y la función de los otros módulos.