Ansicht
Dokumentation

ABENCLASS_VISIBILITY - CLASS VISIBILITY

ABENCLASS_VISIBILITY - CLASS VISIBILITY

BAL Application Log Documentation   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- 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 )