Ansicht
Dokumentation
ABENCLASS_VISIBILITY - CLASS VISIBILITY
BAL Application Log Documentation ROGBILLS - Synchronize billing plansDiese Dokumentation steht unter dem Copyright der SAP AG.
- Sichtbarkeitsbereiche in Klassen
Der Deklarationsteil einer Klasse kann in bis zu vier verschiedene Sichtbarkeitsbereiche unterteilt werden.
Diese Bereiche definieren die Sichtbarkeit der Klassenkomponenten von außen und somit die Schnittstellen der Klasse für alle im Rahmen des Paketkonzepts erlaubten Verwender. Jede Komponente einer Klasse muss explizit einem der Sichtbarkeitsbereiche zugeordnet werden. Nur für die Freunde einer Klasse spielen die entsprechenden Einschränkungen keine Rolle.
- Öffentlicher Sichtbarkeitsbereich
- Alle im mit PUBLIC SECTION definierten öffentlichen Sichtbarkeitsbereich deklarierten Komponenten sind für alle Verwender sowie in den Methoden aller Erben und der Klasse selbst ansprechbar. Die öffentlichen Komponenten stellen die Schnittstelle der Klasse für alle Verwender dar.
- Geschützter Sichtbarkeitsbereich
- Alle im mit PROTECTED SECTION definierten geschützten Sichtbarkeitsbereich deklarierten Komponenten sind in den Methoden aller Erben und der Klasse selbst ansprechbar. Die geschützten Komponenten stellen eine spezielle Schnittstelle der Klasse für ihre Unterklassen dar.
- Privater Sichtbarkeitsbereich
- Alle im mit PRIVATE SECTION definierten privaten Sichtbarkeitsbereich deklarierten Komponenten sind nur in den Methoden der Klasse selbst ansprechbar und auch nicht für die Erben sichtbar. Die privaten Komponenten stellen somit keine Schnittstelle zu den Verwendern der Klasse dar.
Die folgende Tabelle fasst die Sichtbarkeiten einer Klasse zusammen:
Sichtbar für | PUBLIC SECTION | PROTECTED SECTION | PRIVATE SECTION |
gleiche Klasse und deren Freunde | X | X | X |
beliebige Unterklassen | X | X | - |
beliebige Repository-Objekte | X | - | - |
Hinweis
Eine Unterklasse kann in der Regel nicht auf die von einer gemeinsamen Oberklasse geerbten geschützten Komponenten einer Unterklasse eines anderen Asts der Vererbungshierarchie zugreifen. Diese Regel kann nur durch Freundschaft aufgehoben werden.
Kapselung
Die drei Sichtbarkeitsbereiche sind Grundlage für die wichtige Objekteigenschaft der Kapselung in ABAP Objects. Bei der Deklaration einer Klasse sollte darauf geachtet werden, so wenig Komponenten wie möglich im öffentlichen Abschnitt zu deklarieren und diese öffentlichen Komponenten sorgfältig zu entwerfen. Für globale Klassen dürfen sie nach einer Freigabe der Klasse nicht mehr geändert werden.
Kapselungsmöglichkeiten weitestgehend ausnutzen
Hinweis
Die kleinste Kapselungseinheit in ABAP Objects ist die Klasse. Daher kann eine Methode außer den Komponenten der eigenen Klasse alle Komponenten aller Instanzen der gleichen Klasse verwenden. Die Ausnahme zu dieser Regel sind Unterklassen, die keinen Zugriff auf die privaten Komponenten von Oberklassen haben, wenn sie nicht deren Freunde sind.
In der Methode m1 von Klasse c1 kann über Referenzvariablen vom statischen Typ c1 auf das geschützte Attribut a11 und das private Attribut a12 beliebiger Objekte von c1 zugegriffen werden. In der Methode m2 der Unterklasse c2 kann genauso mit Referenzvariablen vom statischen Typ c1 oder c2 auf das geschützte Attribut a11 zugegriffen werden. Ein Zugriff auf das private Attribute der Oberklasse ist mit beiden Referenzvariablen nicht möglich.
ABAP Short Reference PERFORM Short Reference
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 5186 Date: 20240523 Time: 172127 sap01-206 ( 90 ms )