まつもと ゆきひろです.
In message "[ruby-list:1393] new の override"
on 96/12/19, (Dezawa Shin-ichiro) <dezawa / miya.fujifilm.co.jp> writes:
|
|出沢です
|
|あるクラスの new を定義するにはどうするのでしょう?
newはクラスのメソッドで,そのselfは生成されたインスタンスで
はなく,クラスです.では生成したクラスの初期化はどうするかと
いうと,実はデフォルトのnewは生成したオブジェクトに対してメ
ソッドinitializeを実行します.
ですから,初期化する場合はnewを再定義する必要はなくて,
initializeだけ定義すれば勝手に呼び出されて初期化されます.
newに与えた引数もそのまま渡されますし,newがイテレータとして
呼び出された場合,initializeもイテレータとして呼び出されます.
def initialize(name,file,lineNr)
@name=name; @filename=file; @lineNr = lineNr
end
と定義すれば,
new("name", "/dev/null", 25)
で初期化されたインスタンスが入手できます.
まつもと ゆきひろ /:|)