2016-10-23 14 views
1

インスタンスメソッドからクラスメソッドを呼び出す構文は何ですか?私はこのコードを実行するとインスタンスメソッドからのRuby呼び出しクラスメソッド

class Class1 
    def initialize 
     #instance method 
     self.class.edit 
     puts "hello" 
    end 

    def self.edit 
     #class method 
     "ha" 
    end 
end 

c= Class1 

を以下の私が持っていると仮定し 、私は何の出力を取得していません。

+0

「Class1.new」を試してください。 'initialize'はインスタンスメソッドなので、' Class1'のインスタンス上で呼び出さなければなりません。 'Class1.new'はインスタンスを作成し、それに対して' initialize'を呼び出し、インスタンスを返します。 –

答えて

3

結果が何も表示されず、実際にnewのインスタンスを作成しないので、cをそのクラスのエイリアスにするだけです。これを少し変更すると、次のようになります。

class Class1 
    def initialize 
     #instance method 
     puts self.class.edit 
    end 

    def self.edit 
     #class method 
     "ha" 
    end 
end 

c= Class1.new 
関連する問題