兵藤です ありがとうございました man-1.0を読み直していくつかテストスクリプトを書いてわかりました Masaki SuketaさんのMon, 27 Oct 97,05136 [ruby-list:5136] Re: class method, instance method へのreplyです > クラスメソッドは、クラスをオブジェクトとしてみたときの > 特異メソッドです。特異メソッドの説明で、クラスメソッド > に触れてます。 rubyではクラスメソッドにあたるものを特異メソッドというのですね いままで特異メソッドはなんだろうと思いながら 特異メソッド関連を読み飛ばしていたばちがあたりました ^^; matz / netlab.co.jp (Yukihiro Matsumoto)さんのMon, 27 Oct 97,05137 [ruby-list:5137] Re: class method, instance method へのreplyです > tailはMeimiクラスのインスタンスが存在しない場所でも呼ばれる > ので,そのままではインスタンスのメソッドであるheadを呼べませ > ん.どうしても呼びたければ内部でMeimi.newでインスタンスを生 > 成してメソッドを呼ぶことになるでしょう. ただそれ以前に最初に間違った思いこみをしていました (^^; 特異メソッドから呼び出されるprivateな関数を作りたかったのですが まず、初期化関連はnewのときに自動的に呼ばれるインスタンスメソッドの initializeでしなれけばいけないことに気がついていませんでした # initializeはインスタンスメソッドなので他のprivateメソッドを呼べました ^^; つぎに、特異メソッドからprivateな特異メソッドに処理をまかせようとして privateではなくprivate_class_methodを用いることに気がつきませんでした (マニュアルはよく読まなきゃですね..) 特異メソッドの中でインスタンスを生成する方法は意外でした 試してみたらこれもうまくいきました じつはnewではなくopenで初期化できるようにしようとしてはまっていました その後とりあえずnewとinitializeを使うようにして動くようにしたのですが ftplib.rbを見直していて特異メソッドの中でnewを(関数形式でもどちらでも) 呼び出すことができることにようやく気づきました ^^; newが呼ばれると自動的にinitilizeメソッドが実行されるので うまく処理できるコードが書けました ps. (C++Builderで作る前のプロトタイプとして) メール箱を読み書きできるクラスをrubyで作っています まずNeXTのメール箱を読めるようにしています そのあとWindowsのEudoraとBecky!のメール箱に対応させるつもりでいます --- 'ruby', perl-4.x like(?) object oriented language ruby homepage: http://www.netlab.co.jp/ruby/jp/ hyoudo / kcn.or.jp http://www.kcn.or.jp/~hyoudo/nextstep/ 兵藤公一