COBOL2002 ユーザーズガイド
COBOL2002でのメソッドの呼び起こし(メッセージパッシング)には,「INVOKE文」を使用します。次に例を示します。
INVOKE CLASS-A 'HIKIDASHI' USING H-1 RETURNING H-2 1 2 3 4
COBOL2002は,クラス名またはオブジェクト参照で指定したオブジェクトが実装しているメソッドを探します。INVOKE文によって,オブジェクトに対しメソッドの実行を要求することを「メソッドを呼び起こす」といいます。メソッドを呼び起こす場合には,INVOKE文にクラス名,オブジェクト参照データ項目名,または既定義オブジェクト参照を指定します。
INVOKE文の文法規則については,マニュアル「COBOL2002 言語 標準仕様編 10.8.26 INVOKE文」を参照してください。
クラス名を指定すると,そのクラスに定義されているファクトリメソッドが呼び起こされます。記述例を,次に示します。
INVOKE CLASS-A 'FACTORY-METHOD' USING ARG1 1 RETURNING ARG2.
インスタンスメソッドを呼び起こす場合,そのメソッドを内包するインスタンスオブジェクトを指すオブジェクト参照を指定します。
オブジェクト参照とは,生成されたオブジェクトを参照するデータ項目です。オブジェクト参照は,USAGE IS OBJECT REFERENCE句を使用して宣言します。オブジェクト参照の詳細はマニュアル「COBOL2002 言語 標準仕様編 9.16.86 USAGE句」を参照してください。
記述例を,次に示します。
: 01 H-1 USAGE OBJECT-REFERENCE. : INVOKE CLASS1 'NEW' RETURNING H-1. : INVOKE H-1 'OBJECT-METHOD' USING ARG1 1 RETURNING ARG2.
現在実行中のメソッドの呼び起こし対象であるオブジェクトのメソッドを呼び起こす場合,既定義オブジェクト参照のSELFまたはSUPERを使用します。
記述例を,次に示します。
INVOKE SELF 'OBJECT-METHOD' USING ARG1 1 RETURNING ARG2.
既定義オブジェクト参照には,ほかにNULLおよびEXCEPTION-OBJECTがあります。既定義オブジェクト参照については,マニュアル「COBOL2002 言語 標準仕様編 4.3.2 一意名のいろいろ」を参照してください。
INVOKE文を実行すると,呼び起こすメソッドが検索されます。メソッドは,INVOKE文の記述によって次のように検索されます。
メソッドに渡す引数を指定します。ここで指定した引数は,メソッド側に渡されます。詳細は,「18. プログラム間の引数と返却項目」を参照してください。
オブジェクトのメソッドを実行させた結果の値を受け取るための,データ項目を指定します。
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2002, 2011, Microsoft Corporation.