Является ли метод инициализации (конструктор) закрытым или открытым в рубине?Инициализация класса Ruby (конструктор) - это частный метод или общедоступный метод?
11
A
ответ
16
Давайте посмотрим:
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
Злоупотребляя конструктор, как это, однако, может привести к проблемам, если он делает больше, чем просто инициализации переменной.
4
initialize
метод в классе автоматически становится частным.
Вы можете проверить это с помощью:
puts ClassName.private_methods.sort
Смежные вопросы
- 1. Частный конструктор класса case Scala, но общедоступный метод применения
- 2. Это метод или конструктор?
- 3. Протестировать общедоступный метод, который вызывает частный метод с использованием NUnit
- 4. Этот общедоступный метод, который вызывает частный метод, содержит ненужную избыточность?
- 5. Частный * новый * метод или «Тень», но частный
- 6. частный метод, называемый noMethodError ruby
- 7. Конструктор соединений с базой данных: частный или общедоступный?
- 8. Нужный частный и общедоступный метод для той же рекурсивной функции
- 9. Метод экземпляра Ruby класса def initialize: метод экземпляра или класса?
- 10. Частный класс (не метод класса) в модуле Ruby?
- 11. Метод думает, что это конструктор
- 12. Частный-иш-метод?
- 13. Метод метода класса Ruby
- 14. инициализация класса и синхронизирован метод класса
- 15. метод цепочки, включая конструктор класса
- 16. Является метод метод класса или метод экземпляра
- 17. попытаться сделать общедоступный метод
- 18. Когда это нормально, чтобы проверить частный метод?
- 19. Как вызвать частный метод извне класса java
- 20. Мощный частный метод тестируемого класса в JMockit
- 21. Как переопределить частный метод из библиотеки класса
- 22. Ошибка: попытка вызвать частный метод
- 23. Как проверить частный метод частного статического класса
- 24. Почему событие базового класса вызывает частный метод?
- 25. Отразить частный метод реализации из абстрактного класса?
- 26. Как специфицировать частный метод
- 27. Как мне закодировать URL-адрес, если это частный метод?
- 28. Инициализация класса Ruby
- 29. Машинопись - Перегрузки частный метод
- 30. Метод класса вызовов в Ruby
Вы также можете позвонить 'initialize' объекта с помощью' obj.send (: инициализация) '. –
@undur_gongor: Да, это работает для любого частного метода. –