private および public

任意の EGL 宣言に修飾子 private を追加することができます。 正確な意味はコンテキストに応じて異なりますが、一般的に private は、 宣言される対象の有効範囲を制限します。「public」EGL キーワードはありません。 EGL では、private として宣言されないものはいずれも public であると見なされます。

private キーワードは、関数、変数、 または定数の有効範囲を、それが定義されているパーツに制限します。 外部関数は、完全修飾パスを使用しても、private とマークを付けられた 関数を呼び出したり、変数や定数の値にアクセスすることはできません。 これにより、単一パーツ内でのみアクセス可能となるヘルパー関数やローカル変数を作成することができます。

トップレベル・パーツ (プログラムやライブラリーなど) を private として定義する場合、 そのパーツはそのパッケージ専用であり、別のパッケージ内のパーツからインポートまたは使用することはできません。

関数内で定義される変数は、定義により、その関数専用になり、その関数の外部の文からこれらの変数を参照することはできません。 宣言の際に修飾子は必要ありません。

プログラムまたはハンドラー内で private 修飾子を正当に 使用できる場合の最も一般的な使用法は、ライブラリーまたはサービスでの使用です。 変数および定数はいかなる場合であってもサービスの外部からは見えないため、関数宣言はサービスでのみ行い、ここで private キーワードを使用することが妥当です。

税金プログラムでは次の宣言が行われる可能性があります。 このプログラムでは、外部プログラムがテーブルを変更することはありません。
private taxTable INT[][];   // 他のプログラムはこれを変更できません
private function buildTaxTable()     // アクセスなし
  ...
end

function figureTaxes()              // デフォルトでは public
  buildTaxTable();	
  ...
end

互換性

表 1. private キーワードの互換性に関する考慮事項
プラットフォーム 問題
JSF JSF ハンドラーのコンテキストで、 private として宣言する変数を Page Designer から見ることができません。 つまり、これらの変数をページにドロップすることができません。

フィードバック