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 Sichtbarkeit CL GUI FRONTEND SERVICES1.jpg

Web-Links