module Tekitou class Desu def nanka puts "nanka" end def self.nanka? puts "nanka?" end end end Tekitou::Desu.nanka? Tekitou::Desu.nanka
上記のrubyプログラムを実行すると、下記の結果が帰ってきます
% ruby sample.rb nanka? sample.rb:15:in `<main>': undefined method `nanka' for Tekitou::Desu:Class (NoMethodError)
Desuクラスのnanka?メソッドにselfを付与する事によりインスタンスを作成しなくともメソッドが実行出来るようになりますが、何故このような挙動になるのか理解出来ません。
どなたか上記現象について分かりやすく説明、またはそれに準ずる事柄が解説されてる文献等ご存知でしたら、ご教授頂きたいです。
self自体は自身のオブジェクトを参照するようなもの。のような感じで、オーバーライド等によく見かけるような記法というゆるふわな認識ですが、これを付与するだけでインスタンス化しなくてもメソッドが実行出来るのは何故なのか、その辺のオブジェクトの動きが分かりません。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/08 08:18