En Ruby, la programación orientada a objetos (POO) es un paradigma fundamental. Este enfoque permite organizar el código en unidades llamadas "clases" y "objetos", facilitando la reutilización y la modularidad. En esta sección, aprenderemos los conceptos básicos de clases y objetos en Ruby.
¿Qué es una Clase?
Una clase es una plantilla para crear objetos. Define un conjunto de atributos y métodos que los objetos creados a partir de la clase tendrán.
Definición de una Clase
Para definir una clase en Ruby, utilizamos la palabra clave class seguida del nombre de la clase. Por convención, los nombres de las clases en Ruby comienzan con una letra mayúscula y utilizan el estilo CamelCase.
Atributos de Clase
Los atributos de una clase son variables que pertenecen a la clase y se utilizan para almacenar información sobre los objetos.
Variables de Instancia
Las variables de instancia son atributos que pertenecen a una instancia específica de una clase. Se definen utilizando el prefijo @.
En el ejemplo anterior, @nombre y @edad son variables de instancia.
Métodos de Clase
Los métodos de una clase son funciones que definen el comportamiento de los objetos creados a partir de la clase.
Definición de Métodos
Para definir un método en una clase, utilizamos la palabra clave def seguida del nombre del método.
class Persona
def initialize(nombre, edad)
@nombre = nombre
@edad = edad
end
def saludar
"Hola, mi nombre es #{@nombre} y tengo #{@edad} años."
end
endEn el ejemplo anterior, saludar es un método de la clase Persona.
Creación de Objetos
Para crear un objeto a partir de una clase, utilizamos el método new.
Salida:
Ejemplo Completo
A continuación, se muestra un ejemplo completo que incluye la definición de una clase, la creación de objetos y la invocación de métodos.
class Persona
def initialize(nombre, edad)
@nombre = nombre
@edad = edad
end
def saludar
"Hola, mi nombre es #{@nombre} y tengo #{@edad} años."
end
def cumplir_anios
@edad += 1
end
end
# Crear un objeto de la clase Persona
persona1 = Persona.new("Juan", 30)
puts persona1.saludar
# Llamar al método cumplir_anios
persona1.cumplir_anios
puts persona1.saludarSalida:
Ejercicio Práctico
Ejercicio 1
Define una clase Coche con los siguientes atributos y métodos:
- Atributos:
marca,modelo,año - Métodos:
detalles(devuelve una cadena con los detalles del coche),edad(calcula la edad del coche)
Solución
class Coche
def initialize(marca, modelo, año)
@marca = marca
@modelo = modelo
@año = año
end
def detalles
"Marca: #{@marca}, Modelo: #{@modelo}, Año: #{@año}"
end
def edad
Time.now.year - @año
end
end
# Crear un objeto de la clase Coche
coche1 = Coche.new("Toyota", "Corolla", 2015)
puts coche1.detalles
puts "Edad del coche: #{coche1.edad} años"Salida:
Conclusión
En esta sección, hemos aprendido los conceptos básicos de clases y objetos en Ruby. Hemos visto cómo definir una clase, crear objetos y definir métodos para esos objetos. Estos conceptos son fundamentales para la programación orientada a objetos y serán la base para temas más avanzados en Ruby.
En la próxima sección, exploraremos las variables y métodos de instancia, profundizando en cómo gestionar el estado y el comportamiento de los objetos en Ruby.
Curso de Programación en Ruby
Módulo 1: Introducción a Ruby
Módulo 2: Conceptos Básicos de Ruby
Módulo 3: Trabajando con Colecciones
Módulo 4: Programación Orientada a Objetos en Ruby
- Clases y Objetos
- Variables y Métodos de Instancia
- Variables y Métodos de Clase
- Herencia
- Módulos y Mixins
Módulo 5: Conceptos Avanzados de Ruby
- Bloques, Procs y Lambdas
- Metaprogramación
- Manejo de Excepciones
- Entrada/Salida de Archivos
- Expresiones Regulares
Módulo 6: Introducción a Ruby on Rails
- ¿Qué es Ruby on Rails?
- Configuración del Entorno Rails
- Creando una Aplicación Simple en Rails
- Arquitectura MVC
- Enrutamiento
Módulo 7: Pruebas en Ruby
- Introducción a las Pruebas
- Pruebas Unitarias con Minitest
- Desarrollo Guiado por Comportamiento con RSpec
- Mocking y Stubbing
Módulo 8: Mejores Prácticas en Ruby
- Estilo de Código y Convenciones
- Refactorización
- Optimización del Rendimiento
- Mejores Prácticas de Seguridad
