next up previous contents
Next: 9.3 継承 Up: 9. オブジェクト指向文法の概要 Previous: 9.1 クラス

9.2 インスタンス

インスタンスは、クラス宣言式の定義に基づいて動的に生成したデー タ構造です。インスタンスの生成は、2つの方法がありあます。

先のクラスPointのインスタンスの生成について見てみましょう。

第1の方法は、予約語newを使って

var anInstance ;
anInstance = new Point ;

と行います。この場合、生成されたインスタンスのデータメンバの初期化はで きません。クラスPointの場合は、生成後、メソッドSet()を使って下記のよう に初期化します。

anInstance->Set(10, 20) ;

ここで、`->'は、インスタンスのメンバを選択するための演算子です。 これによって、PointクラスのメソッドSet()を選択しています。また、'.' も、 `->'と全く同じ意味で使うことができます。

もうひとつは、クリエータNew()を使う方法です。Pointクラスのインスタンスを生 成する場合は、下記のようになります。

var anInstance ;
anInstance = Point->New(10, 20) ;

クリエータを用いる場合は、クラスからメンバを選択します。このように、イ ンスタンスから選択するのではなく、クラスからメンバ選択をして呼び出すメ ソッドをクラスメソッドといいます。

クラス名->New([引数 [,引数...]])

クリエータを使う場合は、初期化コードがある場合は、生成時にメンバの初期 化をすることができます。


next up previous contents
Next: 9.3 継承 Up: 9. オブジェクト指向文法の概要 Previous: 9.1 クラス
Tetsuo Ono
1998-11-05