Il metodo di inizializzazione (costruttore) è privato o pubblico in ruby?La classe di Ruby initialize (costruttore) è un metodo privato o pubblico?
11
A
risposta
16
Vediamo:
class Test
def initialize; end
end
p Test.new.private_methods.sort.include?(:initialize)
Questo stampa true
, così initialize
è un metodo privato. Questo ha senso, è chiamato solo dal metodo di classe new
se l'oggetto è stato creato. Se vogliamo, possiamo fare qualcosa di simile:
class Test
def initialize
@counter = 0
end
def reset!
initialize
end
end
uso scorretto il costruttore come questo potrebbe però portare a problemi se lo fa più di semplice inizializzazione delle variabili.
4
Il metodo initialize
in una classe diventa automaticamente Privato.
È possibile controllare utilizzando:
puts ClassName.private_methods.sort
Problemi correlati
- 1. In che modo Ruby rende #initialize privato?
- 2. Una classe può avere un costruttore sia pubblico che privato?
- 3. Il costruttore di copia deve essere privato o pubblico
- 4. MSMQ privato o pubblico
- 5. Eredita il metodo initialize() in ruby?
- 6. Il costruttore privato Scala class di classe non è privato
- 7. Il costruttore di una classe interna privata deve essere dichiarato pubblico o privato?
- 8. Dichiarazione attributo di classe: privato vs pubblico
- 9. Classe sigillata - Perché rimuovere il Costruttore pubblico?
- 10. Server di repository SVN pubblico o privato?
- 11. È un costruttore pubblico in una classe astratta un codesmell?
- 12. Perché il costruttore di java.io.FileDescriptor è pubblico?
- 13. Una variabile che non è pubblico o privato-Java
- 14. pubblico o privato, è veramente importante con le variabili Android
- 15. classe astratta vs costruttore privato
- 16. Testing metodo privato in Ruby (RSpec)
- 17. Come verificare se il metodo privato è definito in ruby
- 18. rapida: Come posso sovrascrivo un metodo pubblico nella superclasse di essere un metodo privato nella sottoclasse
- 19. È possibile creare un'istanza di una classe Ruby senza chiamare initialize?
- 20. È possibile ispezionare dinamicamente l'ambito di visibilità del metodo (privato/pubblico/protetto)?
- 21. Ruby: Struct vs Initialize
- 22. Come decidere se un metodo sarà privato, protetto, interno o pubblico?
- 23. privato costruttore
- 24. fare un abstract di classe vs rendere il costruttore privato
- 25. C++ Accesso al membro statico privato dal metodo statico pubblico?
- 26. È possibile sovrascrivere #initialize in un modulo Ruby?
- 27. Il costruttore della classe interna privata è anche privato?
- 28. Costruttore privato e costruttore parametri pubblici
- 29. estende della classe con il costruttore privato
- 30. Uso del costruttore privato nella classe
Si può anche chiamare 'initialize' di un oggetto' obj.send (: inizializzare) '. –
@undur_gongor: Sì, funziona per qualsiasi metodo privato. –