Ответ 1
Посмотрим:
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
Неправильное использование конструктора, подобного этому, может привести к проблемам, если оно делает больше, чем простая инициализация переменных.