Las constantes de clase en forma similar a las variables de clase pertenecen a la clase y no a una instancia en particular. Una constante no puede variar su valor durante la ejecución del programa.
Por convención en Ruby las constantes se escriben toda en mayúsculas.
Plantear una classe llamada Circulo que permita calcular su área. Al método initialize llega el radio del círculo.
class Circulo PI = 3.141592 def initialize(radio) @radio = radio end def retornar_area PI * @radio * @radio end end circulo1 = Circulo.new 100 puts "El área de un círculo de 100 metros es #{circulo1.retornar_area}"
Definimos una constante de clase indicando el nombre en mayúsculas (por convención) y le asignamos el valor que almacenará:
PI = 3.141592
En cualquier método tenemos acceso a la constante indicando su nombre:
def retornar_area PI * @radio * @radio end
A una constante no le podemos asignar otro valor (se produce un error en tiempo de ejecución):
PI = 2
Desde fuera de la clase podemos acceder al valor almacenada en la constante por medio de la sintaxis:
puts Circulo::PI
ejercicio157.rb class Circulo PI = 3.141592 def self.retornar_area radio PI * radio * radio end end puts "El área de un círculo de 100 metros es #{Circulo.retornar_area 100}"