Ruby 4.0 リファレンスマニュアル

オブジェクト

[edit]

オブジェクトとは

Ruby で扱える全ての値はオブジェクトです。 Ruby のオブジェクトに対して可能な操作はメソッド呼び出しのみです。あるオブジェクトが反応できるメソッドは、そのオブジェクトが所属するクラスによって一意に決定します。所属するクラスはオブジェクト生成時に決まり、その後は特異クラスの導入以外、所属クラスが変わることはありません。またオブジェクトは、特定のクラスに対比して、その「インスタンス」とも呼ばれます。

オブジェクトの生成は、一般には、別のオブジェクトのメソッドを呼び出すことによって行われます。

クラス

クラスは自身に所属するオブジェクトが反応できるメソッドを決定します。所属するオブジェクトに対してあるメソッドを呼び出すことができるなら、そのメソッドが「クラスに定義されている」と言います。またメソッドはクラスとメソッド名によって一意に決定します。

クラスは必ずただひとつの「スーパークラス」を持ち、スーパークラスであるメソッドが定義されていれば自クラスでもそのメソッドが同じ内容で定義されていることになります。これを「継承」と呼びます。継承は推移するので、スーパークラスのスーパークラスが持つメソッドもまた自クラスにおいて定義されていることになります。

モジュール

モジュールはクラスと同様にメソッドや定数の集まりを定義しますが、クラスと違ってインスタンスを生成できず、単独では継承関係を持ちません。

モジュールをクラスに include すると、そのモジュールのインスタンスメソッドをクラスに定義されているかのように扱えるようになります。この仕組みを Mix-in と呼びます。モジュールは定数やメソッドをまとめる名前空間としても使われます。

メソッド

メソッドは実行できます。その実行を開始することを通常「呼び出す」と言います。また呼び出すときにはオブジェクトを渡すことができ、そのオブジェクトを「引数」と呼びます。いくつの引数を受け取ることができるかはメソッドの定義時に決定し、変更することはできません。