En Ruby, las variables y métodos de clase son fundamentales para la programación orientada a objetos. Este tema te enseñará cómo definir y utilizar variables y métodos de clase, así como las diferencias entre ellos y sus contrapartes de instancia.
- Variables de Clase
¿Qué son las Variables de Clase?
Las variables de clase son variables que pertenecen a la clase en sí, en lugar de a una instancia específica de la clase. Se definen utilizando @@ antes del nombre de la variable.
Definición y Uso
class MiClase
@@variable_de_clase = 0
def self.incrementar_variable
@@variable_de_clase += 1
end
def self.mostrar_variable
@@variable_de_clase
end
end
# Incrementar la variable de clase
MiClase.incrementar_variable
MiClase.incrementar_variable
# Mostrar el valor de la variable de clase
puts MiClase.mostrar_variable # Salida: 2Explicación del Código
- Definición de la Variable de Clase:
@@variable_de_clase = 0define una variable de clase inicializada en 0. - Método de Clase para Incrementar la Variable:
self.incrementar_variablees un método de clase que incrementa@@variable_de_claseen 1. - Método de Clase para Mostrar la Variable:
self.mostrar_variablees un método de clase que retorna el valor de@@variable_de_clase.
Ejercicio Práctico
Ejercicio: Define una clase Contador que tenga una variable de clase @@conteo que se incremente cada vez que se cree una nueva instancia de la clase. Además, define un método de clase mostrar_conteo que muestre el valor de @@conteo.
class Contador
@@conteo = 0
def initialize
@@conteo += 1
end
def self.mostrar_conteo
@@conteo
end
end
# Crear instancias de Contador
contador1 = Contador.new
contador2 = Contador.new
contador3 = Contador.new
# Mostrar el conteo
puts Contador.mostrar_conteo # Salida: 3Solución Explicada
- Inicialización de la Variable de Clase:
@@conteo = 0inicializa la variable de clase. - Incremento en el Constructor:
@@conteo += 1en el métodoinitializeincrementa@@conteocada vez que se crea una nueva instancia. - Método de Clase para Mostrar el Conteo:
self.mostrar_conteoretorna el valor de@@conteo.
- Métodos de Clase
¿Qué son los Métodos de Clase?
Los métodos de clase son métodos que se definen en la clase en sí, no en sus instancias. Se definen utilizando self antes del nombre del método.
Definición y Uso
class MiClase
def self.metodo_de_clase
"Este es un método de clase"
end
end
# Llamar al método de clase
puts MiClase.metodo_de_clase # Salida: Este es un método de claseExplicación del Código
- Definición del Método de Clase:
self.metodo_de_clasedefine un método de clase que retorna una cadena de texto. - Llamada al Método de Clase:
MiClase.metodo_de_clasellama al método de clase y muestra su salida.
Ejercicio Práctico
Ejercicio: Define una clase Calculadora con un método de clase sumar que tome dos números como argumentos y retorne su suma.
class Calculadora
def self.sumar(a, b)
a + b
end
end
# Llamar al método de clase
puts Calculadora.sumar(5, 3) # Salida: 8Solución Explicada
- Definición del Método de Clase:
self.sumar(a, b)define un método de clase que toma dos argumentos y retorna su suma. - Llamada al Método de Clase:
Calculadora.sumar(5, 3)llama al método de clase y muestra su salida.
Conclusión
En esta sección, hemos aprendido sobre las variables y métodos de clase en Ruby. Las variables de clase (@@) son compartidas entre todas las instancias de una clase, mientras que los métodos de clase (self.metodo) son llamados directamente en la clase. Estos conceptos son esenciales para la programación orientada a objetos y te permitirán escribir código más organizado y eficiente.
Resumen
- Variables de Clase: Se definen con
@@y son compartidas entre todas las instancias de la clase. - Métodos de Clase: Se definen con
selfy se llaman directamente en la clase.
Próximos Pasos
En el siguiente tema, exploraremos la Herencia en Ruby, que te permitirá crear clases que hereden comportamientos y propiedades de otras clases, facilitando la reutilización del código y la creación de jerarquías de clases.
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
