クラス

すべてのオブジェクトはただひとつのクラスに所属しており、
呼び出せるメソッドはそのクラスによって決まる。
この場合、このオブジェクトは”何とかクラスのインスタンス”とか言う。

"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メソッド(ただしエラーになる)