Давайте посмотрим:
class Test
def initialize; end
end
p Test.new.private_methods.sort.include?(:initialize)
Это печатает true
, поэтому initialize
является закрытым методом.Это имеет смысл, он вызывается только методом класса new
, если объект создан.Если мы хотим, мы можем сделать что-то вроде этого:
class Test
def initialize
@counter = 0
end
def reset!
initialize
end
end
Однако неправильное использование конструктора может привести к проблемам, если он не просто инициализирует переменную.