Sie können jeder EGL-Deklaration den Änderungswert 'private' hinzufügen. Die genaue Bedeutung hängt vom jeweiligen Kontext ab. Im Allgemeinen wird jedoch durch 'private' der Gültigkeitsbereich dessen eingeschränkt, was deklariert wird. Es gibt kein EGL-Schlüsselwort 'public'. EGL geht davon aus, das alles, was nicht als 'privat' deklariert ist, als öffentlich zugänglich (public) zu behandeln ist.
Das Schlüsselwort 'private' beschränkt den Gültigkeitsbereich einer Funktion, Variablen oder Konstanten auf den Abschnitt, in dem diese definiert ist. Externe Funktionen können keine Funktionen aufrufen und auf keine Werte von Variablen oder Konstanten zugreifen, die als 'private' markiert sind, und zwar selbst dann nicht, wenn ein vollständig qualifizierter Pfad verwendet wird. Auf diese Weise können Helper-Funktionen und lokale Variablen erstellt werden, auf die nur in einem einzelnen Abschnitt zugegriffen werden kann.
Wenn Sie einen Abschnitt auf Ausgangsebene (beispielsweise ein Programm oder eine Bibliothek) als 'private' definieren, ist der betreffende Abschnitt bis hin zu dessen Paket nicht öffentlich und kann von Abschnitten in anderen Paketen weder importiert noch verwendet werden.
Variablen, die in einer Funktion definiert werden, sind per definitionem nicht öffentlich, sodass Funktionen und Anweisungen außerhalb dieser Funktion nicht auf die betreffenden Variablen verweisen können. In der Deklaration ist daher kein Änderungswert erforderlich.
Obwohl die Verwendung des Änderungswerts 'private' in einem Programm oder Handler zulässig ist, wird dieser Änderungswert hauptsächlich in Bibliotheken oder Services verwendet. Hierbei ist zu beachten, dass Variablen und Konstanten außerhalb eines Service ohnehin nicht sichtbar sind, sodass die Verwendung des Schlüsselworts 'private' nur in der Funktionsdeklaration in einem Service sinnvoll ist.
private taxTable INT[][]; // dies kann nicht von anderen Programmen geändert werden
private function buildTaxTable() // kein Zugriff
...
end
function figureTaxes() // standardmäßig 'öffentlich zugänglich'
buildTaxTable();
...
end
| Plattform | Problem |
|---|---|
| JSF | Im Kontext eines JSF-Handlers sind als 'private' deklarierte Variablen für den Seitendesigner nicht sichtbar, können also nicht auf der Seite abgelegt werden. |