Rational Developer for System z
COBOL for Windows バージョン 7.5 言語解説書


METHOD-ID 段落

METHOD-ID 段落は、メソッドの名前を指定し、選択された属性をそのメソッドに割り当てます。 METHOD-ID 段落は必須であり、メソッド見出し部の最初の段落でなければなりません。

メソッド名-1
メソッドの名前が含まれる、英数字リテラルまたは国別リテラル。 名前は、Java メソッド名の形成規則に従っていなければなりません。 メソッド名は、変換せずに直接使用します。メソッド名は、大文字小文字を区別して処理されます。

メソッド・シグニチャー

メソッドのシグニチャー は、手続き部 USING 句で指定されているように、メソッドの名前と、メソッドの 仮パラメーターの数および型で構成されます。

メソッド多重定義、オーバーライド、および隠蔽

COBOL メソッドは、Java 言語の規則に基づいて、多重定義オーバーライド、または隠蔽 になる可能性があります。

メソッド多重定義

クラスに定義されるメソッド名は固有である必要はありません。 (「クラスに定義される」メソッドには、クラス定義によって導入されるメソッドと、親クラスから継承されたメソッドとがあります。)

クラスに対して定義されるメソッド名には、 固有のシグニチャーが必要です。クラスに対して定義されている 2 つのメソッドの名前が同一で、 シグニチャーが異なる場合、これらの 2 つのメソッドは多重定義されている といいます。

メソッド戻り値のタイプがある場合、それはメソッド・シグニチャーには組み込まれません。

クラスが 2 つのメソッドを定義するときは、同一のシグニチャーと異なる戻り値タイプを使ったり、 または、同一のシグニチャーを使いながら、一方には戻り値を指定し、もう一方には戻り値を指定しないで、 定義してはなりません。

多重定義メソッド定義に関する規則、および多重定義メソッドの起動の解決は、 Java の対応規則に基づきます。

メソッドのオーバーライド (インスタンス・メソッド)

サブクラス内のインスタンス・メソッドは、2 つのメソッドのシグニチャーが同一である場合には、 親クラスから継承される、同じ名前のインスタンス・メソッドをオーバーライド します。

メソッドが、親クラスで定義されたインスタンス・メソッドをオーバーライドするとき、メソッド戻り値 (手続き部 RETURNING データ名) の有無は、これらの 2 つのメソッドで 一貫していなければなりません。さらに、メソッド戻り値を指定するときには、オーバーライドされる側のメソッドおよびオーバーライドする側のメソッドの戻り値は、データ型が同一でなければなりません。

インスタンス・メソッドは、COBOL 親クラス内のファクトリー・メソッド、 または Java 親クラス内の静的メソッドをオーバーライドすることはできません。

メソッドの隠蔽 (ファクトリー・メソッド)

クラスのスーパークラス内で、同一シグニチャーでなければアクセス可能であるメソッドが、同一シグニチャーであるためにアクセスが不可能となるとき、ファクトリー・メソッドはメソッド定義の スーパークラス内の同一のシグニチャーを持つすべてのメソッドを隠蔽 する、と言います。 ファクトリー・メソッドは、インスタンス・メソッドを隠蔽することはできません。


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

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