From: Makoto Satoh Date: 2003-10-17T12:38:31+09:00 Subject: [ruby-list:38598] initializeから同じクラスのメソッドを呼ぶ 佐藤と申します。 クラスAのinitializeで、インスタンス変数@fooを初期化する のに少し処理が必要なので、同じクラスAのインスタンスメソ ッドとして定義しました。 class A def initialize @foo = init_foo() end attr_reader('foo') def init_foo ... end private :init_foo end 後ほど、このクラスAのインスタンスaを作ると、a.fooがちゃ んと値を返します。 この場合、init_fooは、 (1) initializeの中で@fooの初期化時に呼ばれて実行されてい る、 (2) a.fooが呼ばれたときに実行される、 のどちらでしょうか? あるいは、まったく別でしょうか? Java(の知識もあいまいですが)では、init_fooはインスタンス メソッドであり、クラスAのコンストラクタ中では呼べないと 思いました。 所望の動作をしているので、とりあえずOKなんですが、ちょっ と気持ち悪くて。 よろしくお願いします。 -- Makoto Satoh