initializeメソッドの呼び出し制限
クラス定義の中にあるdef式はデフォルトではpublicになる。
だたし、initializeメソッドは自動的にprivateに設定される。
class C
def initialize
p "initialize"
end
end
C.new.initialize
// => private method `initialize' called for #<C:0x00007fa0751586b0> (NoMethodError)
initializeメソッドを明示的にpublicにすることは可能。
class C
def initialize
p "initialize"
end
public :initialize
end
C.new.initialize
// => "initialize"
// => "initialize"
参考
Rubyリファレンスマニュアルには次のように書かれている。
initialize という名前のメソッドは自動的に private に設定されます。