のは、通常のRubyのクラスを見てみましょう:Rubyクラスのインスタンスメソッドdef initialize:インスタンスまたはクラスメソッド?
class Person
attr_accessor :name
def initialize name
@name = name
end
end
bob = Person.new("bob")
私の質問は、初期化の性質です。ここでは、new
は明らかにクラスメソッドですが、initialize
はクラスメソッドnew
が呼び出されたときに作成されたインスタンスで呼び出されるインスタンスメソッド(クラスではない)です。
私はこの権利を持っていますか?または、誰かが新しい光を放つことができますか?私はいくつかのGoogleの検索を行っており、明確さを見つけることができませんでした。次に、新しいオブジェクトが初期化されている
これは一種のものです。インスタンスメソッドのスコープにはアクセスできますが、それはクラスメソッドのように呼び出し可能です。 'def self.new'を定義すると、initializeは呼び出されません。 –
これは、 'new'メソッドが呼び出された結果として呼び出されることを意味しますか?実際には 'new'メソッドですか? –
はい。また、[Module#attr_accessor](http://ruby-doc.org/core-2.0.0/Module.html#method-i-attr_accessor)は、2つのインスタンスメソッド(ここでは 'name'と 'name =')。 –