7.1. オブジェクトの作成と初期化

UP


7.1. オブジェクトの作成と初期化

ジェネリック関数make-instanceは、 クラスの新しいインスタンスを作成し返却します。 最初の引数はクラスか、クラスの名前であり、 残りの引数は初期化引数リストです。

新しいインスタンスの初期化は、いくつかのステップから成ります。 内容は次のようになります。 指定されなかった初期化引数の値に対して、 明に指定された初期化引数とデフォルト値を結びつけるステップ。 初期化引数の有効性をチェックするステップ。 インスタンスの記憶領域を確保するステップ。 スロットに値を埋めるステップ。 そして追加の初期化を行うためにユーザーが提供したメソッドを実行するステップ。 make-instanceの各ステップはジェネリック関数により実装されているため、 それぞれのステップをカスタマイズする仕組みが提供されています。 加えて、make-instance自体がジェネリック関数であるため、 自身もカスタマイズできます。

オブジェクトシステムは各ステップに対して、システムで提供されたメソッドを用意しています。 メソッドは初期化全体の手順の標準的な振る舞いを定義したものです。 標準の振る舞いは、下記の4つの簡単な仕組みによって、初期化を制御することができます。


TOP, Github