Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 言語解説書


名前の解決

名前がプログラムで指定されている場合と、クラス定義で指定されている場合では、名前解決の規則が異なります。

プログラム内の名前

あるプログラム (プログラム B) が別のプログラム (プログラム A) の中に含まれていると、 それら 2 つのプログラムは、同じユーザー定義語で条件名、データ名、ファイル名、 またはレコード名を定義することができます。 そのような重複名がプログラム B で参照されると、 次のステップに従って、参照されるリソースが判別されます。(これらの規則はクラスおよび 含まれているメソッドにも適用されます)。

  1. 参照されたリソースは、 プログラム B で定義されたすべての名前のセットから、 およびプログラム A とそれを直接または間接に含んでいるプログラムで定義されたすべてのグローバル名から識別されます。1 つ以上のリソースが識別されるまで、この名前のセットに対して参照の修飾に関する標準規則および参照の固有性に関するその他の規則が適用されます。
  2. リソースが 1 つしか識別されない場合は、それが参照されたリソースです。
  3. 複数のリソースが識別される場合は、 それらのリソースのうちの 1 つだけがプログラム B に対してローカルな名前を持つことができます。プログラム B に対してローカルな名前を持っているリソースが 1 つしかない場合、 またはまったくない場合は、次の規則が当てはまります。
    • プログラム B で名前が宣言される場合は、 プログラム B のリソースは参照されたリソースである。
    • プログラム B で名前が宣言されない場合は、 参照されたリソースは次のようなものである。
      • プログラム A で名前が宣言されている場合は、プログラム A のリソース
      • プログラム A を含むプログラムで名前が宣言されている場合は、含んでいる方のプログラムのリソース。

      この規則は、有効なリソースが見つかるまで、 含んでいる方のプログラムに適用されます。

クラス定義内の名前

クラス定義では、次の単位の中でリソースを定義することができます。

  • ファクトリー・データ部
  • オブジェクト・データ部
  • メソッド・データ部

オブジェクト定義のデータ部おいてリソースがある名前で定義されている場合、 そのオブジェクト定義のインスタンス・メソッドに同じ名前のリソースが定義されていないときは、 その名前へのインスタンス・メソッドからの参照は、オブジェクト・データ部のリソースへの参照になります。

ファクトリー定義のデータ部おいてリソースがある名前で定義されている場合、 そのファクトリー定義のファクトリー・メソッドに同じ名前のリソースが定義されていないときは、 その名前へのファクトリー・メソッドからの参照は、ファクトリー・データ部のリソースへの参照になります。

メソッド内にリソースが定義されている場合、そのメソッド内での同じリソース名への参照はすべて、 そのメソッド内のリソースへの参照になります。

1 つのメソッド・データ部、オブジェクト・データ部、ファクトリー・データ部の中で、 同じ名前が複数のリソースに関連付けられている場合は、参照の修飾と固有性に関する標準規則が適用されます。


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

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