Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


COBOL クラスのインスタンス化

COBOL クラスをインスタンス化するには、型式化オブジェクト参照または汎用オブジェクト参照を、 INVOKE . . . NEW ステートメントの RETURNING 句に指定できます。ただし、USING 句を コーディングすることはできません。インスタンス・データは、クラス定義の VALUE 節に 指定されたとおりに初期化されます。

したがって、INVOKE . . . NEW ステートメントは、単一のインスタンス・データのみを有する COBOL クラスのインスタンスを生成するときに役立ちます。例えば、次のステートメントは、Account クラスのインスタンスを作成し、Account クラス定義の OBJECT 段落の WORKING-STORAGE SECTIONVALUE 節に指定されたとおりに、インスタンス・データを初期化し、新しいインスタンスへの 参照 outAccount を提供します。

Invoke Account New returning outAccount

VALUE 節だけを使用して初期化することができない COBOL クラス・データの 初期化を可能にするには、COBOL クラスを設計する際に、FACTORY 段落にパラメーター化生成メソッドを 定義し、OBJECT 段落にパラメーター化初期化メソッドを定義する必要があります。

  1. パラメーター化ファクトリー生成メソッドで、以下の手順を実行します。
    1. INVOKE class-name NEW RETURNING objectRef をコーディングして、 class-name のインスタンスを作成し、VALUE 節を有するインスタンス・データ項目に初期値を与えます。
    2. パラメーター化した初期化メソッドをインスタンス (objectRef) 上で呼び出し、指定された引数 BY VALUE をファクトリー・メソッドに渡します。
  2. 初期化メソッドで、ロジックをコーディングし、仮パラメーターを介して指定された 値を使用して、インスタンス・データ初期化を完了します。

COBOL クラスのインスタンスを作成して適切に初期化するために、クライアントはパラメーター化ファクトリー・メソッドを呼び出し、BY VALUE で目的の引数を渡します。 クライアントに戻されるオブジェクト参照は、ローカル参照です。メソッド内にクライアント・コードがあり、戻されるオブジェクト参照を使用するのがそのメソッドの存続期間に限定されない場合、クライアント・コードは、JNI サービス NewGlobalRef を呼び出すことによって、戻されるオブジェクト参照をグローバル参照に変換しなければなりません。

例: ファクトリーの定義 (メソッドに関して)

関連参照
VALUE 節 (Enterprise COBOL 言語解説書)
INVOKE ステートメント (Enterprise COBOL 言語解説書)


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)