rubyでメソッド(コンストラクタ)をprivateまたはpublicに初期化していますか?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. Rubyクラスの初期化
- 2. 初期化状態クラスのプロパティとしてか、コンストラクタでは、[ReactJS]
- 3. コンストラクタの初期化リストは、
- 4. コンストラクタでの初期化、ベストプラクティス?
- 5. コンストラクタの初期化リストで配列を初期化する
- 6. コンストラクタの初期化子リストのメンバでない初期化
- 7. RequireJSオブジェクトのプライベートメソッドとパブリックメソッド
- 8. クラスのコンストラクタでベクトルを初期化する方法
- 9. PHPのコンストラクタでクラス定数を初期化する
- 10. 独自のコンストラクタで新しいクラスを初期化する
- 11. クラスのコンストラクタでifstream変数を初期化する
- 12. コンストラクタの配列初期化
- 13. Javaの初期化コンストラクタ
- 14. コンストラクタ内の初期化リスト
- 15. テンプレートテンプレートパラメータ:コンストラクタの初期化
- 16. コンストラクタ内の初期化ブロック
- 17. 初期化リストに同じクラスの別のコンストラクタをコンストラクタで呼び出すことは有効ですか?
- 18. コンストラクタ引数からクラス初期化子リストのconst多次元配列を初期化する
- 19. オブジェクト初期化子とコンストラクタの違いは何ですか?
- 20. PHPコンストラクタなしでクラス変数を初期化する
- 21. 変数をクラスまたはコンストラクタとして初期化しますか?
- 22. 空の初期化を伴うコンストラクタの初期化リスト
- 23. C++:コンストラクタでのベクトルの初期化
- 24. C++クラス、コンストラクタの初期化中に値を代入する
- 25. コンストラクタでの初期化配列 - Java
- 26. 別のクラスのコンストラクタ内のコンパレータの初期化
- 27. C#初期化および実行中のスクリプトのクラスのコンストラクタ
- 28. C++:boost :: scoped_ptrをコンストラクタ内で初期化できますか?
- 29. constメンバーをC++コンストラクタで初期化できますか?
- 30. コンストラクタの初期化リストをコピーする
をあなたはobj.send'によってオブジェクトの 'initialize'も呼び出すことができます。 –
@undur_gongor:それはどんなプライベートメソッドでもうまくいきます。 –