Programación Orientada a Objetos

Introducción

En esta sección vamos a hablar sobre el paradigma de programación orientada a objetos (POO en español, OOP en inglés).

Esta es una herramienta poderosa que nos ayudará a construir soluciones intuitivas para nuestros programas o videojuegos.

¿Qué es la programación orientada a objetos?

Se trata de una forma intuitiva de pensar los problemas que tenemos que resolver.

Al utilizar POO, pensamos qué objetos debemos construir para que estos reciban la información de entrada, la procesen y produzcan información de salida.

Los objetos son entidades abstractas que crearemos teniendo en cuenta el funcionamiento que deben cumplir, cuáles son sus características básicas, cuáles son sus responsabilidades, con quién deben relacionarse, entre otros factores.

Artículos sobre programación orientada a objetos

Antes de seguir adelante dejaré una lista de todos los artículos sobre este tema que voy creando.

Artículo teórico sobre clases en programación.

En este artículo explico qué es una clase en programación y doy algunos ejemplos de clases en lenguaje C# en Unity.

Artículo práctico sobre clases en programación.

En este artículo propongo un ejercicio práctico sobre clases de programación. Hacemos diagramas de clase e implementamos en Unity en lenguaje C#.

Características de la programación orientada a objetos

Intentaré explicar con mis palabras qué significan algunos de los grandes conceptos que aparecen al estudiar POO.

Abstracción

La abstracción es un proceso de nuestro intelecto que nos permite tomar un objeto de estudio, relevar las características o rasgos fundamentales y crear una idea mental de ese objeto.

A partir de esta idea mental crearemos nuestros objetos de programación.

Encapsulamiento

Esta característica implica que todos los datos y funciones propias del objeto que queremos modelar van a estar reunidas o encapsuladas en una misma entidad.

En la práctica vamos a encapsular los datos y funciones que tendrá un objeto dentro de una clase de programación.

Herencia

La herencia permite establecer una estructura de clases organizada en jerarquías.

En las clases superiores (conocidas como super clases) se definen las propiedades y el comportamiento más general y se crean clases hijas (subclases) que heredan las propiedades y el comportamiento de la super clase.

A través de la herencia se pueden construir clases cada vez más específicas pero que tienen características en común entre ellas ya que descienden de la misma super clase.

Polimorfismo

El polimorfismo nos permite tomar un conjunto de objetos de distinto tipo y ejecutar uno o más métodos que todos ellos entienden, pero la función que ejecute ese método será propia de cada tipo de objeto.

Esto nos permite crear distintos tipos de objetos que respondan de manera distinta a un mismo estímulo.

Este en mi opinión este es uno de los conceptos más poderosos de la POO.

Principio de ocultación de la información

Esta propiedad tiene que ver con los datos y funciones que se consideran internas de un objeto. Dichas propiedades deben permanecer ocultas al exterior para prevenir que otros objetos las manipulen directamente.

Los objetos ofrecerán al exterior una serie de funciones públicas para hacer uso de su funcionalidad y acceder o modificar su datos internos.