AD

¿Ya dominas lo básico? Un curso estructurado de Ruby es la vía rápida para dar el salto.

Ver cursos de Ruby en Udemy

Enlace de afiliado. No te cuesta nada extra.

💎Lecciones de Ruby
Lección 9 / 68

Clases (programación orientada a objetos)

En esta lección juntarás datos y comportamiento en un mismo molde.

Una clase se define con class Nombre ... end, en mayúscula inicial. El método initialize es el constructor: se ejecuta solo al crear el objeto con Animal.new(...). Las variables que empiezan por @ son de instancia: cada objeto tiene las suyas y viven mientras viva el objeto.

El código de ejemplo crea un animal con nombre y sonido, y le pide que hable.

Aquí aparece un detalle que da errores desconcertantes: desde fuera no puedes leer @name directamente. En Ruby los datos de un objeto son privados siempre. Para exponerlos se declara attr_reader :name (solo lectura) o attr_accessor :name (lectura y escritura), que generan los métodos por ti. Es lo contrario de lenguajes donde los campos son públicos salvo que digas otra cosa.

En Ruby todo es un objeto, incluidos los números: 3.times es una llamada a un método del número 3. Por eso los cambios que verás en las lecciones siguientes —añadir métodos, heredar, mezclar módulos— se aplican de forma uniforme a cualquier cosa del lenguaje.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Ruby directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)