Programación Orientada a Objetos · Programación

Clases y objetos

Definir clase y objeto como patrón e instancia, y modelar un dominio agrupando datos y comportamiento en una misma unidad.

Clases y objetos

Ilustracion de programacion orientada a objetos: jerarquia de clases con herencia y encapsulamiento.
Principios de la programacion orientada a objetos: clases, herencia y polimorfismo.

Mapa conceptual

Datos y comportamiento, juntos Un programa procedural guarda datos por un lado y funciones por otro. La POO los une: un objeto es a la vez sus datos y las operaciones que los manejan. Ese maridaje es la idea fundacional.

Clase: el plano

Una clase es una plantilla que describe qué datos tendrá algo y qué podrá hacer. No es un objeto concreto: es la definición. Como el plano de un arquitecto, especifica la estructura sin ser ninguna casa en particular.

Objeto: la instancia

Un objeto es una construcción concreta a partir de la clase: una instancia. Si la clase es «Perro», «Lassie» es un objeto: tiene su propio nombre y edad, pero sabe hacer lo que todo perro sabe hacer. De una clase pueden nacer infinitos objetos, cada uno con su estado.

Atributos y métodos

Encapsulamiento natural

Al agrupar datos y operaciones, el objeto se vuelve un «sustantivo» del programa: un carro, una cuenta bancaria, un vector. El código se parece al dominio que modela, y eso lo hace más legible y fácil de mantener.

La clase define; el objeto vive.
ConceptoAnalogíaEn código (idea)
ClaseEl planoclass Perro: ...
Objeto / instanciaUna casa construidami_perro = Perro(Lassie)
AtributoLa información de la casaself.nombre
MétodoLo que la casa sabe hacermi_perro.ladrar()

¿Cuál es la relación correcta entre clase y objeto?

Instanciar

Crear un objeto se llama instanciar. Se invoca la clase como si fuera una función: el resultado es un objeto nuevo con sus atributos ya separados. Dos instancias de la misma clase no comparten estado: cambiar el nombre de un perro no afecta a otro.

Un modelo del mundo

La POO brilla cuando el problema tiene entidades claras: usuarios, productos, transacciones. Cada una se vuelve una clase con sus datos y su comportamiento, y el programa se organiza como un pequeño mundo de objetos que se mensajean entre sí.

En POO, dos objetos de la misma clase comparten automáticamente sus atributos.

Mensajes entre objetos

Trabajar con objetos es enviarles mensajes: llamar a sus métodos. Un objeto no necesita exponer cómo internamente cumple la orden; basta con que respete la promesa del método. Esa opacidad controlada es la que permite construir sistemas grandes.

Errores frecuentes

Clasifica cada elemento de un programa:

Clase
Objeto
Atributo
Método

Real Python
Guía introductoria de clases y objetos en Python.

Elige un objeto cotidiano (un elevador, una tarjeta de transporte) y define qué clase sería, qué atributos guardaría y qué métodos expone. Justifica por qué pertenece a un objeto y no a una función suelta.

Python: Classes
Tutorial oficial de clases en Python 3.