Sichtbarkeit (Public/Protected/Private)
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Methoden und Attribute einer Klasse können bezüglich der Sichtbarkeit 3 Stufen annehmen:
- Public
- Protected
- Private
Entwicklungsobjekte
- Jede Implementierung einer Methode ist ein eigenes Entwicklungsobjekt
- Die Definition der Methoden werden getrennt bei den Entwicklungsobjekten nach „Private“, „Protected“ und „Public“-Methoden abgespeichert.
Sichtbarkeit
Public
- Die Methoden/Attribute einer Klasse sind auch außerhalb der Klasse sichtbar.
- Die Public-Methoden/Attribute können auch über den Klassennamen von außerhalb der Klasse aufgerufen werden. Z. B. von der Klasse CL_GUI_FRONTEND_SERVICES ist die Methode EXECUTE Public und kann von außerhalb der Klasse angesprochen werden:
CALL METHOD cl_gui_frontend_services=>execute EXPORTING document = l_document EXCEPTIONS cntl_error = 1 error_no_gui = 2 bad_parameter = 3 file_not_found = 4 path_not_found = 5 file_extension_unknown = 6 error_execute_failed = 7 synchronous_failed = 8 not_supported_by_gui = 9 OTHERS = 10.
Protected
- Die Methoden/Attribute einer Klasse sind innerhalb einer Klasse und durch die Instanzen der Klasse sichtbar
Data: r_objekt type ref to cl_classe. Create object r_object. call method r_objekt->methode.
Private
- Die Methoden/Attribute einer Klasse sind nur innerhalb der Klasse sichtbar
- Wird eine Klasse vererbt, dann existieren die privaten Methode/Attribute in der Klasse nicht mehr, die geerbt hat. Daher sollten Methode/Attribute nur als "Private" deklariert werden, wenn die Klasse nicht vererbt wird. Ansonsten müssten im Nachhinein die privaten Methoden/Attribute der Mutterklasse auf "Protected" geändert werden oder manuell in erbenden Klasse angelegt werden.
- Die Methoden können innerhalb der Klasse über die Selbstreferenz ME angesprochen werden
me->methodenname
Beispiel für Sichtbarkeit aus der globalen Klasse CL_GUI_FRONTEND_SERVICES
In der Klasse CL_GUI_FRONTEND_SERVICES sind alle Methoden als Public definiert