クラス
すべてのオブジェクトはただひとつのクラスに所属しており、
呼び出せるメソッドはそのクラスによって決まる。
この場合、このオブジェクトは”何とかクラスのインスタンス”とか言う。
"Stringクラスにて定義されたupcaseメソッド”を"String#upcase"と表記する
のはお約束。(String.upcaseと書くと別の意味になってしまうし、
この例はありえない?)
クラスを定義するには
class C
end
と叩く。この場合は 新しいクラスCの定義となる。
クラスが定義されたら、次にようにして使うことができる
class C
end
c = C.new()
Rubyにおいてはクラス名と定数名は同義。
すべてのクラスオブジェクトはClassクラスのインスタンス。
表記についてのまとめ
obj = Object.new() # Object.new
obj.new() # Object#new (ただしこの例はエラーになる)
上は、クラスオブジェクトObject自体に対して呼ぶメソッドnewの意味となり、
下は、Objectクラスにて定義されたnewメソッド(ただしエラーになる)