COBOL クラスをインスタンス化するには、型式化オブジェクト参照または汎用オブジェクト参照を、 INVOKE . . . NEW ステートメントの RETURNING 句に指定できます。ただし、USING 句を コーディングすることはできません。インスタンス・データは、クラス定義の VALUE 文節に指定されたとおりに初期化されます。
したがって、INVOKE . . . NEW ステートメントは、単一のインスタンス・データのみを有する COBOL クラスのインスタンスを生成するときに役立ちます。例えば、次のステートメントは、Account クラスのインスタンスを作成し、Account クラス定義の OBJECT 段落の WORKING-STORAGE SECTION の VALUE 文節に指定されたとおりに、インスタンス・データを初期化し、新しいインスタンスへの 参照 outAccount を提供します。
Invoke Account New returning outAccount
VALUE 文節だけを使用して初期化することができない COBOL クラス・データの 初期化を可能にするには、COBOL クラスを設計する際に、FACTORY 段落にパラメーター化生成メソッドを 定義し、OBJECT 段落にパラメーター化初期化メソッドを定義する必要があります。
COBOL クラスのインスタンスを作成して適切に初期化するために、クライアントはパラメーター化ファクトリー・メソッドを呼び出し、BY VALUE で目的の引数を渡します。クライアントに戻されるオブジェクト参照は、ローカル参照です。メソッド内にクライアント・コードがあり、戻されるオブジェクト参照を使用するのがそのメソッドの存続期間に限定されない場合、クライアント・コードは、JNI サービス NewGlobalRef を呼び出すことによって、戻されるオブジェクト参照をグローバル参照に変換しなければなりません。
関連タスク
JNI サービスへのアクセス
ローカル参照とグローバル参照の管理
メソッドの呼び出し (INVOKE)
ファクトリー・セクションの定義
関連参照
VALUE 文節
(「COBOL for Windows 言語解説書」)
INVOKE ステートメント
(「COBOL for Windows 言語解説書」)