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