Curso: Programación Orientada a Objetos
En la Programación Orientada a Objetos existen 4 conceptos muy importantes que nos ayudan a tener una mejor eficiencia y eficacia a la hora de realizar un proyecto. Es de suma importancia tener siempre en cuenta estos 4 conceptos que son la Encapsulación, la Abstracción, la Herencia y el Polimorfismo, ya que para todos los lenguajes de programación no cambia.
Encapsulación
La Encapsulación es la característica que permite aislar datos de un objeto a este mismo objeto, es decir, nos ayuda a encerrar la información de un objeto dentro de este mismo. También solo se puede modificar o acceder a esta información si es implementado en dicha clase. Por lo regular, esta característica se basa en tres niveles, que son el nivel cerrado (privated), que prácticamente toda la información solo es accesible desde la misma clase, el nivel protegido (protected), que su información solo es accesible desde la clase y las clases que heredan y el nivel abierto (public) que su información puede ser accedido desde cualquier clase. Un ejemplo de Encapsulación serían los puntos que ganamos en una partida de videojuegos, algunos juegos solo te dicen los puntos de esa partida, pero en realidad tienes muchos más puntos que no son visibles, porque encapsularon esa información. Se que es algo confuso, pero no te preocupes que en lecciones futuras pondremos a practica este concepto.
Abstracción
La Abstracción es la característica que nos permite representar características en cualquier parte del código dándonos una serie de atributos y comportamientos que podemos usar si tener complejidad. En palabras sencillas, nos permite usar clases e interfaces extraídas que nos permite la reutilización de código. Un ejemplo claro seria las características del ser humano, existen características que tenemos todos los seres humanos como tener un nombre, hablar, entre otros y simplemente abstraemos esas características. Una ventaja de utilizar la Abstracción es que nos permite agrupar varias clases relacionadas como hermanos. Este concepto está relacionado con la Encapsulación porque también controla el acceso a la información y nos ayuda a reducir la complejidad de nuestro programa.
Herencia
La Herencia es la característica que nos permite heredar los atributos y comportamientos de una clase a otra, es decir, que los atributos y comportamientos de una clase en especifico se traspasan a otra clase tal y como están sin ninguna modificación. Un ejemplo de Herencia basándonos de la frase “A es un B” sería que tengamos la clase llamada animal y la clase heredada llamada ratón, la clase heredada tiene relación con la principal ya que un ratón es un animal, por eso la frase “A es un B” donde la clase A es la clase heredada y la clase B es la principal o la que hereda. Existen 2 tipos de Herencia, la simple y la múltiple. La simple solo consta de una sola clase base y la múltiple consta de más de una clase base. Claramente pondremos a practica este concepto en las siguientes lecciones.
Polimorfismo
El Polimorfismo es la característica que nos permite programar distintos objetos de distintas clases sin necesidad de localizar cada objeto por objeto programándolo, con esta característica podemos programar un conjunto de objeto de forma genérica. Un ejemplo sería cuando estemos programando un videojuego, que utilizamos distintos personajes, por ejemplo, vaqueros, raperos, alucines y queremos hacer que todos saquen una pistola, con el Polimorfismo ya no es necesario ir a cada clase del objeto ni mucho menos, solo basta con localizar la clase personajes y programarle un comportamiento. En algunos lenguajes, el término polimorfismo es también conocido como ‘Sobrecarga de parámetros’ ya que las características de los objetos permiten aceptar distintos parámetros para un mismo método (diferentes implementaciones) generalmente con comportamientos distintos e independientes para cada una de ellas.
Bien ahora que conocemos estos 4 principios de la Programación Orientada a Objetos ya es momento de ponerlos a practica en un lenguaje de programación como es Java. ¡Vamos a ello!