クラスもオブジェクト
クラスはオブジェクトを作るための設計図だという話をしました。
ここで驚くべき話があります。実はRubyではクラスもまたオブジェクトなのです!!!!!
RubyではクラスはClassというクラスのインスタンスになっています。
となると当然疑問が湧いてきます。Classというクラスはどのクラスからつくられているの?という疑問です。
答えを正確に説明するのは難しいのですが、ここではClassというクラスのインスタンスは自分自身から作られている、という説明にとどめておきます。
クラスインスタンス変数
クラスもやっぱりオブジェクトなので、今までみてきたオブジェクトと同じように変数を持ったりメソッドを持ったりできます。
最初に、クラス自体のインスタンスが持っている変数についてみていくことにしましょう。
クラス自体のインスタンスが持っている変数をクラスインスタンス変数といいます。そのまんまですね。
クラスメソッド
次はメソッドの話です。クラスも通常のオブジェクトと同じようにメソッドを持つことができます。
このようなメソッドをクラスが持っているメソッドなのでクラスメソッドといいます。
クラスには親子関係がある