Características de la POO

El paradigma de la programación orientada a objetos consiste en la representación de la realidad. En éste se manejan algunos conceptos básicos como son clases, objetos, atributos, métodos y se caracteriza por emplear la abstracción de datos, herencia, encapsulamiento y polimorfismo. Estas características deben ser estudiadas y comprendidas para su aplicación en la programación orientada a objetos.

La abstracción es un procedimiento que permite la elección de una determinada entidad de la realidad, sus características y funciones que desempeñan, la cual es representada mediante clases que contienen atributos y métodos de dicha clase.

En la programación orientada a objetos es fundamental abstraer los métodos y atributos comunes a un conjunto de objetos, agrupados en una clase. Un equipo de cómputo tiene características como marca, color, número de serie, cantidad de memoria instalada, capacidad del disco duro, tecnología usada en el almacenamiento secundario, etc. Además, también pueden integrarse otros objetos como tarjeta madre, procesador, disco duro, módulo de memoria y un monitor, entre otros.

En esta abstracción estamos pensando en la funcionalidad del equipo de cómputo y no como están construidos internamente los componentes mencionados, sin embargo, para los diseñadores y técnicos de equipos de cómputo son fundamentales. Probablemente para un inventario no necesites modelar toda la información.

La abstracción nos indica que sólo se incluirá el vocabulario o el lenguaje específico, las características y el comportamiento que estén relacionadas con el dominio del problema que se quiere resolver. Solo debe modelarse lo indispensable.

En programación el encapsulamiento orienta a objetos, se acostumbra a proteger la información o el estado de los atributos para que no se pueda ver o modificar la información del objeto sin el mecanismo adecuado. Para ello, se utilizan métodos para recuperar la información (getters) y asegurar que la información proporcionada sea consistente con el objeto; y a su vez, poder asignar (setters) un nuevo valor y verificar que no afecte la integridad del objeto.

Por ejemplo, nuestra clase Computadora quedaría de la siguiente forma:

La herencia nos permite reutilizar el código programado en cada clase “heredando” o extendiendo las características de un objeto a sus “descendientes” o derivados. Por ejemplo, cuando hablamos de una laptop o computadora portátil, sabemos que sigue siendo una computadora y podemos tratarla como tal, pero probablemente podríamos agregar una característica como la duración de la batería y a quién se le asignó, ya que no estaría en un aula.

En este caso, una laptop sigue siendo una computadora, tiene todos sus atributos y métodos, pero agrega dos atributos y un método a la definición original, de lo que se conoce como superclase (la que está arriba de la jerarquía en la relación general-específico).

El polimorfismo, en una colección de objetos con herencia, si las clases especializadas de una superclase tienen un método con la misma definición o firma, reaccionarán de la manera adecuada cuando reciban el mismo mensaje.

Por ejemplo, si tuviéramos una superclase FiguraGeometrica que se especializa en Círculo y Triángulo, y si el programa supone que todos son figuras geométricas, al enviar el mensaje dibujar() a los elementos de una colección los triángulos usarían una regla para dibujarse y los círculos utilizarían su compás para hacer lo mismo. Ambas son figuras geométricas, pero se dibujan de manera distinta.


Con el siguiente ejercicio verificarás si aprendiste el procedimiento para identificar qué principio de la programación orientada a objetos se está utilizando.
Escribir

Escribe la respuesta correcta en los espacios para completar el procedimiento.Observa el ejemplo.

Encapsulamiento. Los atributos pertenecen ocultos al exterior como privados y solo son accesibles a través de los getters y setters.
Polimorfismo. Un Niño es una Persona, pero se interpreta de manera distinta su imc. Dicha interpretación depende de la instancia.
Herencia. Una relación de herencia permite especializar la definición de Persona en Niño, Adulto, Adolescente, etc.
Para el problema de modelar a una persona para determinar su imc y una descripción de su estado actual de salud, solo es necesaria esta información.
Debes escribir tu respuesta para recibir retroalimentación.