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: 2
Explicación del Código
- Definición de la Variable de Clase:
@@variable_de_clase = 0
define una variable de clase inicializada en 0. - Método de Clase para Incrementar la Variable:
self.incrementar_variable
es un método de clase que incrementa@@variable_de_clase
en 1. - Método de Clase para Mostrar la Variable:
self.mostrar_variable
es 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: 3
Solución Explicada
- Inicialización de la Variable de Clase:
@@conteo = 0
inicializa la variable de clase. - Incremento en el Constructor:
@@conteo += 1
en el métodoinitialize
incrementa@@conteo
cada vez que se crea una nueva instancia. - Método de Clase para Mostrar el Conteo:
self.mostrar_conteo
retorna 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 clase
Explicación del Código
- Definición del Método de Clase:
self.metodo_de_clase
define un método de clase que retorna una cadena de texto. - Llamada al Método de Clase:
MiClase.metodo_de_clase
llama 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: 8
Solució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
self
y 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