Ruby で扱える全ての値はオブジェクトです。Ruby のオブジェクトに 対して可能な操作はメソッド呼び出しのみです。あるオブジェクトが 反応できるメソッドは、そのオブジェクトが所属するクラスによって 一意に決定します。所属するクラスはオブジェクト生成時に決まり、 その後は特異クラスの導入以外、所属クラスが変わることはありません。 またオブジェクトは、特定のクラスに対比して、その「インスタンス」 とも呼ばれます。
オブジェクトの生成は、一般には、別のオブジェクトのメソッドを呼び 出すことによって行われます。
クラスは自身に所属するオブジェクトが反応できるメソッドを決定します。 所属するオブジェクトに対してあるメソッドを呼び出すことができるなら、 そのメソッドが「クラスに定義されている」と言います。またメソッドは クラスとメソッド名によって一意に決定します。
クラスは必ずただひとつの「スーパークラス」を持ち、スーパークラスで あるメソッドが定義されていれば自クラスでもそのメソッドが同じ内容で 定義されていることになります。これを「継承」と呼びます。継承は推移 するので、スーパークラスのスーパークラスが持つメソッドもまた自クラス において定義されていることになります。
include
ちょっと特殊でクラスではない。しかし機能は同じ
メソッドは実行することができます。その実行を開始することを 通常「呼び出す」と言います。また呼び出すときにはオブジェクトを 渡すことができ、そのオブジェクトを「引数」と呼びます。いくつの 引数を受け取ることができるかはメソッドの定義時に決定し、変更 することはできません。