Czy metoda inicjalizacyjna (konstruktor) jest prywatna czy publiczna w ruby?Inicjalizacja klasy Ruby (konstruktor) to metoda prywatna lub metoda publiczna?
11
A
Odpowiedz
16
Zobaczmy:
class Test
def initialize; end
end
p Test.new.private_methods.sort.include?(:initialize)
Drukuje true
, więc initialize
to prywatna metoda. Ma to sens, jest wywoływane tylko przez metodę klasy new
, jeśli obiekt jest tworzony. Jeśli chcemy, możemy zrobić coś takiego:
class Test
def initialize
@counter = 0
end
def reset!
initialize
end
end
Nadużywanie konstruktora takiego może jednak prowadzić do problemów, jeśli nie więcej niż zwykłą zmienną inicjalizacji.
4
Metoda initialize
w klasie automatycznie staje się prywatna.
Można to sprawdzić za pomocą:
puts ClassName.private_methods.sort
Powiązane problemy
- 1. Domyślnie argumentem pozwalając konstruktor zadzwonić Metoda prywatna
- 2. RSpec: Metoda prywatna Stub
- 3. Metoda prywatna inline
- 4. f # prywatna klasa publiczna
- 5. Jak sprawdzić, czy metoda prywatna jest zdefiniowana w ruby?
- 6. Metoda klasy "Znać" nazwę klasy w Ruby?
- 7. Czy prywatna metoda Ruby jest dostępna w podklasie?
- 8. Struktura publiczna/prywatna w Rust
- 9. Dlaczego ta metoda prywatna zostanie wykonana z innej klasy?
- 10. Co oznacza "metoda klasy #" w ruby?
- 11. Jeśli publiczna metoda API zwróci InputStream lub byte []
- 12. Metoda limitu ruby Ruby
- 13. Dlaczego metoda prywatna może być ostateczna?
- 14. AbstractMethodError wystąpił, gdy metoda prywatna pakiet przesłania
- 15. Ruby module_function, prywatna metoda powołując modułu, wywoływana w metodzie klasy stylu na module pokazuje error
- 16. Metoda prywatna Testowanie jednostkowe z Jasmine
- 17. Dziwna prywatna metoda UIAlertView crash _performPopup
- 18. Interfejs prywatny a metoda prywatna - cel c
- 19. Publiczna funkcja wirtualna pochodna prywatna w C++
- 20. Ruby metoda class_eval
- 21. C++. metoda klasy Wskaźniki
- 22. Ruby argumenty metoda System
- 23. Metoda ruby sort_by
- 24. Metoda korekty Ruby mixin override
- 25. Wywołanie klasy bazowej metoda
- 26. addFirst metoda ArrayDeque klasy
- 27. RoR - NoMethodError: prywatna metoda "otwarta" wywołana dla Gem :: Package: Class
- 28. Co to jest metoda inline?
- 29. Dostęp Deklaracja klasy bazowej Przeciążona metoda
- 30. Metoda sortowania niestandardowego w ruby
Można również zadzwonić 'initialize' obiektu przez' obj.send (: zainicjować) '. –
@undur_gongor: Tak, to działa dla każdej prywatnej metody. –