Programación orientada a objetos

← Fundamentos de Python ⌂ Home

Objetivos

Desarrollo

Conceptos de la programación orientada a objetos

Es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo y encapsulamiento.

Objeto

La construcción principal de los lenguajes orientados a objetos es justamente el objeto: una cápsula que contiene tanto los datos como las operaciones que los manipulan y que provee una interfaz hacia el mundo exterior mediante la cual el objeto es accesible. Dicho de otra forma, un objeto es una entidad que tiene datos particulares, los atributos, y formas de operar sobre ellos, los métodos. Son instancias de una clase. Son capaces de interactuar con otros objetos por medio de sus métodos.

Atributo

Los atributos son las características individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades.

Método

Un método determina cómo tiene que actuar el objeto cuando recibe un mensaje vinculado con ese método. A su vez, un método puede también enviar mensajes a otros objetos solicitando una acción o información.

Clase

Una clase es una plantilla para la creación de objetos de datos según un modelo predefinido. Define un conjunto de atributos (estado) y métodos apropiados para operar con ellos (comportamiento). Cada objeto creado a partir de la clase se denomina instancia de la clase.

Una clase es un tipo de objetos definido por el usuario. Una clase equivale a la generalización de un tipo específico de objetos. Por ejemplo piense en un molde para hacer flanes; el molde es la clase y los flanes los objetos.

Encapsulamiento

El encapsulamiento y ocultamiento de la información son dos puntos básicos en la abstracción de datos. Todo lenguaje permite definir objetos ocultando alguna parte de ellos (datos y/o métodos). Por tanto, cada clase tiene al menos dos vistas: privado y público.

En la vista privada, todo está oculto: es el nivel de acceso dentro de la misma clase (vía sus métodos). En la vista pública, la información es visible para cualquier objeto; la información pública es la interfaz de la clase.

Herencia

La herencia es un mecanismo que permite definir nuevos objetos basados en la reutilización de código: al modificar la implementación de un método y/o atributo, una clase hace que la modificación esté disponible para todas sus subclases, sin necesidad de intervención del programador.

Polimorfismo

El polimorfismo, como su mismo nombre sugiere múltiples formas, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo interfaz. O sea, que, en la práctica, un mismo identificador puede tener distintas formas dependiendo, en general, del contexto en el que se halle insertado.

Ejercicios

Fuentes