プロが教えるわが家の防犯対策術!

Classの中のClass定義について

主にWindows環境でrubyを使用しているライトユーザーです。
ネットでソースを拝見していると、Class定義の中に更にClass定義がされているプログラムをみることがあります。以下のような感じですね。

Class Foo
 Class Bar
 ……
 end
……
end

このようにClass定義を他のClass定義の中に書くのは、どのような理由によるのでしょうか?
素朴な疑問です、ご教示いただければ嬉しいです。

A 回答 (2件)

FooとBarの関係性を明確にできるから、思考への負担がちょっと減る。

    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2010/04/29 05:42

名前空間ですね。



class Foo
 class Bar
 ……
 end
……
end
class Hoge
 class Bar
 ……
 end
……
end
class Bar
 ……
end

だと、それぞれの、Barクラスは別物で、それぞれFoo::Bar、Hoge::Bar、Barという名前のクラスになります。ただし、クラスFooの中ではFoo::BarはBarと略記できるし、Hogeの中ではHoge::BarをBarと略記出来ます。

例えば、Fooクラスの中でしか利用しないクラスがあった場合に、他のクラスと名前の衝突を気にすることなく名前を付けることが出来るわけです。ただし、Fooクラス外からもFoo::Barのように利用することが出来るので、Fooクラス内に隠蔽できるわけではないですが。

定数などもクラスの中で定義すれば、Foo::CONSTNAME のような定数が出来ます。
    • good
    • 1
この回答へのお礼

名前空間ですか。以前C++の初歩を勉強したときにでてきたのを思い出しました。

> 例えば、Fooクラスの中でしか利用しないクラスがあった場合

このような場合には確かに便利ですね、よくわかりました。
ご回答ありがとうございました。

お礼日時:2010/04/29 05:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!