COBOL メソッド定義構造
COBOL メソッド定義ではメソッドを記述します。
メソッド定義の指定は、クラス定義の FACTORY 段落および OBJECT 段落でのみ行うことができます。
COPY および REPLACE ステートメントと END METHOD マーカーを除き、
COBOL メソッド定義のステートメント、項目、段落、およびセクションは、次の 4 つの部に分類されます。
- 見出し部
- 環境部 (入出力セクションのみ)
- データ部
- 手続き部
COBOL メソッド定義の終了は END METHOD マーカーによって示されます。
COBOL メソッド定義のフォーマットは、以下のとおりです。
| フォーマット: COBOL メソッド定義 |
 >>-+-IDENTIFICATION-+--DIVISION.-------------------------------->
'-ID-------------'
>--METHOD-ID--+---+--メソッド名-1--+---+------------------------>
'-.-' '-.-'
>--+------------------------+----------------------------------->
'-その他の見出し部の内容-'
>--+---------------------------------------------+-------------->
'-ENVIRONMENT DIVISION.--メソッド環境部の内容-'
>--+------------------------------------------+----------------->
'-DATA DIVISION.--メソッド・データ部の内容-'
>--+--------------------------------------------------------+--->
'-メソッド手続き部のヘッダー--+------------------------+-'
'-メソッド手続き部の内容-'
>--END METHOD--メソッド名-1------------------------------------><
|
- METHOD-ID
- メソッド定義を識別します。詳細は、METHOD-ID 段落を参照してください。
- メソッド手続き部のヘッダー
- 手続き部の開始を示し、メソッド・パラメーターと戻り項目 (ある場合) を
識別します。詳細は、手続き部のヘッダーを参照してください。
- END METHOD
- メソッド定義の終了を指定します。
オブジェクト定義に定義されたメソッドは、インスタンス・メソッド です。
指定されたクラス内のインスタンス・メソッドは、以下のデータにアクセスすることができます。
- そのクラスの OBJECT 段落のデータ部に定義したデータ (インスタンス・データ)
- そのインスタンス・メソッドのデータ部に定義したデータ (メソッド・データ)
インスタンス・メソッドは、親クラスに定義されたインスタンス・データ、
それ自体のクラスに定義されたファクトリー・データ、またはそのクラスの別のメソッドに
定義されたメソッド・データに、直接的にアクセスすることはできません。これらのデータにアクセスするには、
メソッドを呼び出す必要があります。
ファクトリー定義に定義されているメソッドは、ファクトリー・メソッド です。
指定されたクラス内のファクトリー・メソッドは、以下のデータにアクセスすることができます。
- そのクラスの FACTORY 段落のデータ部に定義したデータ (ファクトリー・データ)
- そのファクトリー・メソッドのデータ部に定義したデータ (メソッド・データ)
ファクトリー・メソッドは、親クラスに定義されたファクトリー・データ、
それ自体のクラスに定義されたインスタンス・データ、またはそのクラスの別のメソッドに
定義されたメソッド・データに、直接的にアクセスすることはできません。これらのデータにアクセスするには、
メソッドを呼び出す必要があります。
メソッドは COBOL プログラムおよびメソッドから呼び出すことができ、
Java プログラムから起動することができます。メソッドは、それ自体を直接的または間接的に呼び出す INVOKE ステートメントを実行できます。したがって、COBOL メソッドは暗黙的に再帰的
です (COBOL プログラムの再帰がサポートされるのは RECURSIVE 属性が PROGRAM-ID 段落に指定されている場合だけであるのとは異なります)。
|