poo/clase-objeto-analogias
0 / 6 nodos
Aula invertida · mapa conceptual · sin código

Clase, objeto y sus amigos

Antes de escribir una sola línea de Python, esta guía te muestra qué es una clase, un objeto, un atributo, un método y un constructor con cosas que ya conocés: personajes de videojuego y planos de casa. Es un mapa, no una lista: hacé clic en cualquier nodo, en el orden que prefieras. El recomendado es 1→6, pero no está bloqueado.

Ningún nodo tiene código ni editor — son preguntas, comparaciones y, al final, un sandbox para crear tus propios personajes a mano. Un nodo queda marcado en la ruta cuando ya lo completaste.

Tu avance
0 / 0
preguntas y actividades enviadas
Ing. Roy Carrasco
Fac. de Ingeniería de Sistemas · UAB
vistas

La ruta

seis nodos en orden sugerido · tocá cualquiera para abrirlo
01 Clase

Empecemos sin una sola línea de código. Pensá en un videojuego: antes de que exista Mario, Luigi o cualquier otro personaje jugable, alguien tuvo que decidir qué información y qué acciones va a tener cualquier personaje del juego —cuánta vida arranca teniendo, qué tan fuerte ataca, si puede saltar. Esa decisión, tomada una sola vez, es la clase.

Con una casa pasa lo mismo. Antes de levantar un solo ladrillo, un arquitecto dibuja un plano: cuántas habitaciones va a tener, dónde va la puerta, de qué tamaño es el living. El plano no es una casa —nadie puede vivir en un plano— pero define exactamente cómo va a ser cualquier casa construida siguiéndolo.

🎮 Videojuego

La clase Personaje: define que todo personaje va a tener nombre, vida y ataque, sin ser todavía ningún personaje en particular.

🏠 Casa

El plano de la casa modelo: define cuántas habitaciones y baños va a tener cualquier casa construida con él, sin ser todavía ninguna casa en particular.

una clase no ocupa lugar en el mundo

Ni la clase Personaje ni el plano de la casa "existen" de la forma en que existe Mario corriendo por la pantalla, o una casa con gente adentro. Son la idea, el molde —el paso siguiente es crear algo real a partir de ellos.

selección múltiple

¿Cuál de estas opciones describe mejor qué es una clase?

Ya tenés el molde. Ahora falta lo interesante: usarlo para crear algo real.

02 Objeto

Cuando el juego arranca y aparece Mario en la pantalla, con su propio nombre, su propia vida y su propio puntaje, eso ya no es la clase: es un objeto. Un objeto es una instancia concreta, real, creada a partir de una clase. El mismo juego puede tener a Mario y a Luigi al mismo tiempo —dos objetos distintos, ambos creados a partir de la misma clase Personaje.

Con la casa pasa igual: el plano es uno solo, pero a partir de él se pueden construir tantas casas como se quiera —la de la Av. Arce 123, la de la Calle Sucre 55— y cada una es una casa real, con su propia dirección y su propia gente viviendo adentro. Todas siguen el mismo plano, pero son construcciones distintas.

🎮 Videojuego

Mario y Luigi: dos objetos distintos, ambos creados a partir de la clase Personaje.

🏠 Casa

La casa de Arce 123 y la de Sucre 55: dos objetos distintos, construidas a partir del mismo plano.

un objeto sí ocupa lugar en el mundo

A diferencia de la clase, un objeto es concreto: podés señalarlo. "Ese personaje de ahí" o "esa casa de la esquina" son objetos. "Personaje" o "el plano" a secas, no.

completar

Completá las dos frases eligiendo la palabra correcta.

1. Personaje, que define qué atributos y métodos va a tener cualquier personaje, es la .

2. Mario, que ya tiene un nombre, una vida y un ataque concretos, es un creado a partir de esa clase.

Cada objeto ya tiene sus propios datos. ¿Cómo se llaman esos datos? Es el próximo nodo.

03 Atributo

Un atributo es un dato que le pertenece a un objeto en particular, no a la clase entera. La clase Personaje dice que todo personaje TIENE vida y ataque —pero no dice cuánta vida tiene Mario en este momento del juego. Eso lo decide cada objeto por su cuenta, y cada uno guarda su propio valor, sin pisar el de los demás.

En la casa pasa lo mismo: el plano dice que la casa TIENE una cantidad de habitaciones y un color de paredes, pero no dice si son 3 o 5 habitaciones, ni si las paredes son celestes o blancas. Eso lo decide cada casa concreta —cada objeto— en el momento en que se construye.

🎮 Videojuego

Vida = 80, Ataque = 15, Nombre = "Mario": tres atributos del objeto Mario.

🏠 Casa

Habitaciones = 3, Color = "celeste", Dirección = "Arce 123": tres atributos de esa casa.

probalo vos mismo

Cambiá los números de abajo. Son dos objetos Personaje distintos, cada uno con su propio atributo vida —modificar uno nunca toca al otro:

Si la vida de Mario vale y la vida de Luigi vale , entonces Mario le lleva 20 puntos de vida a Luigi, y entre los dos suman 140 puntos de vida.

selección múltiple

¿Cuál de estas opciones es un ejemplo de ATRIBUTO?

La vida es un dato. Atacar, en cambio, es otra cosa: una acción. Sigamos con eso.

04 Método

Un método es una acción que un objeto puede ejecutar. Mario puede saltar, atacar o curarse: esas acciones ya vienen definidas en la clase Personaje, así que absolutamente todos los personajes del juego pueden ejecutarlas, aunque cada uno lo haga con sus propios números (Mario ataca por 15 de daño, el enemigo por 30).

La casa también "hace" cosas: se puede abrir la puerta principal o encender la calefacción. Esas acciones están disponibles en cualquier casa construida con ese plano, aunque el resultado dependa de los atributos de esa casa en particular.

🎮 Videojuego

atacar(), curarse(), saltar(): métodos que cualquier objeto Personaje puede ejecutar.

🏠 Casa

abrir la puerta, encender la calefacción: acciones que cualquier casa del plano puede hacer.

atributo vs. método, la diferencia de una línea

Un atributo es un dato (la vida, el color de las paredes). Un método es una acción (atacar, encender la luz). Si lo podés escribir como un número o un texto, es un atributo; si lo describís con un verbo, es un método.

emparejamiento

Uní cada método con lo que hace.

Ya sabés qué acciones existen. Falta una pregunta: ¿cuándo nace un objeto y quién le pone sus primeros valores?

05 Constructor

Cuando se crea un personaje nuevo, alguien tiene que decidir con qué valores arranca: ¿vida 100 o vida 50? ¿ataque 10 o ataque 30? Ese momento exacto —el instante en que el objeto nace y recibe sus primeros valores— es el constructor. No es un método que el jugador llama después: es lo primero que pasa, automáticamente, apenas el objeto empieza a existir.

Con la casa es literal: el constructor es el proceso de construcción según el plano. Ahí, y solo ahí, se decide con qué dirección, con qué color y con cuántas habitaciones nace esa casa en particular. Una vez construida, esos valores iniciales ya quedaron fijados —después se pueden modificar (pintarla de otro color), pero ya no se "construye" de nuevo.

🎮 Videojuego

Al crear a Mario, el constructor recibe nombre="Mario", vida=100, ataque=15 y se los asigna.

🏠 Casa

Al construir la casa, el constructor recibe dirección, color y habitaciones, y los deja fijados.

selección múltiple

¿Cuál de estas frases describe mejor al constructor?

Ya tenés los cinco conceptos. Vamos a juntarlos todos en un mismo repaso.

06 Repaso rápido

Repasemos los cinco conceptos, en las dos analogías a la vez:

Concepto🎮 Videojuego🏠 Casa
ClasePersonaje (el molde)El plano de la casa
ObjetoMario, LuigiLa casa de Arce 123
Atributovida = 80, ataque = 15habitaciones = 3, color = "celeste"
Métodoatacar(), curarse()abrir la puerta, encender la luz
Constructorcrear a Mario con sus valores inicialesconstruir la casa según el plano
la idea central

Una clase es un molde: define qué datos (atributos) y qué acciones (métodos) va a tener cualquier cosa creada a partir de ella. Un objeto es una de esas cosas, ya real y concreta, con su propio constructor que le dio sus primeros valores. Esa combinación —molde único, muchos objetos con datos propios— es la base de toda la Programación Orientada a Objetos.

Cuando te sientas listo, cerrá este mapa y bajá al Reto Final para crear tus propios personajes.

cierre · sandbox Reto final: Creador de personajes

Acá abajo tenés la clase Personaje ya lista, con 3 atributos (nombre, vida, ataque) y 2 métodos (atacar, curarse). Usá el constructor de la derecha para crear varios objetos y comprobá con tus propias manos lo que viste en el mapa: cada personaje guarda sus propios valores, pero todos comparten las mismas acciones. Nada de esto se corrige ni suma a tu progreso —es para explorar antes del chequeo final.

➕ Constructor

Estos tres campos son los valores que el constructor le asigna al objeto nuevo, apenas nace.

0 objetos creados

Todavía no creaste ningún personaje. Completá el formulario y presioná "crear objeto".

Chequeo final: clasificá cada ejemplo según el concepto que le corresponde.

clasificación

Elegí, para cada ejemplo, si es una Clase, un Objeto, un Atributo, un Método o un Constructor.

"Personaje": el molde que define qué va a tener cualquier personaje.
Mario, creado a partir de la clase Personaje.
Vida = 80.
saltar().
El momento en que el juego arranca con vida=100 y monedas=0 para un personaje nuevo.
La cantidad de habitaciones de una casa.
El plano arquitectónico, antes de construir ninguna casa todavía.
Encender la calefacción.
La casa construida en la Av. Arce 123, con paredes celestes.
El proceso de construir una casa siguiendo las medidas y materiales del plano.

Cheat sheet

ConceptoEn una frase
ClaseEl molde: define qué atributos y métodos va a tener cualquier objeto.
ObjetoUna instancia concreta, creada a partir de una clase.
AtributoUn dato propio de un objeto en particular (un número, un texto).
MétodoUna acción que un objeto puede ejecutar (un verbo).
ConstructorEl momento en que un objeto nace y recibe sus primeros valores.

¿Sabías que…?

Ya existían "objetos" antes de la programación

Juegos de mesa como Dungeons & Dragons usan hace décadas una "hoja de personaje": una plantilla con casilleros para nombre, vida y fuerza. Cada jugador completa la suya con valores distintos —clase y objeto, sin ninguna computadora de por medio.

Los planos se reusan de verdad

En barrios o condominios construidos en serie es normal levantar decenas de casas idénticas en su plano, pero distintas en color o mobiliario —la misma relación clase/objeto, a escala de ciudad.

Lo que sigue

Con los cinco conceptos claros, la próxima guía —"Clases y objetos desde cero"— los muestra escritos en código Python real, con las palabras class, __init__ y self.