ネストされたクラスは、包含クラス内の静的フィールド、プロパティ、およびメソッドにアクセスできる。
ネストされたクラス定義でオプションの SHARING PARENT 指定を使用すると、ネストされたクラスのインスタンス メソッドおよびプロパティは、包含クラスのインスタンス フィールド、プロパティ、およびメソッドにアクセスできる。
class-id ContainingClass. ... class-id Nested1. ... end class. class-id Nested2 sharing parent. ... end class. end class.
SHARING PARENT 指定を持つネストされたクラスは、囲みクラスのインスタンス メソッド内からのみインスタンス化できる。これらのクラスは、そのインスタンス メンバーが private であっても、包含クラスからインスタンス メンバーにアクセスできる。
このようなネストされたクラスには、その包含クラスのインスタンスへの暗黙参照が含まれる。ネストされたクラスでは、この参照を使用して、囲みクラスのインタンス メンバーにアクセスする。つまり、外部で保持される内部クラスへのすべての参照のガベージが収集されるまで、包含クラス インスタンスのガベージは収集されない。
次に例を示す。
class-id ContainingClass. 01 companyName string value "Micro Focus". method-id instance1. 01 o type Nested2. set o to new Nested2 ... end method class-id Nested2 SHARING PARENT. method-id method2 display companyName end method. end class. end class.